• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef VULKAN_CORE_H_
2 #define VULKAN_CORE_H_ 1
3 
4 /*
5 ** Copyright 2015-2022 The Khronos Group Inc.
6 **
7 ** SPDX-License-Identifier: Apache-2.0
8 */
9 
10 /*
11 ** This header is generated from the Khronos Vulkan XML API Registry.
12 **
13 */
14 
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 
21 
22 #define VK_VERSION_1_0 1
23 #include "vk_platform.h"
24 
25 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
26 
27 
28 #ifndef VK_USE_64_BIT_PTR_DEFINES
29     #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
30         #define VK_USE_64_BIT_PTR_DEFINES 1
31     #else
32         #define VK_USE_64_BIT_PTR_DEFINES 0
33     #endif
34 #endif
35 
36 
37 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
38     #if (VK_USE_64_BIT_PTR_DEFINES==1)
39         #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
40             #define VK_NULL_HANDLE nullptr
41         #else
42             #define VK_NULL_HANDLE ((void*)0)
43         #endif
44     #else
45         #define VK_NULL_HANDLE 0ULL
46     #endif
47 #endif
48 #ifndef VK_NULL_HANDLE
49     #define VK_NULL_HANDLE 0
50 #endif
51 
52 
53 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
54     #if (VK_USE_64_BIT_PTR_DEFINES==1)
55         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
56     #else
57         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
58     #endif
59 #endif
60 
61 // DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
62 #define VK_MAKE_VERSION(major, minor, patch) \
63     ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
64 
65 // 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.
66 //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
67 
68 #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
69     ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
70 
71 // Vulkan 1.0 version number
72 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
73 
74 // Version of this file
75 #define VK_HEADER_VERSION 231
76 
77 // Complete version of this file
78 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
79 
80 // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
81 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
82 
83 // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
84 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
85 
86 // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
87 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
88 
89 #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29)
90 #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU)
91 #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
92 #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
93 typedef uint32_t VkBool32;
94 typedef uint64_t VkDeviceAddress;
95 typedef uint64_t VkDeviceSize;
96 typedef uint32_t VkFlags;
97 typedef uint32_t VkSampleMask;
98 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
99 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
100 VK_DEFINE_HANDLE(VkInstance)
101 VK_DEFINE_HANDLE(VkPhysicalDevice)
102 VK_DEFINE_HANDLE(VkDevice)
103 VK_DEFINE_HANDLE(VkQueue)
104 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
105 VK_DEFINE_HANDLE(VkCommandBuffer)
106 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
107 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
108 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
109 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
110 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
111 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
112 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
113 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
114 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
115 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
116 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
117 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
118 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
119 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
120 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
121 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
122 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
123 #define VK_ATTACHMENT_UNUSED              (~0U)
124 #define VK_FALSE                          0U
125 #define VK_LOD_CLAMP_NONE                 1000.0F
126 #define VK_QUEUE_FAMILY_IGNORED           (~0U)
127 #define VK_REMAINING_ARRAY_LAYERS         (~0U)
128 #define VK_REMAINING_MIP_LEVELS           (~0U)
129 #define VK_SUBPASS_EXTERNAL               (~0U)
130 #define VK_TRUE                           1U
131 #define VK_WHOLE_SIZE                     (~0ULL)
132 #define VK_MAX_MEMORY_TYPES               32U
133 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256U
134 #define VK_UUID_SIZE                      16U
135 #define VK_MAX_EXTENSION_NAME_SIZE        256U
136 #define VK_MAX_DESCRIPTION_SIZE           256U
137 #define VK_MAX_MEMORY_HEAPS               16U
138 
139 typedef enum VkResult {
140     VK_SUCCESS = 0,
141     VK_NOT_READY = 1,
142     VK_TIMEOUT = 2,
143     VK_EVENT_SET = 3,
144     VK_EVENT_RESET = 4,
145     VK_INCOMPLETE = 5,
146     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
147     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
148     VK_ERROR_INITIALIZATION_FAILED = -3,
149     VK_ERROR_DEVICE_LOST = -4,
150     VK_ERROR_MEMORY_MAP_FAILED = -5,
151     VK_ERROR_LAYER_NOT_PRESENT = -6,
152     VK_ERROR_EXTENSION_NOT_PRESENT = -7,
153     VK_ERROR_FEATURE_NOT_PRESENT = -8,
154     VK_ERROR_INCOMPATIBLE_DRIVER = -9,
155     VK_ERROR_TOO_MANY_OBJECTS = -10,
156     VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
157     VK_ERROR_FRAGMENTED_POOL = -12,
158     VK_ERROR_UNKNOWN = -13,
159     VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
160     VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
161     VK_ERROR_FRAGMENTATION = -1000161000,
162     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
163     VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
164     VK_ERROR_SURFACE_LOST_KHR = -1000000000,
165     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
166     VK_SUBOPTIMAL_KHR = 1000001003,
167     VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
168     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
169     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
170     VK_ERROR_INVALID_SHADER_NV = -1000012000,
171 #ifdef VK_ENABLE_BETA_EXTENSIONS
172     VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000,
173 #endif
174 #ifdef VK_ENABLE_BETA_EXTENSIONS
175     VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001,
176 #endif
177 #ifdef VK_ENABLE_BETA_EXTENSIONS
178     VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002,
179 #endif
180 #ifdef VK_ENABLE_BETA_EXTENSIONS
181     VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003,
182 #endif
183 #ifdef VK_ENABLE_BETA_EXTENSIONS
184     VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004,
185 #endif
186 #ifdef VK_ENABLE_BETA_EXTENSIONS
187     VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005,
188 #endif
189     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
190     VK_ERROR_NOT_PERMITTED_KHR = -1000174001,
191     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
192     VK_THREAD_IDLE_KHR = 1000268000,
193     VK_THREAD_DONE_KHR = 1000268001,
194     VK_OPERATION_DEFERRED_KHR = 1000268002,
195     VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
196     VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
197     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
198     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
199     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
200     VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED_KHR,
201     VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
202     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
203     VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
204     VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
205     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
206 } VkResult;
207 
208 typedef enum VkStructureType {
209     VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
210     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
211     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
212     VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
213     VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
214     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
215     VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
216     VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
217     VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
218     VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
219     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
220     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
221     VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
222     VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
223     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
224     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
225     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
226     VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
227     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
228     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
229     VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
230     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
231     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
232     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
233     VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
234     VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
235     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
236     VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
237     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
238     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
239     VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
240     VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
241     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
242     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
243     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
244     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
245     VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
246     VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
247     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
248     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
249     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
250     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
251     VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
252     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
253     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
254     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
255     VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
256     VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
257     VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
258     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
259     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
260     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
261     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
262     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
263     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
264     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
265     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
266     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
267     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
268     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
269     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
270     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
271     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
272     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
273     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
274     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
275     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
276     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
277     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
278     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
279     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
280     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
281     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
282     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
283     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
284     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
285     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
286     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
287     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
288     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
289     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
290     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
291     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
292     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
293     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
294     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
295     VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
296     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
297     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
298     VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
299     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
300     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
301     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
302     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
303     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
304     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
305     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
306     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
307     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
308     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
309     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
310     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
311     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
312     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
313     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
314     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
315     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
316     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
317     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
318     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
319     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
320     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
321     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
322     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
323     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
324     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
325     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
326     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
327     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
328     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
329     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
330     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
331     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
332     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
333     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
334     VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
335     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
336     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
337     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
338     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
339     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
340     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
341     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
342     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
343     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
344     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
345     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
346     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
347     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
348     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
349     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
350     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
351     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
352     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
353     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
354     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
355     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
356     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
357     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
358     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
359     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
360     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
361     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
362     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
363     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
364     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
365     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
366     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
367     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
368     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
369     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
370     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
371     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
372     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
373     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
374     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
375     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
376     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
377     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
378     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
379     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
380     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
381     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
382     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
383     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
384     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
385     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
386     VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
387     VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
388     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
389     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
390     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
391     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
392     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
393     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
394     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
395     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
396     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
397     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
398     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
399     VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
400     VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
401     VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
402     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
403     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
404     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
405     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
406     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
407     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
408     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
409     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
410     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
411     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
412     VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
413     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
414     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
415     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
416     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
417     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
418     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
419     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
420     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
421     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
422     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
423     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
424     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
425     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
426     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
427     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
428     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
429     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
430     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
431     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
432     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
433     VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
434     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
435     VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
436     VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
437     VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
438     VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
439     VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
440     VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
441     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
442     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
443     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
444     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
445     VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
446 #ifdef VK_ENABLE_BETA_EXTENSIONS
447     VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
448 #endif
449 #ifdef VK_ENABLE_BETA_EXTENSIONS
450     VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
451 #endif
452 #ifdef VK_ENABLE_BETA_EXTENSIONS
453     VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
454 #endif
455 #ifdef VK_ENABLE_BETA_EXTENSIONS
456     VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
457 #endif
458 #ifdef VK_ENABLE_BETA_EXTENSIONS
459     VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
460 #endif
461 #ifdef VK_ENABLE_BETA_EXTENSIONS
462     VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
463 #endif
464 #ifdef VK_ENABLE_BETA_EXTENSIONS
465     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
466 #endif
467 #ifdef VK_ENABLE_BETA_EXTENSIONS
468     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
469 #endif
470 #ifdef VK_ENABLE_BETA_EXTENSIONS
471     VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
472 #endif
473 #ifdef VK_ENABLE_BETA_EXTENSIONS
474     VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
475 #endif
476 #ifdef VK_ENABLE_BETA_EXTENSIONS
477     VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
478 #endif
479 #ifdef VK_ENABLE_BETA_EXTENSIONS
480     VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
481 #endif
482 #ifdef VK_ENABLE_BETA_EXTENSIONS
483     VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
484 #endif
485 #ifdef VK_ENABLE_BETA_EXTENSIONS
486     VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
487 #endif
488 #ifdef VK_ENABLE_BETA_EXTENSIONS
489     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
490 #endif
491 #ifdef VK_ENABLE_BETA_EXTENSIONS
492     VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
493 #endif
494 #ifdef VK_ENABLE_BETA_EXTENSIONS
495     VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
496 #endif
497 #ifdef VK_ENABLE_BETA_EXTENSIONS
498     VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
499 #endif
500 #ifdef VK_ENABLE_BETA_EXTENSIONS
501     VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
502 #endif
503 #ifdef VK_ENABLE_BETA_EXTENSIONS
504     VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
505 #endif
506     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
507     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
508     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
509     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
510     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
511     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
512     VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
513     VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
514     VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
515     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
516     VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
517 #ifdef VK_ENABLE_BETA_EXTENSIONS
518     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT = 1000038000,
519 #endif
520 #ifdef VK_ENABLE_BETA_EXTENSIONS
521     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038001,
522 #endif
523 #ifdef VK_ENABLE_BETA_EXTENSIONS
524     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038002,
525 #endif
526 #ifdef VK_ENABLE_BETA_EXTENSIONS
527     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038003,
528 #endif
529 #ifdef VK_ENABLE_BETA_EXTENSIONS
530     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038004,
531 #endif
532 #ifdef VK_ENABLE_BETA_EXTENSIONS
533     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT = 1000038005,
534 #endif
535 #ifdef VK_ENABLE_BETA_EXTENSIONS
536     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT = 1000038006,
537 #endif
538 #ifdef VK_ENABLE_BETA_EXTENSIONS
539     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT = 1000038007,
540 #endif
541 #ifdef VK_ENABLE_BETA_EXTENSIONS
542     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT = 1000038008,
543 #endif
544 #ifdef VK_ENABLE_BETA_EXTENSIONS
545     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038009,
546 #endif
547 #ifdef VK_ENABLE_BETA_EXTENSIONS
548     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT = 1000038010,
549 #endif
550 #ifdef VK_ENABLE_BETA_EXTENSIONS
551     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000,
552 #endif
553 #ifdef VK_ENABLE_BETA_EXTENSIONS
554     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039001,
555 #endif
556 #ifdef VK_ENABLE_BETA_EXTENSIONS
557     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039002,
558 #endif
559 #ifdef VK_ENABLE_BETA_EXTENSIONS
560     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039003,
561 #endif
562 #ifdef VK_ENABLE_BETA_EXTENSIONS
563     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039004,
564 #endif
565 #ifdef VK_ENABLE_BETA_EXTENSIONS
566     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT = 1000039005,
567 #endif
568 #ifdef VK_ENABLE_BETA_EXTENSIONS
569     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT = 1000039006,
570 #endif
571 #ifdef VK_ENABLE_BETA_EXTENSIONS
572     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT = 1000039007,
573 #endif
574 #ifdef VK_ENABLE_BETA_EXTENSIONS
575     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT = 1000039008,
576 #endif
577 #ifdef VK_ENABLE_BETA_EXTENSIONS
578     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT = 1000039009,
579 #endif
580 #ifdef VK_ENABLE_BETA_EXTENSIONS
581     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039010,
582 #endif
583 #ifdef VK_ENABLE_BETA_EXTENSIONS
584     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT = 1000040000,
585 #endif
586 #ifdef VK_ENABLE_BETA_EXTENSIONS
587     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT = 1000040001,
588 #endif
589 #ifdef VK_ENABLE_BETA_EXTENSIONS
590     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT = 1000040003,
591 #endif
592 #ifdef VK_ENABLE_BETA_EXTENSIONS
593     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000040004,
594 #endif
595 #ifdef VK_ENABLE_BETA_EXTENSIONS
596     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000040005,
597 #endif
598 #ifdef VK_ENABLE_BETA_EXTENSIONS
599     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040006,
600 #endif
601     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
602     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
603     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
604     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
605     VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
606     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
607     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
608     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
609     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
610     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
611     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
612     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
613     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
614     VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
615     VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
616     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
617     VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000,
618     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001,
619     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002,
620     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
621     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
622     VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
623     VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
624     VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
625     VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
626     VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
627     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
628     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
629     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
630     VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
631     VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
632     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
633     VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
634     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
635     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
636     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
637     VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
638     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
639     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
640     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
641     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
642     VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
643     VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
644     VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
645     VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
646     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
647     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
648     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
649     VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
650     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
651     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
652     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
653     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
654     VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
655     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
656     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
657     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
658     VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
659     VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
660     VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
661     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
662     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
663     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
664     VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
665     VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
666     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
667     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
668     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
669     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
670     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
671     VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
672     VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
673     VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
674     VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
675     VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
676     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
677     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
678     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
679     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
680     VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
681     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
682     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
683     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
684     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
685     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
686     VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
687     VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
688     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
689     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
690     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
691     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
692     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
693     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
694     VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
695     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
696     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
697     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
698     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
699     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
700     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
701     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
702     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
703     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
704     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
705     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
706     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
707     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
708     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
709     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
710     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
711     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
712     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
713     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
714     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
715     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
716     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
717     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
718     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
719     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
720     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
721     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
722     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
723     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
724     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
725     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
726     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
727     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
728     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
729     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
730     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
731 #ifdef VK_ENABLE_BETA_EXTENSIONS
732     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
733 #endif
734 #ifdef VK_ENABLE_BETA_EXTENSIONS
735     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
736 #endif
737     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
738     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
739     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
740     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
741     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
742     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
743     VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
744     VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
745     VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
746     VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
747     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
748     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
749     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
750     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
751     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
752     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
753     VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
754     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
755     VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
756     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
757     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
758     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
759     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
760     VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
761     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
762     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
763 #ifdef VK_ENABLE_BETA_EXTENSIONS
764     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT = 1000187000,
765 #endif
766 #ifdef VK_ENABLE_BETA_EXTENSIONS
767     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000187001,
768 #endif
769 #ifdef VK_ENABLE_BETA_EXTENSIONS
770     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000187002,
771 #endif
772 #ifdef VK_ENABLE_BETA_EXTENSIONS
773     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT = 1000187003,
774 #endif
775 #ifdef VK_ENABLE_BETA_EXTENSIONS
776     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT = 1000187004,
777 #endif
778 #ifdef VK_ENABLE_BETA_EXTENSIONS
779     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187005,
780 #endif
781     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000,
782     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000,
783     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001,
784     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
785     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
786     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
787     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
788     VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
789     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
790     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
791     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
792     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
793     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
794     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
795     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
796     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
797     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
798     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
799     VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
800     VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
801     VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
802     VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
803     VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
804     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
805     VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
806     VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
807     VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
808     VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
809     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
810     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
811     VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
812     VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
813     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
814     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
815     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
816     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
817     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
818     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
819     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
820     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
821     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
822     VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
823     VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
824     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
825     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
826     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
827     VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
828     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
829     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
830     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
831     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
832     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
833     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
834     VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
835     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
836     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
837     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
838     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
839     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
840     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
841     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
842     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
843     VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
844     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000,
845     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001,
846     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002,
847     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
848     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000,
849     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
850     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
851     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
852     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
853     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
854     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
855     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
856     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
857     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
858     VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
859     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
860     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
861     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
862     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
863     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
864     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
865     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
866     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
867     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
868     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
869     VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
870     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
871     VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
872     VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
873     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
874     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
875     VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
876     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
877     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
878     VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
879     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
880     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
881     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
882     VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
883     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
884 #ifdef VK_ENABLE_BETA_EXTENSIONS
885     VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
886 #endif
887 #ifdef VK_ENABLE_BETA_EXTENSIONS
888     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
889 #endif
890 #ifdef VK_ENABLE_BETA_EXTENSIONS
891     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
892 #endif
893 #ifdef VK_ENABLE_BETA_EXTENSIONS
894     VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
895 #endif
896 #ifdef VK_ENABLE_BETA_EXTENSIONS
897     VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
898 #endif
899     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
900     VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
901     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
902     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
903     VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
904     VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
905     VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
906     VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
907     VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
908     VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
909     VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
910     VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
911     VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
912     VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
913     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
914     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
915     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
916     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
917     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
918     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
919     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
920     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
921     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
922     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
923     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
924     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
925     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
926     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
927     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
928     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
929     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
930     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
931     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
932     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
933     VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
934     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
935     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
936     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
937     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002,
938     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003,
939     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
940     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
941     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
942     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
943     VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
944     VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
945     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
946     VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
947     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
948     VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
949     VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
950     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
951     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
952     VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
953     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
954     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
955     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
956     VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
957     VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
958     VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
959     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
960     VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
961     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
962     VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
963     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
964     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
965     VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
966     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
967     VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
968     VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
969     VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
970     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
971     VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
972     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
973     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
974     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
975     VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
976     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
977     VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
978     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
979     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
980     VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
981     VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
982     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
983     VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
984     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
985     VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
986     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
987     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
988     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
989     VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
990     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
991     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
992     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
993     VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
994     VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
995     VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
996     VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
997     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
998     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
999     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
1000     VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
1001     VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
1002     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
1003     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
1004     VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
1005     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
1006     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
1007     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
1008     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
1009     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000,
1010     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
1011     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000,
1012     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001,
1013     VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002,
1014     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
1015     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
1016     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
1017     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
1018     VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
1019     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
1020     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
1021     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1022     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1023     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
1024     VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
1025     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
1026     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
1027     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
1028     VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
1029     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
1030     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
1031     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
1032     VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
1033     VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
1034     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
1035     VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
1036     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
1037     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
1038     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000,
1039     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
1040     VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
1041     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
1042     VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
1043     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
1044     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
1045     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
1046     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
1047     VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS = 1000451000,
1048     VK_STRUCTURE_TYPE_NATIVE_BUFFER_OHOS = 1000453001,
1049     VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OHOS = 1000453002,
1050     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OHOS = 1000453003,
1051     VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS = 1000452000,
1052     VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS = 1000452001,
1053     VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS = 1000452002,
1054     VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS = 1000452003,
1055     VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS = 1000452004,
1056     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS = 1000452005,
1057     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1058     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1059     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1060     VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1061     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1062     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1063     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1064     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1065     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1066     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1067     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1068     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1069     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1070     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1071     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1072     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1073     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1074     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1075     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1076     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1077     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1078     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1079     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1080     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1081     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1082     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1083     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1084     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1085     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1086     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1087     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1088     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1089     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1090     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1091     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1092     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1093     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1094     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1095     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1096     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
1097     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
1098     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
1099     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1100     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1101     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
1102     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
1103     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
1104     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
1105     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
1106     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
1107     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
1108     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
1109     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
1110     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
1111     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
1112     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
1113     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
1114     VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
1115     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
1116     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
1117     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
1118     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
1119     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
1120     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
1121     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
1122     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1123     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1124     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
1125     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
1126     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
1127     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
1128     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
1129     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
1130     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
1131     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
1132     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
1133     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
1134     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
1135     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
1136     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
1137     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
1138     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
1139     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
1140     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
1141     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
1142     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
1143     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
1144     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
1145     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
1146     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
1147     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
1148     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
1149     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
1150     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
1151     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
1152     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
1153     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
1154     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
1155     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
1156     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
1157     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
1158     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1159     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
1160     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
1161     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
1162     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1163     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
1164     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
1165     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
1166     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
1167     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
1168     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
1169     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
1170     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
1171     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
1172     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
1173     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
1174     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1175     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
1176     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
1177     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1178     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1179     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
1180     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1181     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
1182     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
1183     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
1184     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
1185     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1186     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
1187     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
1188     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
1189     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
1190     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
1191     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
1192     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
1193     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
1194     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
1195     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
1196     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
1197     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
1198     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
1199     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
1200     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
1201     VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
1202     VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
1203     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
1204     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
1205     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
1206     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
1207     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
1208     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
1209     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
1210     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
1211     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
1212     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
1213     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
1214     VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
1215     VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
1216     VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
1217     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
1218     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
1219     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1220     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1221     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1222     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
1223     VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1224     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
1225     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
1226     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
1227     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
1228     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
1229     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
1230     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1231 } VkStructureType;
1232 
1233 typedef enum VkPipelineCacheHeaderVersion {
1234     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1235     VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
1236 } VkPipelineCacheHeaderVersion;
1237 
1238 typedef enum VkImageLayout {
1239     VK_IMAGE_LAYOUT_UNDEFINED = 0,
1240     VK_IMAGE_LAYOUT_GENERAL = 1,
1241     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
1242     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
1243     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
1244     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
1245     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
1246     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
1247     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
1248     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
1249     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
1250     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
1251     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
1252     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
1253     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
1254     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
1255     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
1256     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
1257 #ifdef VK_ENABLE_BETA_EXTENSIONS
1258     VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
1259 #endif
1260 #ifdef VK_ENABLE_BETA_EXTENSIONS
1261     VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
1262 #endif
1263 #ifdef VK_ENABLE_BETA_EXTENSIONS
1264     VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
1265 #endif
1266     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
1267     VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
1268     VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
1269 #ifdef VK_ENABLE_BETA_EXTENSIONS
1270     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
1271 #endif
1272 #ifdef VK_ENABLE_BETA_EXTENSIONS
1273     VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
1274 #endif
1275 #ifdef VK_ENABLE_BETA_EXTENSIONS
1276     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
1277 #endif
1278     VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
1279     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
1280     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
1281     VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
1282     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
1283     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
1284     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
1285     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
1286     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
1287     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
1288     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
1289 } VkImageLayout;
1290 
1291 typedef enum VkObjectType {
1292     VK_OBJECT_TYPE_UNKNOWN = 0,
1293     VK_OBJECT_TYPE_INSTANCE = 1,
1294     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1295     VK_OBJECT_TYPE_DEVICE = 3,
1296     VK_OBJECT_TYPE_QUEUE = 4,
1297     VK_OBJECT_TYPE_SEMAPHORE = 5,
1298     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1299     VK_OBJECT_TYPE_FENCE = 7,
1300     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1301     VK_OBJECT_TYPE_BUFFER = 9,
1302     VK_OBJECT_TYPE_IMAGE = 10,
1303     VK_OBJECT_TYPE_EVENT = 11,
1304     VK_OBJECT_TYPE_QUERY_POOL = 12,
1305     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1306     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1307     VK_OBJECT_TYPE_SHADER_MODULE = 15,
1308     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1309     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1310     VK_OBJECT_TYPE_RENDER_PASS = 18,
1311     VK_OBJECT_TYPE_PIPELINE = 19,
1312     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1313     VK_OBJECT_TYPE_SAMPLER = 21,
1314     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1315     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1316     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1317     VK_OBJECT_TYPE_COMMAND_POOL = 25,
1318     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1319     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1320     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1321     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1322     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1323     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1324     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1325     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1326 #ifdef VK_ENABLE_BETA_EXTENSIONS
1327     VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
1328 #endif
1329 #ifdef VK_ENABLE_BETA_EXTENSIONS
1330     VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
1331 #endif
1332     VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
1333     VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
1334     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1335     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
1336     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1337     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1338     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1339     VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
1340     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
1341     VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
1342     VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
1343     VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
1344     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1345     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1346     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1347     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1348 } VkObjectType;
1349 
1350 typedef enum VkVendorId {
1351     VK_VENDOR_ID_VIV = 0x10001,
1352     VK_VENDOR_ID_VSI = 0x10002,
1353     VK_VENDOR_ID_KAZAN = 0x10003,
1354     VK_VENDOR_ID_CODEPLAY = 0x10004,
1355     VK_VENDOR_ID_MESA = 0x10005,
1356     VK_VENDOR_ID_POCL = 0x10006,
1357     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1358 } VkVendorId;
1359 
1360 typedef enum VkSystemAllocationScope {
1361     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1362     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1363     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1364     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1365     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1366     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1367 } VkSystemAllocationScope;
1368 
1369 typedef enum VkInternalAllocationType {
1370     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1371     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1372 } VkInternalAllocationType;
1373 
1374 typedef enum VkFormat {
1375     VK_FORMAT_UNDEFINED = 0,
1376     VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1377     VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1378     VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1379     VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1380     VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1381     VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1382     VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1383     VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1384     VK_FORMAT_R8_UNORM = 9,
1385     VK_FORMAT_R8_SNORM = 10,
1386     VK_FORMAT_R8_USCALED = 11,
1387     VK_FORMAT_R8_SSCALED = 12,
1388     VK_FORMAT_R8_UINT = 13,
1389     VK_FORMAT_R8_SINT = 14,
1390     VK_FORMAT_R8_SRGB = 15,
1391     VK_FORMAT_R8G8_UNORM = 16,
1392     VK_FORMAT_R8G8_SNORM = 17,
1393     VK_FORMAT_R8G8_USCALED = 18,
1394     VK_FORMAT_R8G8_SSCALED = 19,
1395     VK_FORMAT_R8G8_UINT = 20,
1396     VK_FORMAT_R8G8_SINT = 21,
1397     VK_FORMAT_R8G8_SRGB = 22,
1398     VK_FORMAT_R8G8B8_UNORM = 23,
1399     VK_FORMAT_R8G8B8_SNORM = 24,
1400     VK_FORMAT_R8G8B8_USCALED = 25,
1401     VK_FORMAT_R8G8B8_SSCALED = 26,
1402     VK_FORMAT_R8G8B8_UINT = 27,
1403     VK_FORMAT_R8G8B8_SINT = 28,
1404     VK_FORMAT_R8G8B8_SRGB = 29,
1405     VK_FORMAT_B8G8R8_UNORM = 30,
1406     VK_FORMAT_B8G8R8_SNORM = 31,
1407     VK_FORMAT_B8G8R8_USCALED = 32,
1408     VK_FORMAT_B8G8R8_SSCALED = 33,
1409     VK_FORMAT_B8G8R8_UINT = 34,
1410     VK_FORMAT_B8G8R8_SINT = 35,
1411     VK_FORMAT_B8G8R8_SRGB = 36,
1412     VK_FORMAT_R8G8B8A8_UNORM = 37,
1413     VK_FORMAT_R8G8B8A8_SNORM = 38,
1414     VK_FORMAT_R8G8B8A8_USCALED = 39,
1415     VK_FORMAT_R8G8B8A8_SSCALED = 40,
1416     VK_FORMAT_R8G8B8A8_UINT = 41,
1417     VK_FORMAT_R8G8B8A8_SINT = 42,
1418     VK_FORMAT_R8G8B8A8_SRGB = 43,
1419     VK_FORMAT_B8G8R8A8_UNORM = 44,
1420     VK_FORMAT_B8G8R8A8_SNORM = 45,
1421     VK_FORMAT_B8G8R8A8_USCALED = 46,
1422     VK_FORMAT_B8G8R8A8_SSCALED = 47,
1423     VK_FORMAT_B8G8R8A8_UINT = 48,
1424     VK_FORMAT_B8G8R8A8_SINT = 49,
1425     VK_FORMAT_B8G8R8A8_SRGB = 50,
1426     VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1427     VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1428     VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1429     VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1430     VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1431     VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1432     VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1433     VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1434     VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1435     VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1436     VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1437     VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1438     VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1439     VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1440     VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1441     VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1442     VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1443     VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1444     VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1445     VK_FORMAT_R16_UNORM = 70,
1446     VK_FORMAT_R16_SNORM = 71,
1447     VK_FORMAT_R16_USCALED = 72,
1448     VK_FORMAT_R16_SSCALED = 73,
1449     VK_FORMAT_R16_UINT = 74,
1450     VK_FORMAT_R16_SINT = 75,
1451     VK_FORMAT_R16_SFLOAT = 76,
1452     VK_FORMAT_R16G16_UNORM = 77,
1453     VK_FORMAT_R16G16_SNORM = 78,
1454     VK_FORMAT_R16G16_USCALED = 79,
1455     VK_FORMAT_R16G16_SSCALED = 80,
1456     VK_FORMAT_R16G16_UINT = 81,
1457     VK_FORMAT_R16G16_SINT = 82,
1458     VK_FORMAT_R16G16_SFLOAT = 83,
1459     VK_FORMAT_R16G16B16_UNORM = 84,
1460     VK_FORMAT_R16G16B16_SNORM = 85,
1461     VK_FORMAT_R16G16B16_USCALED = 86,
1462     VK_FORMAT_R16G16B16_SSCALED = 87,
1463     VK_FORMAT_R16G16B16_UINT = 88,
1464     VK_FORMAT_R16G16B16_SINT = 89,
1465     VK_FORMAT_R16G16B16_SFLOAT = 90,
1466     VK_FORMAT_R16G16B16A16_UNORM = 91,
1467     VK_FORMAT_R16G16B16A16_SNORM = 92,
1468     VK_FORMAT_R16G16B16A16_USCALED = 93,
1469     VK_FORMAT_R16G16B16A16_SSCALED = 94,
1470     VK_FORMAT_R16G16B16A16_UINT = 95,
1471     VK_FORMAT_R16G16B16A16_SINT = 96,
1472     VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1473     VK_FORMAT_R32_UINT = 98,
1474     VK_FORMAT_R32_SINT = 99,
1475     VK_FORMAT_R32_SFLOAT = 100,
1476     VK_FORMAT_R32G32_UINT = 101,
1477     VK_FORMAT_R32G32_SINT = 102,
1478     VK_FORMAT_R32G32_SFLOAT = 103,
1479     VK_FORMAT_R32G32B32_UINT = 104,
1480     VK_FORMAT_R32G32B32_SINT = 105,
1481     VK_FORMAT_R32G32B32_SFLOAT = 106,
1482     VK_FORMAT_R32G32B32A32_UINT = 107,
1483     VK_FORMAT_R32G32B32A32_SINT = 108,
1484     VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1485     VK_FORMAT_R64_UINT = 110,
1486     VK_FORMAT_R64_SINT = 111,
1487     VK_FORMAT_R64_SFLOAT = 112,
1488     VK_FORMAT_R64G64_UINT = 113,
1489     VK_FORMAT_R64G64_SINT = 114,
1490     VK_FORMAT_R64G64_SFLOAT = 115,
1491     VK_FORMAT_R64G64B64_UINT = 116,
1492     VK_FORMAT_R64G64B64_SINT = 117,
1493     VK_FORMAT_R64G64B64_SFLOAT = 118,
1494     VK_FORMAT_R64G64B64A64_UINT = 119,
1495     VK_FORMAT_R64G64B64A64_SINT = 120,
1496     VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1497     VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1498     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1499     VK_FORMAT_D16_UNORM = 124,
1500     VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1501     VK_FORMAT_D32_SFLOAT = 126,
1502     VK_FORMAT_S8_UINT = 127,
1503     VK_FORMAT_D16_UNORM_S8_UINT = 128,
1504     VK_FORMAT_D24_UNORM_S8_UINT = 129,
1505     VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1506     VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1507     VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1508     VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1509     VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1510     VK_FORMAT_BC2_UNORM_BLOCK = 135,
1511     VK_FORMAT_BC2_SRGB_BLOCK = 136,
1512     VK_FORMAT_BC3_UNORM_BLOCK = 137,
1513     VK_FORMAT_BC3_SRGB_BLOCK = 138,
1514     VK_FORMAT_BC4_UNORM_BLOCK = 139,
1515     VK_FORMAT_BC4_SNORM_BLOCK = 140,
1516     VK_FORMAT_BC5_UNORM_BLOCK = 141,
1517     VK_FORMAT_BC5_SNORM_BLOCK = 142,
1518     VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1519     VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1520     VK_FORMAT_BC7_UNORM_BLOCK = 145,
1521     VK_FORMAT_BC7_SRGB_BLOCK = 146,
1522     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1523     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1524     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1525     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1526     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1527     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1528     VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1529     VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1530     VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1531     VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1532     VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1533     VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1534     VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1535     VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1536     VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1537     VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1538     VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1539     VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1540     VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1541     VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1542     VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1543     VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1544     VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1545     VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1546     VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1547     VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1548     VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1549     VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1550     VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1551     VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1552     VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1553     VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1554     VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1555     VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1556     VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1557     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1558     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1559     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
1560     VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1561     VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1562     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1563     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1564     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1565     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1566     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1567     VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1568     VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1569     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1570     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1571     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1572     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1573     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1574     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1575     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1576     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1577     VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1578     VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1579     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1580     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1581     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1582     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1583     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1584     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1585     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1586     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1587     VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1588     VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1589     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1590     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1591     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1592     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1593     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1594     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
1595     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
1596     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
1597     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
1598     VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
1599     VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
1600     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
1601     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
1602     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
1603     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
1604     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
1605     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
1606     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
1607     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
1608     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
1609     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
1610     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
1611     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
1612     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
1613     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
1614     VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1615     VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1616     VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1617     VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1618     VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1619     VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1620     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1621     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
1622     VK_FORMAT_R16G16_S10_5_NV = 1000464000,
1623     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
1624     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
1625     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
1626     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
1627     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
1628     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
1629     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
1630     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
1631     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
1632     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
1633     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
1634     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
1635     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
1636     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
1637     VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
1638     VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
1639     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
1640     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
1641     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
1642     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
1643     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
1644     VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
1645     VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
1646     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
1647     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
1648     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
1649     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
1650     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
1651     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
1652     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
1653     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
1654     VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
1655     VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
1656     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
1657     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
1658     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
1659     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
1660     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
1661     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
1662     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
1663     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
1664     VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
1665     VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
1666     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
1667     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
1668     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
1669     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
1670     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
1671     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
1672     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
1673     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
1674     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
1675     VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
1676     VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
1677     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
1678 } VkFormat;
1679 
1680 typedef enum VkImageTiling {
1681     VK_IMAGE_TILING_OPTIMAL = 0,
1682     VK_IMAGE_TILING_LINEAR = 1,
1683     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
1684     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
1685 } VkImageTiling;
1686 
1687 typedef enum VkImageType {
1688     VK_IMAGE_TYPE_1D = 0,
1689     VK_IMAGE_TYPE_2D = 1,
1690     VK_IMAGE_TYPE_3D = 2,
1691     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
1692 } VkImageType;
1693 
1694 typedef enum VkPhysicalDeviceType {
1695     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
1696     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
1697     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
1698     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
1699     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
1700     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
1701 } VkPhysicalDeviceType;
1702 
1703 typedef enum VkQueryType {
1704     VK_QUERY_TYPE_OCCLUSION = 0,
1705     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
1706     VK_QUERY_TYPE_TIMESTAMP = 2,
1707 #ifdef VK_ENABLE_BETA_EXTENSIONS
1708     VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
1709 #endif
1710     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
1711     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
1712     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
1713     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
1714     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
1715     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
1716 #ifdef VK_ENABLE_BETA_EXTENSIONS
1717     VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000,
1718 #endif
1719     VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
1720     VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
1721     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
1722     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
1723     VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
1724     VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
1725     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
1726 } VkQueryType;
1727 
1728 typedef enum VkSharingMode {
1729     VK_SHARING_MODE_EXCLUSIVE = 0,
1730     VK_SHARING_MODE_CONCURRENT = 1,
1731     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
1732 } VkSharingMode;
1733 
1734 typedef enum VkComponentSwizzle {
1735     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
1736     VK_COMPONENT_SWIZZLE_ZERO = 1,
1737     VK_COMPONENT_SWIZZLE_ONE = 2,
1738     VK_COMPONENT_SWIZZLE_R = 3,
1739     VK_COMPONENT_SWIZZLE_G = 4,
1740     VK_COMPONENT_SWIZZLE_B = 5,
1741     VK_COMPONENT_SWIZZLE_A = 6,
1742     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
1743 } VkComponentSwizzle;
1744 
1745 typedef enum VkImageViewType {
1746     VK_IMAGE_VIEW_TYPE_1D = 0,
1747     VK_IMAGE_VIEW_TYPE_2D = 1,
1748     VK_IMAGE_VIEW_TYPE_3D = 2,
1749     VK_IMAGE_VIEW_TYPE_CUBE = 3,
1750     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
1751     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
1752     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
1753     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
1754 } VkImageViewType;
1755 
1756 typedef enum VkBlendFactor {
1757     VK_BLEND_FACTOR_ZERO = 0,
1758     VK_BLEND_FACTOR_ONE = 1,
1759     VK_BLEND_FACTOR_SRC_COLOR = 2,
1760     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
1761     VK_BLEND_FACTOR_DST_COLOR = 4,
1762     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
1763     VK_BLEND_FACTOR_SRC_ALPHA = 6,
1764     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
1765     VK_BLEND_FACTOR_DST_ALPHA = 8,
1766     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
1767     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
1768     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
1769     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
1770     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
1771     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
1772     VK_BLEND_FACTOR_SRC1_COLOR = 15,
1773     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
1774     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
1775     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
1776     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
1777 } VkBlendFactor;
1778 
1779 typedef enum VkBlendOp {
1780     VK_BLEND_OP_ADD = 0,
1781     VK_BLEND_OP_SUBTRACT = 1,
1782     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
1783     VK_BLEND_OP_MIN = 3,
1784     VK_BLEND_OP_MAX = 4,
1785     VK_BLEND_OP_ZERO_EXT = 1000148000,
1786     VK_BLEND_OP_SRC_EXT = 1000148001,
1787     VK_BLEND_OP_DST_EXT = 1000148002,
1788     VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
1789     VK_BLEND_OP_DST_OVER_EXT = 1000148004,
1790     VK_BLEND_OP_SRC_IN_EXT = 1000148005,
1791     VK_BLEND_OP_DST_IN_EXT = 1000148006,
1792     VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
1793     VK_BLEND_OP_DST_OUT_EXT = 1000148008,
1794     VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
1795     VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
1796     VK_BLEND_OP_XOR_EXT = 1000148011,
1797     VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
1798     VK_BLEND_OP_SCREEN_EXT = 1000148013,
1799     VK_BLEND_OP_OVERLAY_EXT = 1000148014,
1800     VK_BLEND_OP_DARKEN_EXT = 1000148015,
1801     VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
1802     VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
1803     VK_BLEND_OP_COLORBURN_EXT = 1000148018,
1804     VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
1805     VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
1806     VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
1807     VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
1808     VK_BLEND_OP_INVERT_EXT = 1000148023,
1809     VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
1810     VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
1811     VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
1812     VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
1813     VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
1814     VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
1815     VK_BLEND_OP_HARDMIX_EXT = 1000148030,
1816     VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
1817     VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
1818     VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
1819     VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
1820     VK_BLEND_OP_PLUS_EXT = 1000148035,
1821     VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
1822     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
1823     VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
1824     VK_BLEND_OP_MINUS_EXT = 1000148039,
1825     VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
1826     VK_BLEND_OP_CONTRAST_EXT = 1000148041,
1827     VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
1828     VK_BLEND_OP_RED_EXT = 1000148043,
1829     VK_BLEND_OP_GREEN_EXT = 1000148044,
1830     VK_BLEND_OP_BLUE_EXT = 1000148045,
1831     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
1832 } VkBlendOp;
1833 
1834 typedef enum VkCompareOp {
1835     VK_COMPARE_OP_NEVER = 0,
1836     VK_COMPARE_OP_LESS = 1,
1837     VK_COMPARE_OP_EQUAL = 2,
1838     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
1839     VK_COMPARE_OP_GREATER = 4,
1840     VK_COMPARE_OP_NOT_EQUAL = 5,
1841     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
1842     VK_COMPARE_OP_ALWAYS = 7,
1843     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
1844 } VkCompareOp;
1845 
1846 typedef enum VkDynamicState {
1847     VK_DYNAMIC_STATE_VIEWPORT = 0,
1848     VK_DYNAMIC_STATE_SCISSOR = 1,
1849     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
1850     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
1851     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
1852     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
1853     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
1854     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
1855     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
1856     VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
1857     VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
1858     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
1859     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
1860     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
1861     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
1862     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
1863     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
1864     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
1865     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
1866     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
1867     VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
1868     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
1869     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
1870     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
1871     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1872     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
1873     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
1874     VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
1875     VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1876     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1877     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
1878     VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
1879     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000,
1880     VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
1881     VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
1882     VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
1883     VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
1884     VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
1885     VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
1886     VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
1887     VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
1888     VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
1889     VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
1890     VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
1891     VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
1892     VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
1893     VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
1894     VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
1895     VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
1896     VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
1897     VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
1898     VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
1899     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
1900     VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
1901     VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
1902     VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
1903     VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
1904     VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
1905     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
1906     VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
1907     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
1908     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
1909     VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
1910     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
1911     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
1912     VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
1913     VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
1914     VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
1915     VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
1916     VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
1917     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
1918     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
1919     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
1920     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
1921     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
1922     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
1923     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
1924     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
1925     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
1926     VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
1927     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
1928     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
1929     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
1930     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
1931 } VkDynamicState;
1932 
1933 typedef enum VkFrontFace {
1934     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
1935     VK_FRONT_FACE_CLOCKWISE = 1,
1936     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
1937 } VkFrontFace;
1938 
1939 typedef enum VkVertexInputRate {
1940     VK_VERTEX_INPUT_RATE_VERTEX = 0,
1941     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
1942     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
1943 } VkVertexInputRate;
1944 
1945 typedef enum VkPrimitiveTopology {
1946     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
1947     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
1948     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
1949     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
1950     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
1951     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
1952     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
1953     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
1954     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
1955     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
1956     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
1957     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
1958 } VkPrimitiveTopology;
1959 
1960 typedef enum VkPolygonMode {
1961     VK_POLYGON_MODE_FILL = 0,
1962     VK_POLYGON_MODE_LINE = 1,
1963     VK_POLYGON_MODE_POINT = 2,
1964     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
1965     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
1966 } VkPolygonMode;
1967 
1968 typedef enum VkStencilOp {
1969     VK_STENCIL_OP_KEEP = 0,
1970     VK_STENCIL_OP_ZERO = 1,
1971     VK_STENCIL_OP_REPLACE = 2,
1972     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
1973     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
1974     VK_STENCIL_OP_INVERT = 5,
1975     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
1976     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
1977     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
1978 } VkStencilOp;
1979 
1980 typedef enum VkLogicOp {
1981     VK_LOGIC_OP_CLEAR = 0,
1982     VK_LOGIC_OP_AND = 1,
1983     VK_LOGIC_OP_AND_REVERSE = 2,
1984     VK_LOGIC_OP_COPY = 3,
1985     VK_LOGIC_OP_AND_INVERTED = 4,
1986     VK_LOGIC_OP_NO_OP = 5,
1987     VK_LOGIC_OP_XOR = 6,
1988     VK_LOGIC_OP_OR = 7,
1989     VK_LOGIC_OP_NOR = 8,
1990     VK_LOGIC_OP_EQUIVALENT = 9,
1991     VK_LOGIC_OP_INVERT = 10,
1992     VK_LOGIC_OP_OR_REVERSE = 11,
1993     VK_LOGIC_OP_COPY_INVERTED = 12,
1994     VK_LOGIC_OP_OR_INVERTED = 13,
1995     VK_LOGIC_OP_NAND = 14,
1996     VK_LOGIC_OP_SET = 15,
1997     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
1998 } VkLogicOp;
1999 
2000 typedef enum VkBorderColor {
2001     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2002     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2003     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2004     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2005     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2006     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2007     VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2008     VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2009     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2010 } VkBorderColor;
2011 
2012 typedef enum VkFilter {
2013     VK_FILTER_NEAREST = 0,
2014     VK_FILTER_LINEAR = 1,
2015     VK_FILTER_CUBIC_EXT = 1000015000,
2016     VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
2017     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2018 } VkFilter;
2019 
2020 typedef enum VkSamplerAddressMode {
2021     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2022     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2023     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2024     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2025     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2026     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2027     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2028 } VkSamplerAddressMode;
2029 
2030 typedef enum VkSamplerMipmapMode {
2031     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2032     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2033     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2034 } VkSamplerMipmapMode;
2035 
2036 typedef enum VkDescriptorType {
2037     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2038     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2039     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2040     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2041     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2042     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2043     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2044     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2045     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2046     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2047     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2048     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2049     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2050     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2051     VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
2052     VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
2053     VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
2054     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2055     VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2056     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2057 } VkDescriptorType;
2058 
2059 typedef enum VkAttachmentLoadOp {
2060     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2061     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2062     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2063     VK_ATTACHMENT_LOAD_OP_NONE_EXT = 1000400000,
2064     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2065 } VkAttachmentLoadOp;
2066 
2067 typedef enum VkAttachmentStoreOp {
2068     VK_ATTACHMENT_STORE_OP_STORE = 0,
2069     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2070     VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2071     VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2072     VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2073     VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2074     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2075 } VkAttachmentStoreOp;
2076 
2077 typedef enum VkPipelineBindPoint {
2078     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2079     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2080     VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2081     VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2082     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2083     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2084 } VkPipelineBindPoint;
2085 
2086 typedef enum VkCommandBufferLevel {
2087     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2088     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2089     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2090 } VkCommandBufferLevel;
2091 
2092 typedef enum VkIndexType {
2093     VK_INDEX_TYPE_UINT16 = 0,
2094     VK_INDEX_TYPE_UINT32 = 1,
2095     VK_INDEX_TYPE_NONE_KHR = 1000165000,
2096     VK_INDEX_TYPE_UINT8_EXT = 1000265000,
2097     VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2098     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2099 } VkIndexType;
2100 
2101 typedef enum VkSubpassContents {
2102     VK_SUBPASS_CONTENTS_INLINE = 0,
2103     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2104     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2105 } VkSubpassContents;
2106 
2107 typedef enum VkAccessFlagBits {
2108     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2109     VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2110     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2111     VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2112     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2113     VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2114     VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2115     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2116     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2117     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2118     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2119     VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2120     VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2121     VK_ACCESS_HOST_READ_BIT = 0x00002000,
2122     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2123     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2124     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
2125     VK_ACCESS_NONE = 0,
2126     VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2127     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2128     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
2129     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
2130     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2131     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
2132     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
2133     VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2134     VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
2135     VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
2136     VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
2137     VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
2138     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
2139     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
2140     VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
2141     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2142 } VkAccessFlagBits;
2143 typedef VkFlags VkAccessFlags;
2144 
2145 typedef enum VkImageAspectFlagBits {
2146     VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2147     VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2148     VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2149     VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
2150     VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2151     VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2152     VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2153     VK_IMAGE_ASPECT_NONE = 0,
2154     VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2155     VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2156     VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2157     VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
2158     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
2159     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
2160     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
2161     VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
2162     VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2163 } VkImageAspectFlagBits;
2164 typedef VkFlags VkImageAspectFlags;
2165 
2166 typedef enum VkFormatFeatureFlagBits {
2167     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
2168     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
2169     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
2170     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
2171     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
2172     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
2173     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
2174     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
2175     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
2176     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
2177     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
2178     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
2179     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
2180     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2181     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2182     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2183     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2184     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2185     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2186     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2187     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2188     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2189     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
2190 #ifdef VK_ENABLE_BETA_EXTENSIONS
2191     VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
2192 #endif
2193 #ifdef VK_ENABLE_BETA_EXTENSIONS
2194     VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
2195 #endif
2196     VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
2197     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
2198     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
2199     VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
2200 #ifdef VK_ENABLE_BETA_EXTENSIONS
2201     VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
2202 #endif
2203 #ifdef VK_ENABLE_BETA_EXTENSIONS
2204     VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
2205 #endif
2206     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2207     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2208     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2209     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2210     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2211     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2212     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2213     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2214     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,
2215     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
2216     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2217     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2218 } VkFormatFeatureFlagBits;
2219 typedef VkFlags VkFormatFeatureFlags;
2220 
2221 typedef enum VkImageCreateFlagBits {
2222     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2223     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2224     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2225     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
2226     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
2227     VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2228     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
2229     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
2230     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2231     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
2232     VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
2233     VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
2234     VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
2235     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
2236     VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
2237     VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
2238     VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
2239     VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000,
2240     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2241     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2242     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2243     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2244     VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
2245     VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
2246     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2247 } VkImageCreateFlagBits;
2248 typedef VkFlags VkImageCreateFlags;
2249 
2250 typedef enum VkSampleCountFlagBits {
2251     VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2252     VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2253     VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2254     VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2255     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2256     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2257     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2258     VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2259 } VkSampleCountFlagBits;
2260 typedef VkFlags VkSampleCountFlags;
2261 
2262 typedef enum VkImageUsageFlagBits {
2263     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2264     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
2265     VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
2266     VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
2267     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
2268     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
2269     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
2270     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
2271 #ifdef VK_ENABLE_BETA_EXTENSIONS
2272     VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
2273 #endif
2274 #ifdef VK_ENABLE_BETA_EXTENSIONS
2275     VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
2276 #endif
2277 #ifdef VK_ENABLE_BETA_EXTENSIONS
2278     VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
2279 #endif
2280     VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
2281     VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
2282 #ifdef VK_ENABLE_BETA_EXTENSIONS
2283     VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
2284 #endif
2285 #ifdef VK_ENABLE_BETA_EXTENSIONS
2286     VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
2287 #endif
2288 #ifdef VK_ENABLE_BETA_EXTENSIONS
2289     VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
2290 #endif
2291     VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
2292     VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
2293     VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
2294     VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
2295     VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2296     VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2297 } VkImageUsageFlagBits;
2298 typedef VkFlags VkImageUsageFlags;
2299 
2300 typedef enum VkInstanceCreateFlagBits {
2301     VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
2302     VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2303 } VkInstanceCreateFlagBits;
2304 typedef VkFlags VkInstanceCreateFlags;
2305 
2306 typedef enum VkMemoryHeapFlagBits {
2307     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
2308     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2309     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2310     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2311 } VkMemoryHeapFlagBits;
2312 typedef VkFlags VkMemoryHeapFlags;
2313 
2314 typedef enum VkMemoryPropertyFlagBits {
2315     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2316     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2317     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2318     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2319     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
2320     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
2321     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
2322     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
2323     VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
2324     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2325 } VkMemoryPropertyFlagBits;
2326 typedef VkFlags VkMemoryPropertyFlags;
2327 
2328 typedef enum VkQueueFlagBits {
2329     VK_QUEUE_GRAPHICS_BIT = 0x00000001,
2330     VK_QUEUE_COMPUTE_BIT = 0x00000002,
2331     VK_QUEUE_TRANSFER_BIT = 0x00000004,
2332     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
2333     VK_QUEUE_PROTECTED_BIT = 0x00000010,
2334 #ifdef VK_ENABLE_BETA_EXTENSIONS
2335     VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
2336 #endif
2337 #ifdef VK_ENABLE_BETA_EXTENSIONS
2338     VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
2339 #endif
2340     VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
2341     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2342 } VkQueueFlagBits;
2343 typedef VkFlags VkQueueFlags;
2344 typedef VkFlags VkDeviceCreateFlags;
2345 
2346 typedef enum VkDeviceQueueCreateFlagBits {
2347     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2348     VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2349 } VkDeviceQueueCreateFlagBits;
2350 typedef VkFlags VkDeviceQueueCreateFlags;
2351 
2352 typedef enum VkPipelineStageFlagBits {
2353     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
2354     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
2355     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
2356     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
2357     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
2358     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
2359     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
2360     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
2361     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
2362     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
2363     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
2364     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
2365     VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
2366     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2367     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
2368     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
2369     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
2370     VK_PIPELINE_STAGE_NONE = 0,
2371     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
2372     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
2373     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
2374     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
2375     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2376     VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
2377     VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
2378     VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
2379     VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
2380     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2381     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2382     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2383     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2384     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
2385     VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
2386     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2387 } VkPipelineStageFlagBits;
2388 typedef VkFlags VkPipelineStageFlags;
2389 typedef VkFlags VkMemoryMapFlags;
2390 
2391 typedef enum VkSparseMemoryBindFlagBits {
2392     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2393     VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2394 } VkSparseMemoryBindFlagBits;
2395 typedef VkFlags VkSparseMemoryBindFlags;
2396 
2397 typedef enum VkSparseImageFormatFlagBits {
2398     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
2399     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
2400     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
2401     VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2402 } VkSparseImageFormatFlagBits;
2403 typedef VkFlags VkSparseImageFormatFlags;
2404 
2405 typedef enum VkFenceCreateFlagBits {
2406     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2407     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2408 } VkFenceCreateFlagBits;
2409 typedef VkFlags VkFenceCreateFlags;
2410 typedef VkFlags VkSemaphoreCreateFlags;
2411 
2412 typedef enum VkEventCreateFlagBits {
2413     VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
2414     VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
2415     VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2416 } VkEventCreateFlagBits;
2417 typedef VkFlags VkEventCreateFlags;
2418 
2419 typedef enum VkQueryPipelineStatisticFlagBits {
2420     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
2421     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
2422     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
2423     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
2424     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
2425     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
2426     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
2427     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
2428     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
2429     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
2430     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
2431     VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
2432     VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
2433     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2434 } VkQueryPipelineStatisticFlagBits;
2435 typedef VkFlags VkQueryPipelineStatisticFlags;
2436 typedef VkFlags VkQueryPoolCreateFlags;
2437 
2438 typedef enum VkQueryResultFlagBits {
2439     VK_QUERY_RESULT_64_BIT = 0x00000001,
2440     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
2441     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
2442     VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
2443 #ifdef VK_ENABLE_BETA_EXTENSIONS
2444     VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
2445 #endif
2446     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2447 } VkQueryResultFlagBits;
2448 typedef VkFlags VkQueryResultFlags;
2449 
2450 typedef enum VkBufferCreateFlagBits {
2451     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2452     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2453     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2454     VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
2455     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
2456     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2457     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2458     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2459 } VkBufferCreateFlagBits;
2460 typedef VkFlags VkBufferCreateFlags;
2461 
2462 typedef enum VkBufferUsageFlagBits {
2463     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2464     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
2465     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
2466     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
2467     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
2468     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
2469     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
2470     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
2471     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
2472     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
2473 #ifdef VK_ENABLE_BETA_EXTENSIONS
2474     VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
2475 #endif
2476 #ifdef VK_ENABLE_BETA_EXTENSIONS
2477     VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
2478 #endif
2479     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2480     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
2481     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
2482     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
2483     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
2484     VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
2485 #ifdef VK_ENABLE_BETA_EXTENSIONS
2486     VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
2487 #endif
2488 #ifdef VK_ENABLE_BETA_EXTENSIONS
2489     VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
2490 #endif
2491     VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
2492     VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
2493     VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
2494     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2495     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2496     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2497 } VkBufferUsageFlagBits;
2498 typedef VkFlags VkBufferUsageFlags;
2499 typedef VkFlags VkBufferViewCreateFlags;
2500 
2501 typedef enum VkImageViewCreateFlagBits {
2502     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
2503     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
2504     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2505 } VkImageViewCreateFlagBits;
2506 typedef VkFlags VkImageViewCreateFlags;
2507 typedef VkFlags VkShaderModuleCreateFlags;
2508 
2509 typedef enum VkPipelineCacheCreateFlagBits {
2510     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
2511     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
2512     VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2513 } VkPipelineCacheCreateFlagBits;
2514 typedef VkFlags VkPipelineCacheCreateFlags;
2515 
2516 typedef enum VkColorComponentFlagBits {
2517     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2518     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2519     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2520     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
2521     VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2522 } VkColorComponentFlagBits;
2523 typedef VkFlags VkColorComponentFlags;
2524 
2525 typedef enum VkPipelineCreateFlagBits {
2526     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2527     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2528     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
2529     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2530     VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
2531     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
2532     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
2533     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
2534     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
2535     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
2536     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
2537     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
2538     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
2539     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
2540     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
2541     VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
2542     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
2543     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
2544     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
2545     VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
2546     VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
2547     VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
2548     VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
2549     VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
2550     VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
2551     VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
2552     VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
2553     VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000,
2554     VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000,
2555     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
2556     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2557     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
2558     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
2559     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
2560     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
2561     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
2562     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2563 } VkPipelineCreateFlagBits;
2564 typedef VkFlags VkPipelineCreateFlags;
2565 
2566 typedef enum VkPipelineShaderStageCreateFlagBits {
2567     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
2568     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
2569     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
2570     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
2571     VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2572 } VkPipelineShaderStageCreateFlagBits;
2573 typedef VkFlags VkPipelineShaderStageCreateFlags;
2574 
2575 typedef enum VkShaderStageFlagBits {
2576     VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
2577     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2578     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
2579     VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2580     VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2581     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
2582     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
2583     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2584     VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
2585     VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
2586     VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
2587     VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
2588     VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
2589     VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
2590     VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
2591     VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
2592     VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
2593     VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
2594     VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
2595     VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
2596     VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
2597     VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
2598     VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
2599     VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
2600     VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
2601     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2602 } VkShaderStageFlagBits;
2603 
2604 typedef enum VkCullModeFlagBits {
2605     VK_CULL_MODE_NONE = 0,
2606     VK_CULL_MODE_FRONT_BIT = 0x00000001,
2607     VK_CULL_MODE_BACK_BIT = 0x00000002,
2608     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2609     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2610 } VkCullModeFlagBits;
2611 typedef VkFlags VkCullModeFlags;
2612 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
2613 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
2614 typedef VkFlags VkPipelineTessellationStateCreateFlags;
2615 typedef VkFlags VkPipelineViewportStateCreateFlags;
2616 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
2617 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
2618 
2619 typedef enum VkPipelineDepthStencilStateCreateFlagBits {
2620     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
2621     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
2622     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
2623     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
2624     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2625 } VkPipelineDepthStencilStateCreateFlagBits;
2626 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
2627 
2628 typedef enum VkPipelineColorBlendStateCreateFlagBits {
2629     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
2630     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
2631     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2632 } VkPipelineColorBlendStateCreateFlagBits;
2633 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
2634 typedef VkFlags VkPipelineDynamicStateCreateFlags;
2635 
2636 typedef enum VkPipelineLayoutCreateFlagBits {
2637     VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
2638     VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2639 } VkPipelineLayoutCreateFlagBits;
2640 typedef VkFlags VkPipelineLayoutCreateFlags;
2641 typedef VkFlags VkShaderStageFlags;
2642 
2643 typedef enum VkSamplerCreateFlagBits {
2644     VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
2645     VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
2646     VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
2647     VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
2648     VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2649 } VkSamplerCreateFlagBits;
2650 typedef VkFlags VkSamplerCreateFlags;
2651 
2652 typedef enum VkDescriptorPoolCreateFlagBits {
2653     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
2654     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
2655     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
2656     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
2657     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
2658     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2659 } VkDescriptorPoolCreateFlagBits;
2660 typedef VkFlags VkDescriptorPoolCreateFlags;
2661 typedef VkFlags VkDescriptorPoolResetFlags;
2662 
2663 typedef enum VkDescriptorSetLayoutCreateFlagBits {
2664     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
2665     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
2666     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
2667     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
2668     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
2669     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2670 } VkDescriptorSetLayoutCreateFlagBits;
2671 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
2672 
2673 typedef enum VkAttachmentDescriptionFlagBits {
2674     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
2675     VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2676 } VkAttachmentDescriptionFlagBits;
2677 typedef VkFlags VkAttachmentDescriptionFlags;
2678 
2679 typedef enum VkDependencyFlagBits {
2680     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
2681     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2682     VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
2683     VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
2684     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
2685     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
2686     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2687 } VkDependencyFlagBits;
2688 typedef VkFlags VkDependencyFlags;
2689 
2690 typedef enum VkFramebufferCreateFlagBits {
2691     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
2692     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
2693     VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2694 } VkFramebufferCreateFlagBits;
2695 typedef VkFlags VkFramebufferCreateFlags;
2696 
2697 typedef enum VkRenderPassCreateFlagBits {
2698     VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
2699     VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2700 } VkRenderPassCreateFlagBits;
2701 typedef VkFlags VkRenderPassCreateFlags;
2702 
2703 typedef enum VkSubpassDescriptionFlagBits {
2704     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2705     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
2706     VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
2707     VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
2708     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
2709     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
2710     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
2711     VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
2712     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
2713     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
2714     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
2715     VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2716 } VkSubpassDescriptionFlagBits;
2717 typedef VkFlags VkSubpassDescriptionFlags;
2718 
2719 typedef enum VkCommandPoolCreateFlagBits {
2720     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
2721     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
2722     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
2723     VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2724 } VkCommandPoolCreateFlagBits;
2725 typedef VkFlags VkCommandPoolCreateFlags;
2726 
2727 typedef enum VkCommandPoolResetFlagBits {
2728     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2729     VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2730 } VkCommandPoolResetFlagBits;
2731 typedef VkFlags VkCommandPoolResetFlags;
2732 
2733 typedef enum VkCommandBufferUsageFlagBits {
2734     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2735     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2736     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
2737     VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2738 } VkCommandBufferUsageFlagBits;
2739 typedef VkFlags VkCommandBufferUsageFlags;
2740 
2741 typedef enum VkQueryControlFlagBits {
2742     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
2743     VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2744 } VkQueryControlFlagBits;
2745 typedef VkFlags VkQueryControlFlags;
2746 
2747 typedef enum VkCommandBufferResetFlagBits {
2748     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2749     VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2750 } VkCommandBufferResetFlagBits;
2751 typedef VkFlags VkCommandBufferResetFlags;
2752 
2753 typedef enum VkStencilFaceFlagBits {
2754     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
2755     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
2756     VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
2757     VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
2758     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2759 } VkStencilFaceFlagBits;
2760 typedef VkFlags VkStencilFaceFlags;
2761 typedef struct VkExtent2D {
2762     uint32_t    width;
2763     uint32_t    height;
2764 } VkExtent2D;
2765 
2766 typedef struct VkExtent3D {
2767     uint32_t    width;
2768     uint32_t    height;
2769     uint32_t    depth;
2770 } VkExtent3D;
2771 
2772 typedef struct VkOffset2D {
2773     int32_t    x;
2774     int32_t    y;
2775 } VkOffset2D;
2776 
2777 typedef struct VkOffset3D {
2778     int32_t    x;
2779     int32_t    y;
2780     int32_t    z;
2781 } VkOffset3D;
2782 
2783 typedef struct VkRect2D {
2784     VkOffset2D    offset;
2785     VkExtent2D    extent;
2786 } VkRect2D;
2787 
2788 typedef struct VkBaseInStructure {
2789     VkStructureType                    sType;
2790     const struct VkBaseInStructure*    pNext;
2791 } VkBaseInStructure;
2792 
2793 typedef struct VkBaseOutStructure {
2794     VkStructureType               sType;
2795     struct VkBaseOutStructure*    pNext;
2796 } VkBaseOutStructure;
2797 
2798 typedef struct VkBufferMemoryBarrier {
2799     VkStructureType    sType;
2800     const void*        pNext;
2801     VkAccessFlags      srcAccessMask;
2802     VkAccessFlags      dstAccessMask;
2803     uint32_t           srcQueueFamilyIndex;
2804     uint32_t           dstQueueFamilyIndex;
2805     VkBuffer           buffer;
2806     VkDeviceSize       offset;
2807     VkDeviceSize       size;
2808 } VkBufferMemoryBarrier;
2809 
2810 typedef struct VkDispatchIndirectCommand {
2811     uint32_t    x;
2812     uint32_t    y;
2813     uint32_t    z;
2814 } VkDispatchIndirectCommand;
2815 
2816 typedef struct VkDrawIndexedIndirectCommand {
2817     uint32_t    indexCount;
2818     uint32_t    instanceCount;
2819     uint32_t    firstIndex;
2820     int32_t     vertexOffset;
2821     uint32_t    firstInstance;
2822 } VkDrawIndexedIndirectCommand;
2823 
2824 typedef struct VkDrawIndirectCommand {
2825     uint32_t    vertexCount;
2826     uint32_t    instanceCount;
2827     uint32_t    firstVertex;
2828     uint32_t    firstInstance;
2829 } VkDrawIndirectCommand;
2830 
2831 typedef struct VkImageSubresourceRange {
2832     VkImageAspectFlags    aspectMask;
2833     uint32_t              baseMipLevel;
2834     uint32_t              levelCount;
2835     uint32_t              baseArrayLayer;
2836     uint32_t              layerCount;
2837 } VkImageSubresourceRange;
2838 
2839 typedef struct VkImageMemoryBarrier {
2840     VkStructureType            sType;
2841     const void*                pNext;
2842     VkAccessFlags              srcAccessMask;
2843     VkAccessFlags              dstAccessMask;
2844     VkImageLayout              oldLayout;
2845     VkImageLayout              newLayout;
2846     uint32_t                   srcQueueFamilyIndex;
2847     uint32_t                   dstQueueFamilyIndex;
2848     VkImage                    image;
2849     VkImageSubresourceRange    subresourceRange;
2850 } VkImageMemoryBarrier;
2851 
2852 typedef struct VkMemoryBarrier {
2853     VkStructureType    sType;
2854     const void*        pNext;
2855     VkAccessFlags      srcAccessMask;
2856     VkAccessFlags      dstAccessMask;
2857 } VkMemoryBarrier;
2858 
2859 typedef struct VkPipelineCacheHeaderVersionOne {
2860     uint32_t                        headerSize;
2861     VkPipelineCacheHeaderVersion    headerVersion;
2862     uint32_t                        vendorID;
2863     uint32_t                        deviceID;
2864     uint8_t                         pipelineCacheUUID[VK_UUID_SIZE];
2865 } VkPipelineCacheHeaderVersionOne;
2866 
2867 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
2868     void*                                       pUserData,
2869     size_t                                      size,
2870     size_t                                      alignment,
2871     VkSystemAllocationScope                     allocationScope);
2872 
2873 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
2874     void*                                       pUserData,
2875     void*                                       pMemory);
2876 
2877 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
2878     void*                                       pUserData,
2879     size_t                                      size,
2880     VkInternalAllocationType                    allocationType,
2881     VkSystemAllocationScope                     allocationScope);
2882 
2883 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
2884     void*                                       pUserData,
2885     size_t                                      size,
2886     VkInternalAllocationType                    allocationType,
2887     VkSystemAllocationScope                     allocationScope);
2888 
2889 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
2890     void*                                       pUserData,
2891     void*                                       pOriginal,
2892     size_t                                      size,
2893     size_t                                      alignment,
2894     VkSystemAllocationScope                     allocationScope);
2895 
2896 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
2897 typedef struct VkAllocationCallbacks {
2898     void*                                   pUserData;
2899     PFN_vkAllocationFunction                pfnAllocation;
2900     PFN_vkReallocationFunction              pfnReallocation;
2901     PFN_vkFreeFunction                      pfnFree;
2902     PFN_vkInternalAllocationNotification    pfnInternalAllocation;
2903     PFN_vkInternalFreeNotification          pfnInternalFree;
2904 } VkAllocationCallbacks;
2905 
2906 typedef struct VkApplicationInfo {
2907     VkStructureType    sType;
2908     const void*        pNext;
2909     const char*        pApplicationName;
2910     uint32_t           applicationVersion;
2911     const char*        pEngineName;
2912     uint32_t           engineVersion;
2913     uint32_t           apiVersion;
2914 } VkApplicationInfo;
2915 
2916 typedef struct VkFormatProperties {
2917     VkFormatFeatureFlags    linearTilingFeatures;
2918     VkFormatFeatureFlags    optimalTilingFeatures;
2919     VkFormatFeatureFlags    bufferFeatures;
2920 } VkFormatProperties;
2921 
2922 typedef struct VkImageFormatProperties {
2923     VkExtent3D            maxExtent;
2924     uint32_t              maxMipLevels;
2925     uint32_t              maxArrayLayers;
2926     VkSampleCountFlags    sampleCounts;
2927     VkDeviceSize          maxResourceSize;
2928 } VkImageFormatProperties;
2929 
2930 typedef struct VkInstanceCreateInfo {
2931     VkStructureType             sType;
2932     const void*                 pNext;
2933     VkInstanceCreateFlags       flags;
2934     const VkApplicationInfo*    pApplicationInfo;
2935     uint32_t                    enabledLayerCount;
2936     const char* const*          ppEnabledLayerNames;
2937     uint32_t                    enabledExtensionCount;
2938     const char* const*          ppEnabledExtensionNames;
2939 } VkInstanceCreateInfo;
2940 
2941 typedef struct VkMemoryHeap {
2942     VkDeviceSize         size;
2943     VkMemoryHeapFlags    flags;
2944 } VkMemoryHeap;
2945 
2946 typedef struct VkMemoryType {
2947     VkMemoryPropertyFlags    propertyFlags;
2948     uint32_t                 heapIndex;
2949 } VkMemoryType;
2950 
2951 typedef struct VkPhysicalDeviceFeatures {
2952     VkBool32    robustBufferAccess;
2953     VkBool32    fullDrawIndexUint32;
2954     VkBool32    imageCubeArray;
2955     VkBool32    independentBlend;
2956     VkBool32    geometryShader;
2957     VkBool32    tessellationShader;
2958     VkBool32    sampleRateShading;
2959     VkBool32    dualSrcBlend;
2960     VkBool32    logicOp;
2961     VkBool32    multiDrawIndirect;
2962     VkBool32    drawIndirectFirstInstance;
2963     VkBool32    depthClamp;
2964     VkBool32    depthBiasClamp;
2965     VkBool32    fillModeNonSolid;
2966     VkBool32    depthBounds;
2967     VkBool32    wideLines;
2968     VkBool32    largePoints;
2969     VkBool32    alphaToOne;
2970     VkBool32    multiViewport;
2971     VkBool32    samplerAnisotropy;
2972     VkBool32    textureCompressionETC2;
2973     VkBool32    textureCompressionASTC_LDR;
2974     VkBool32    textureCompressionBC;
2975     VkBool32    occlusionQueryPrecise;
2976     VkBool32    pipelineStatisticsQuery;
2977     VkBool32    vertexPipelineStoresAndAtomics;
2978     VkBool32    fragmentStoresAndAtomics;
2979     VkBool32    shaderTessellationAndGeometryPointSize;
2980     VkBool32    shaderImageGatherExtended;
2981     VkBool32    shaderStorageImageExtendedFormats;
2982     VkBool32    shaderStorageImageMultisample;
2983     VkBool32    shaderStorageImageReadWithoutFormat;
2984     VkBool32    shaderStorageImageWriteWithoutFormat;
2985     VkBool32    shaderUniformBufferArrayDynamicIndexing;
2986     VkBool32    shaderSampledImageArrayDynamicIndexing;
2987     VkBool32    shaderStorageBufferArrayDynamicIndexing;
2988     VkBool32    shaderStorageImageArrayDynamicIndexing;
2989     VkBool32    shaderClipDistance;
2990     VkBool32    shaderCullDistance;
2991     VkBool32    shaderFloat64;
2992     VkBool32    shaderInt64;
2993     VkBool32    shaderInt16;
2994     VkBool32    shaderResourceResidency;
2995     VkBool32    shaderResourceMinLod;
2996     VkBool32    sparseBinding;
2997     VkBool32    sparseResidencyBuffer;
2998     VkBool32    sparseResidencyImage2D;
2999     VkBool32    sparseResidencyImage3D;
3000     VkBool32    sparseResidency2Samples;
3001     VkBool32    sparseResidency4Samples;
3002     VkBool32    sparseResidency8Samples;
3003     VkBool32    sparseResidency16Samples;
3004     VkBool32    sparseResidencyAliased;
3005     VkBool32    variableMultisampleRate;
3006     VkBool32    inheritedQueries;
3007 } VkPhysicalDeviceFeatures;
3008 
3009 typedef struct VkPhysicalDeviceLimits {
3010     uint32_t              maxImageDimension1D;
3011     uint32_t              maxImageDimension2D;
3012     uint32_t              maxImageDimension3D;
3013     uint32_t              maxImageDimensionCube;
3014     uint32_t              maxImageArrayLayers;
3015     uint32_t              maxTexelBufferElements;
3016     uint32_t              maxUniformBufferRange;
3017     uint32_t              maxStorageBufferRange;
3018     uint32_t              maxPushConstantsSize;
3019     uint32_t              maxMemoryAllocationCount;
3020     uint32_t              maxSamplerAllocationCount;
3021     VkDeviceSize          bufferImageGranularity;
3022     VkDeviceSize          sparseAddressSpaceSize;
3023     uint32_t              maxBoundDescriptorSets;
3024     uint32_t              maxPerStageDescriptorSamplers;
3025     uint32_t              maxPerStageDescriptorUniformBuffers;
3026     uint32_t              maxPerStageDescriptorStorageBuffers;
3027     uint32_t              maxPerStageDescriptorSampledImages;
3028     uint32_t              maxPerStageDescriptorStorageImages;
3029     uint32_t              maxPerStageDescriptorInputAttachments;
3030     uint32_t              maxPerStageResources;
3031     uint32_t              maxDescriptorSetSamplers;
3032     uint32_t              maxDescriptorSetUniformBuffers;
3033     uint32_t              maxDescriptorSetUniformBuffersDynamic;
3034     uint32_t              maxDescriptorSetStorageBuffers;
3035     uint32_t              maxDescriptorSetStorageBuffersDynamic;
3036     uint32_t              maxDescriptorSetSampledImages;
3037     uint32_t              maxDescriptorSetStorageImages;
3038     uint32_t              maxDescriptorSetInputAttachments;
3039     uint32_t              maxVertexInputAttributes;
3040     uint32_t              maxVertexInputBindings;
3041     uint32_t              maxVertexInputAttributeOffset;
3042     uint32_t              maxVertexInputBindingStride;
3043     uint32_t              maxVertexOutputComponents;
3044     uint32_t              maxTessellationGenerationLevel;
3045     uint32_t              maxTessellationPatchSize;
3046     uint32_t              maxTessellationControlPerVertexInputComponents;
3047     uint32_t              maxTessellationControlPerVertexOutputComponents;
3048     uint32_t              maxTessellationControlPerPatchOutputComponents;
3049     uint32_t              maxTessellationControlTotalOutputComponents;
3050     uint32_t              maxTessellationEvaluationInputComponents;
3051     uint32_t              maxTessellationEvaluationOutputComponents;
3052     uint32_t              maxGeometryShaderInvocations;
3053     uint32_t              maxGeometryInputComponents;
3054     uint32_t              maxGeometryOutputComponents;
3055     uint32_t              maxGeometryOutputVertices;
3056     uint32_t              maxGeometryTotalOutputComponents;
3057     uint32_t              maxFragmentInputComponents;
3058     uint32_t              maxFragmentOutputAttachments;
3059     uint32_t              maxFragmentDualSrcAttachments;
3060     uint32_t              maxFragmentCombinedOutputResources;
3061     uint32_t              maxComputeSharedMemorySize;
3062     uint32_t              maxComputeWorkGroupCount[3];
3063     uint32_t              maxComputeWorkGroupInvocations;
3064     uint32_t              maxComputeWorkGroupSize[3];
3065     uint32_t              subPixelPrecisionBits;
3066     uint32_t              subTexelPrecisionBits;
3067     uint32_t              mipmapPrecisionBits;
3068     uint32_t              maxDrawIndexedIndexValue;
3069     uint32_t              maxDrawIndirectCount;
3070     float                 maxSamplerLodBias;
3071     float                 maxSamplerAnisotropy;
3072     uint32_t              maxViewports;
3073     uint32_t              maxViewportDimensions[2];
3074     float                 viewportBoundsRange[2];
3075     uint32_t              viewportSubPixelBits;
3076     size_t                minMemoryMapAlignment;
3077     VkDeviceSize          minTexelBufferOffsetAlignment;
3078     VkDeviceSize          minUniformBufferOffsetAlignment;
3079     VkDeviceSize          minStorageBufferOffsetAlignment;
3080     int32_t               minTexelOffset;
3081     uint32_t              maxTexelOffset;
3082     int32_t               minTexelGatherOffset;
3083     uint32_t              maxTexelGatherOffset;
3084     float                 minInterpolationOffset;
3085     float                 maxInterpolationOffset;
3086     uint32_t              subPixelInterpolationOffsetBits;
3087     uint32_t              maxFramebufferWidth;
3088     uint32_t              maxFramebufferHeight;
3089     uint32_t              maxFramebufferLayers;
3090     VkSampleCountFlags    framebufferColorSampleCounts;
3091     VkSampleCountFlags    framebufferDepthSampleCounts;
3092     VkSampleCountFlags    framebufferStencilSampleCounts;
3093     VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
3094     uint32_t              maxColorAttachments;
3095     VkSampleCountFlags    sampledImageColorSampleCounts;
3096     VkSampleCountFlags    sampledImageIntegerSampleCounts;
3097     VkSampleCountFlags    sampledImageDepthSampleCounts;
3098     VkSampleCountFlags    sampledImageStencilSampleCounts;
3099     VkSampleCountFlags    storageImageSampleCounts;
3100     uint32_t              maxSampleMaskWords;
3101     VkBool32              timestampComputeAndGraphics;
3102     float                 timestampPeriod;
3103     uint32_t              maxClipDistances;
3104     uint32_t              maxCullDistances;
3105     uint32_t              maxCombinedClipAndCullDistances;
3106     uint32_t              discreteQueuePriorities;
3107     float                 pointSizeRange[2];
3108     float                 lineWidthRange[2];
3109     float                 pointSizeGranularity;
3110     float                 lineWidthGranularity;
3111     VkBool32              strictLines;
3112     VkBool32              standardSampleLocations;
3113     VkDeviceSize          optimalBufferCopyOffsetAlignment;
3114     VkDeviceSize          optimalBufferCopyRowPitchAlignment;
3115     VkDeviceSize          nonCoherentAtomSize;
3116 } VkPhysicalDeviceLimits;
3117 
3118 typedef struct VkPhysicalDeviceMemoryProperties {
3119     uint32_t        memoryTypeCount;
3120     VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
3121     uint32_t        memoryHeapCount;
3122     VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
3123 } VkPhysicalDeviceMemoryProperties;
3124 
3125 typedef struct VkPhysicalDeviceSparseProperties {
3126     VkBool32    residencyStandard2DBlockShape;
3127     VkBool32    residencyStandard2DMultisampleBlockShape;
3128     VkBool32    residencyStandard3DBlockShape;
3129     VkBool32    residencyAlignedMipSize;
3130     VkBool32    residencyNonResidentStrict;
3131 } VkPhysicalDeviceSparseProperties;
3132 
3133 typedef struct VkPhysicalDeviceProperties {
3134     uint32_t                            apiVersion;
3135     uint32_t                            driverVersion;
3136     uint32_t                            vendorID;
3137     uint32_t                            deviceID;
3138     VkPhysicalDeviceType                deviceType;
3139     char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3140     uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
3141     VkPhysicalDeviceLimits              limits;
3142     VkPhysicalDeviceSparseProperties    sparseProperties;
3143 } VkPhysicalDeviceProperties;
3144 
3145 typedef struct VkQueueFamilyProperties {
3146     VkQueueFlags    queueFlags;
3147     uint32_t        queueCount;
3148     uint32_t        timestampValidBits;
3149     VkExtent3D      minImageTransferGranularity;
3150 } VkQueueFamilyProperties;
3151 
3152 typedef struct VkDeviceQueueCreateInfo {
3153     VkStructureType             sType;
3154     const void*                 pNext;
3155     VkDeviceQueueCreateFlags    flags;
3156     uint32_t                    queueFamilyIndex;
3157     uint32_t                    queueCount;
3158     const float*                pQueuePriorities;
3159 } VkDeviceQueueCreateInfo;
3160 
3161 typedef struct VkDeviceCreateInfo {
3162     VkStructureType                    sType;
3163     const void*                        pNext;
3164     VkDeviceCreateFlags                flags;
3165     uint32_t                           queueCreateInfoCount;
3166     const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
3167     uint32_t                           enabledLayerCount;
3168     const char* const*                 ppEnabledLayerNames;
3169     uint32_t                           enabledExtensionCount;
3170     const char* const*                 ppEnabledExtensionNames;
3171     const VkPhysicalDeviceFeatures*    pEnabledFeatures;
3172 } VkDeviceCreateInfo;
3173 
3174 typedef struct VkExtensionProperties {
3175     char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
3176     uint32_t    specVersion;
3177 } VkExtensionProperties;
3178 
3179 typedef struct VkLayerProperties {
3180     char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
3181     uint32_t    specVersion;
3182     uint32_t    implementationVersion;
3183     char        description[VK_MAX_DESCRIPTION_SIZE];
3184 } VkLayerProperties;
3185 
3186 typedef struct VkSubmitInfo {
3187     VkStructureType                sType;
3188     const void*                    pNext;
3189     uint32_t                       waitSemaphoreCount;
3190     const VkSemaphore*             pWaitSemaphores;
3191     const VkPipelineStageFlags*    pWaitDstStageMask;
3192     uint32_t                       commandBufferCount;
3193     const VkCommandBuffer*         pCommandBuffers;
3194     uint32_t                       signalSemaphoreCount;
3195     const VkSemaphore*             pSignalSemaphores;
3196 } VkSubmitInfo;
3197 
3198 typedef struct VkMappedMemoryRange {
3199     VkStructureType    sType;
3200     const void*        pNext;
3201     VkDeviceMemory     memory;
3202     VkDeviceSize       offset;
3203     VkDeviceSize       size;
3204 } VkMappedMemoryRange;
3205 
3206 typedef struct VkMemoryAllocateInfo {
3207     VkStructureType    sType;
3208     const void*        pNext;
3209     VkDeviceSize       allocationSize;
3210     uint32_t           memoryTypeIndex;
3211 } VkMemoryAllocateInfo;
3212 
3213 typedef struct VkMemoryRequirements {
3214     VkDeviceSize    size;
3215     VkDeviceSize    alignment;
3216     uint32_t        memoryTypeBits;
3217 } VkMemoryRequirements;
3218 
3219 typedef struct VkSparseMemoryBind {
3220     VkDeviceSize               resourceOffset;
3221     VkDeviceSize               size;
3222     VkDeviceMemory             memory;
3223     VkDeviceSize               memoryOffset;
3224     VkSparseMemoryBindFlags    flags;
3225 } VkSparseMemoryBind;
3226 
3227 typedef struct VkSparseBufferMemoryBindInfo {
3228     VkBuffer                     buffer;
3229     uint32_t                     bindCount;
3230     const VkSparseMemoryBind*    pBinds;
3231 } VkSparseBufferMemoryBindInfo;
3232 
3233 typedef struct VkSparseImageOpaqueMemoryBindInfo {
3234     VkImage                      image;
3235     uint32_t                     bindCount;
3236     const VkSparseMemoryBind*    pBinds;
3237 } VkSparseImageOpaqueMemoryBindInfo;
3238 
3239 typedef struct VkImageSubresource {
3240     VkImageAspectFlags    aspectMask;
3241     uint32_t              mipLevel;
3242     uint32_t              arrayLayer;
3243 } VkImageSubresource;
3244 
3245 typedef struct VkSparseImageMemoryBind {
3246     VkImageSubresource         subresource;
3247     VkOffset3D                 offset;
3248     VkExtent3D                 extent;
3249     VkDeviceMemory             memory;
3250     VkDeviceSize               memoryOffset;
3251     VkSparseMemoryBindFlags    flags;
3252 } VkSparseImageMemoryBind;
3253 
3254 typedef struct VkSparseImageMemoryBindInfo {
3255     VkImage                           image;
3256     uint32_t                          bindCount;
3257     const VkSparseImageMemoryBind*    pBinds;
3258 } VkSparseImageMemoryBindInfo;
3259 
3260 typedef struct VkBindSparseInfo {
3261     VkStructureType                             sType;
3262     const void*                                 pNext;
3263     uint32_t                                    waitSemaphoreCount;
3264     const VkSemaphore*                          pWaitSemaphores;
3265     uint32_t                                    bufferBindCount;
3266     const VkSparseBufferMemoryBindInfo*         pBufferBinds;
3267     uint32_t                                    imageOpaqueBindCount;
3268     const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
3269     uint32_t                                    imageBindCount;
3270     const VkSparseImageMemoryBindInfo*          pImageBinds;
3271     uint32_t                                    signalSemaphoreCount;
3272     const VkSemaphore*                          pSignalSemaphores;
3273 } VkBindSparseInfo;
3274 
3275 typedef struct VkSparseImageFormatProperties {
3276     VkImageAspectFlags          aspectMask;
3277     VkExtent3D                  imageGranularity;
3278     VkSparseImageFormatFlags    flags;
3279 } VkSparseImageFormatProperties;
3280 
3281 typedef struct VkSparseImageMemoryRequirements {
3282     VkSparseImageFormatProperties    formatProperties;
3283     uint32_t                         imageMipTailFirstLod;
3284     VkDeviceSize                     imageMipTailSize;
3285     VkDeviceSize                     imageMipTailOffset;
3286     VkDeviceSize                     imageMipTailStride;
3287 } VkSparseImageMemoryRequirements;
3288 
3289 typedef struct VkFenceCreateInfo {
3290     VkStructureType       sType;
3291     const void*           pNext;
3292     VkFenceCreateFlags    flags;
3293 } VkFenceCreateInfo;
3294 
3295 typedef struct VkSemaphoreCreateInfo {
3296     VkStructureType           sType;
3297     const void*               pNext;
3298     VkSemaphoreCreateFlags    flags;
3299 } VkSemaphoreCreateInfo;
3300 
3301 typedef struct VkEventCreateInfo {
3302     VkStructureType       sType;
3303     const void*           pNext;
3304     VkEventCreateFlags    flags;
3305 } VkEventCreateInfo;
3306 
3307 typedef struct VkQueryPoolCreateInfo {
3308     VkStructureType                  sType;
3309     const void*                      pNext;
3310     VkQueryPoolCreateFlags           flags;
3311     VkQueryType                      queryType;
3312     uint32_t                         queryCount;
3313     VkQueryPipelineStatisticFlags    pipelineStatistics;
3314 } VkQueryPoolCreateInfo;
3315 
3316 typedef struct VkBufferCreateInfo {
3317     VkStructureType        sType;
3318     const void*            pNext;
3319     VkBufferCreateFlags    flags;
3320     VkDeviceSize           size;
3321     VkBufferUsageFlags     usage;
3322     VkSharingMode          sharingMode;
3323     uint32_t               queueFamilyIndexCount;
3324     const uint32_t*        pQueueFamilyIndices;
3325 } VkBufferCreateInfo;
3326 
3327 typedef struct VkBufferViewCreateInfo {
3328     VkStructureType            sType;
3329     const void*                pNext;
3330     VkBufferViewCreateFlags    flags;
3331     VkBuffer                   buffer;
3332     VkFormat                   format;
3333     VkDeviceSize               offset;
3334     VkDeviceSize               range;
3335 } VkBufferViewCreateInfo;
3336 
3337 typedef struct VkImageCreateInfo {
3338     VkStructureType          sType;
3339     const void*              pNext;
3340     VkImageCreateFlags       flags;
3341     VkImageType              imageType;
3342     VkFormat                 format;
3343     VkExtent3D               extent;
3344     uint32_t                 mipLevels;
3345     uint32_t                 arrayLayers;
3346     VkSampleCountFlagBits    samples;
3347     VkImageTiling            tiling;
3348     VkImageUsageFlags        usage;
3349     VkSharingMode            sharingMode;
3350     uint32_t                 queueFamilyIndexCount;
3351     const uint32_t*          pQueueFamilyIndices;
3352     VkImageLayout            initialLayout;
3353 } VkImageCreateInfo;
3354 
3355 typedef struct VkSubresourceLayout {
3356     VkDeviceSize    offset;
3357     VkDeviceSize    size;
3358     VkDeviceSize    rowPitch;
3359     VkDeviceSize    arrayPitch;
3360     VkDeviceSize    depthPitch;
3361 } VkSubresourceLayout;
3362 
3363 typedef struct VkComponentMapping {
3364     VkComponentSwizzle    r;
3365     VkComponentSwizzle    g;
3366     VkComponentSwizzle    b;
3367     VkComponentSwizzle    a;
3368 } VkComponentMapping;
3369 
3370 typedef struct VkImageViewCreateInfo {
3371     VkStructureType            sType;
3372     const void*                pNext;
3373     VkImageViewCreateFlags     flags;
3374     VkImage                    image;
3375     VkImageViewType            viewType;
3376     VkFormat                   format;
3377     VkComponentMapping         components;
3378     VkImageSubresourceRange    subresourceRange;
3379 } VkImageViewCreateInfo;
3380 
3381 typedef struct VkShaderModuleCreateInfo {
3382     VkStructureType              sType;
3383     const void*                  pNext;
3384     VkShaderModuleCreateFlags    flags;
3385     size_t                       codeSize;
3386     const uint32_t*              pCode;
3387 } VkShaderModuleCreateInfo;
3388 
3389 typedef struct VkPipelineCacheCreateInfo {
3390     VkStructureType               sType;
3391     const void*                   pNext;
3392     VkPipelineCacheCreateFlags    flags;
3393     size_t                        initialDataSize;
3394     const void*                   pInitialData;
3395 } VkPipelineCacheCreateInfo;
3396 
3397 typedef struct VkSpecializationMapEntry {
3398     uint32_t    constantID;
3399     uint32_t    offset;
3400     size_t      size;
3401 } VkSpecializationMapEntry;
3402 
3403 typedef struct VkSpecializationInfo {
3404     uint32_t                           mapEntryCount;
3405     const VkSpecializationMapEntry*    pMapEntries;
3406     size_t                             dataSize;
3407     const void*                        pData;
3408 } VkSpecializationInfo;
3409 
3410 typedef struct VkPipelineShaderStageCreateInfo {
3411     VkStructureType                     sType;
3412     const void*                         pNext;
3413     VkPipelineShaderStageCreateFlags    flags;
3414     VkShaderStageFlagBits               stage;
3415     VkShaderModule                      module;
3416     const char*                         pName;
3417     const VkSpecializationInfo*         pSpecializationInfo;
3418 } VkPipelineShaderStageCreateInfo;
3419 
3420 typedef struct VkComputePipelineCreateInfo {
3421     VkStructureType                    sType;
3422     const void*                        pNext;
3423     VkPipelineCreateFlags              flags;
3424     VkPipelineShaderStageCreateInfo    stage;
3425     VkPipelineLayout                   layout;
3426     VkPipeline                         basePipelineHandle;
3427     int32_t                            basePipelineIndex;
3428 } VkComputePipelineCreateInfo;
3429 
3430 typedef struct VkVertexInputBindingDescription {
3431     uint32_t             binding;
3432     uint32_t             stride;
3433     VkVertexInputRate    inputRate;
3434 } VkVertexInputBindingDescription;
3435 
3436 typedef struct VkVertexInputAttributeDescription {
3437     uint32_t    location;
3438     uint32_t    binding;
3439     VkFormat    format;
3440     uint32_t    offset;
3441 } VkVertexInputAttributeDescription;
3442 
3443 typedef struct VkPipelineVertexInputStateCreateInfo {
3444     VkStructureType                             sType;
3445     const void*                                 pNext;
3446     VkPipelineVertexInputStateCreateFlags       flags;
3447     uint32_t                                    vertexBindingDescriptionCount;
3448     const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
3449     uint32_t                                    vertexAttributeDescriptionCount;
3450     const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
3451 } VkPipelineVertexInputStateCreateInfo;
3452 
3453 typedef struct VkPipelineInputAssemblyStateCreateInfo {
3454     VkStructureType                            sType;
3455     const void*                                pNext;
3456     VkPipelineInputAssemblyStateCreateFlags    flags;
3457     VkPrimitiveTopology                        topology;
3458     VkBool32                                   primitiveRestartEnable;
3459 } VkPipelineInputAssemblyStateCreateInfo;
3460 
3461 typedef struct VkPipelineTessellationStateCreateInfo {
3462     VkStructureType                           sType;
3463     const void*                               pNext;
3464     VkPipelineTessellationStateCreateFlags    flags;
3465     uint32_t                                  patchControlPoints;
3466 } VkPipelineTessellationStateCreateInfo;
3467 
3468 typedef struct VkViewport {
3469     float    x;
3470     float    y;
3471     float    width;
3472     float    height;
3473     float    minDepth;
3474     float    maxDepth;
3475 } VkViewport;
3476 
3477 typedef struct VkPipelineViewportStateCreateInfo {
3478     VkStructureType                       sType;
3479     const void*                           pNext;
3480     VkPipelineViewportStateCreateFlags    flags;
3481     uint32_t                              viewportCount;
3482     const VkViewport*                     pViewports;
3483     uint32_t                              scissorCount;
3484     const VkRect2D*                       pScissors;
3485 } VkPipelineViewportStateCreateInfo;
3486 
3487 typedef struct VkPipelineRasterizationStateCreateInfo {
3488     VkStructureType                            sType;
3489     const void*                                pNext;
3490     VkPipelineRasterizationStateCreateFlags    flags;
3491     VkBool32                                   depthClampEnable;
3492     VkBool32                                   rasterizerDiscardEnable;
3493     VkPolygonMode                              polygonMode;
3494     VkCullModeFlags                            cullMode;
3495     VkFrontFace                                frontFace;
3496     VkBool32                                   depthBiasEnable;
3497     float                                      depthBiasConstantFactor;
3498     float                                      depthBiasClamp;
3499     float                                      depthBiasSlopeFactor;
3500     float                                      lineWidth;
3501 } VkPipelineRasterizationStateCreateInfo;
3502 
3503 typedef struct VkPipelineMultisampleStateCreateInfo {
3504     VkStructureType                          sType;
3505     const void*                              pNext;
3506     VkPipelineMultisampleStateCreateFlags    flags;
3507     VkSampleCountFlagBits                    rasterizationSamples;
3508     VkBool32                                 sampleShadingEnable;
3509     float                                    minSampleShading;
3510     const VkSampleMask*                      pSampleMask;
3511     VkBool32                                 alphaToCoverageEnable;
3512     VkBool32                                 alphaToOneEnable;
3513 } VkPipelineMultisampleStateCreateInfo;
3514 
3515 typedef struct VkStencilOpState {
3516     VkStencilOp    failOp;
3517     VkStencilOp    passOp;
3518     VkStencilOp    depthFailOp;
3519     VkCompareOp    compareOp;
3520     uint32_t       compareMask;
3521     uint32_t       writeMask;
3522     uint32_t       reference;
3523 } VkStencilOpState;
3524 
3525 typedef struct VkPipelineDepthStencilStateCreateInfo {
3526     VkStructureType                           sType;
3527     const void*                               pNext;
3528     VkPipelineDepthStencilStateCreateFlags    flags;
3529     VkBool32                                  depthTestEnable;
3530     VkBool32                                  depthWriteEnable;
3531     VkCompareOp                               depthCompareOp;
3532     VkBool32                                  depthBoundsTestEnable;
3533     VkBool32                                  stencilTestEnable;
3534     VkStencilOpState                          front;
3535     VkStencilOpState                          back;
3536     float                                     minDepthBounds;
3537     float                                     maxDepthBounds;
3538 } VkPipelineDepthStencilStateCreateInfo;
3539 
3540 typedef struct VkPipelineColorBlendAttachmentState {
3541     VkBool32                 blendEnable;
3542     VkBlendFactor            srcColorBlendFactor;
3543     VkBlendFactor            dstColorBlendFactor;
3544     VkBlendOp                colorBlendOp;
3545     VkBlendFactor            srcAlphaBlendFactor;
3546     VkBlendFactor            dstAlphaBlendFactor;
3547     VkBlendOp                alphaBlendOp;
3548     VkColorComponentFlags    colorWriteMask;
3549 } VkPipelineColorBlendAttachmentState;
3550 
3551 typedef struct VkPipelineColorBlendStateCreateInfo {
3552     VkStructureType                               sType;
3553     const void*                                   pNext;
3554     VkPipelineColorBlendStateCreateFlags          flags;
3555     VkBool32                                      logicOpEnable;
3556     VkLogicOp                                     logicOp;
3557     uint32_t                                      attachmentCount;
3558     const VkPipelineColorBlendAttachmentState*    pAttachments;
3559     float                                         blendConstants[4];
3560 } VkPipelineColorBlendStateCreateInfo;
3561 
3562 typedef struct VkPipelineDynamicStateCreateInfo {
3563     VkStructureType                      sType;
3564     const void*                          pNext;
3565     VkPipelineDynamicStateCreateFlags    flags;
3566     uint32_t                             dynamicStateCount;
3567     const VkDynamicState*                pDynamicStates;
3568 } VkPipelineDynamicStateCreateInfo;
3569 
3570 typedef struct VkGraphicsPipelineCreateInfo {
3571     VkStructureType                                  sType;
3572     const void*                                      pNext;
3573     VkPipelineCreateFlags                            flags;
3574     uint32_t                                         stageCount;
3575     const VkPipelineShaderStageCreateInfo*           pStages;
3576     const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
3577     const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
3578     const VkPipelineTessellationStateCreateInfo*     pTessellationState;
3579     const VkPipelineViewportStateCreateInfo*         pViewportState;
3580     const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
3581     const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
3582     const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
3583     const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
3584     const VkPipelineDynamicStateCreateInfo*          pDynamicState;
3585     VkPipelineLayout                                 layout;
3586     VkRenderPass                                     renderPass;
3587     uint32_t                                         subpass;
3588     VkPipeline                                       basePipelineHandle;
3589     int32_t                                          basePipelineIndex;
3590 } VkGraphicsPipelineCreateInfo;
3591 
3592 typedef struct VkPushConstantRange {
3593     VkShaderStageFlags    stageFlags;
3594     uint32_t              offset;
3595     uint32_t              size;
3596 } VkPushConstantRange;
3597 
3598 typedef struct VkPipelineLayoutCreateInfo {
3599     VkStructureType                 sType;
3600     const void*                     pNext;
3601     VkPipelineLayoutCreateFlags     flags;
3602     uint32_t                        setLayoutCount;
3603     const VkDescriptorSetLayout*    pSetLayouts;
3604     uint32_t                        pushConstantRangeCount;
3605     const VkPushConstantRange*      pPushConstantRanges;
3606 } VkPipelineLayoutCreateInfo;
3607 
3608 typedef struct VkSamplerCreateInfo {
3609     VkStructureType         sType;
3610     const void*             pNext;
3611     VkSamplerCreateFlags    flags;
3612     VkFilter                magFilter;
3613     VkFilter                minFilter;
3614     VkSamplerMipmapMode     mipmapMode;
3615     VkSamplerAddressMode    addressModeU;
3616     VkSamplerAddressMode    addressModeV;
3617     VkSamplerAddressMode    addressModeW;
3618     float                   mipLodBias;
3619     VkBool32                anisotropyEnable;
3620     float                   maxAnisotropy;
3621     VkBool32                compareEnable;
3622     VkCompareOp             compareOp;
3623     float                   minLod;
3624     float                   maxLod;
3625     VkBorderColor           borderColor;
3626     VkBool32                unnormalizedCoordinates;
3627 } VkSamplerCreateInfo;
3628 
3629 typedef struct VkCopyDescriptorSet {
3630     VkStructureType    sType;
3631     const void*        pNext;
3632     VkDescriptorSet    srcSet;
3633     uint32_t           srcBinding;
3634     uint32_t           srcArrayElement;
3635     VkDescriptorSet    dstSet;
3636     uint32_t           dstBinding;
3637     uint32_t           dstArrayElement;
3638     uint32_t           descriptorCount;
3639 } VkCopyDescriptorSet;
3640 
3641 typedef struct VkDescriptorBufferInfo {
3642     VkBuffer        buffer;
3643     VkDeviceSize    offset;
3644     VkDeviceSize    range;
3645 } VkDescriptorBufferInfo;
3646 
3647 typedef struct VkDescriptorImageInfo {
3648     VkSampler        sampler;
3649     VkImageView      imageView;
3650     VkImageLayout    imageLayout;
3651 } VkDescriptorImageInfo;
3652 
3653 typedef struct VkDescriptorPoolSize {
3654     VkDescriptorType    type;
3655     uint32_t            descriptorCount;
3656 } VkDescriptorPoolSize;
3657 
3658 typedef struct VkDescriptorPoolCreateInfo {
3659     VkStructureType                sType;
3660     const void*                    pNext;
3661     VkDescriptorPoolCreateFlags    flags;
3662     uint32_t                       maxSets;
3663     uint32_t                       poolSizeCount;
3664     const VkDescriptorPoolSize*    pPoolSizes;
3665 } VkDescriptorPoolCreateInfo;
3666 
3667 typedef struct VkDescriptorSetAllocateInfo {
3668     VkStructureType                 sType;
3669     const void*                     pNext;
3670     VkDescriptorPool                descriptorPool;
3671     uint32_t                        descriptorSetCount;
3672     const VkDescriptorSetLayout*    pSetLayouts;
3673 } VkDescriptorSetAllocateInfo;
3674 
3675 typedef struct VkDescriptorSetLayoutBinding {
3676     uint32_t              binding;
3677     VkDescriptorType      descriptorType;
3678     uint32_t              descriptorCount;
3679     VkShaderStageFlags    stageFlags;
3680     const VkSampler*      pImmutableSamplers;
3681 } VkDescriptorSetLayoutBinding;
3682 
3683 typedef struct VkDescriptorSetLayoutCreateInfo {
3684     VkStructureType                        sType;
3685     const void*                            pNext;
3686     VkDescriptorSetLayoutCreateFlags       flags;
3687     uint32_t                               bindingCount;
3688     const VkDescriptorSetLayoutBinding*    pBindings;
3689 } VkDescriptorSetLayoutCreateInfo;
3690 
3691 typedef struct VkWriteDescriptorSet {
3692     VkStructureType                  sType;
3693     const void*                      pNext;
3694     VkDescriptorSet                  dstSet;
3695     uint32_t                         dstBinding;
3696     uint32_t                         dstArrayElement;
3697     uint32_t                         descriptorCount;
3698     VkDescriptorType                 descriptorType;
3699     const VkDescriptorImageInfo*     pImageInfo;
3700     const VkDescriptorBufferInfo*    pBufferInfo;
3701     const VkBufferView*              pTexelBufferView;
3702 } VkWriteDescriptorSet;
3703 
3704 typedef struct VkAttachmentDescription {
3705     VkAttachmentDescriptionFlags    flags;
3706     VkFormat                        format;
3707     VkSampleCountFlagBits           samples;
3708     VkAttachmentLoadOp              loadOp;
3709     VkAttachmentStoreOp             storeOp;
3710     VkAttachmentLoadOp              stencilLoadOp;
3711     VkAttachmentStoreOp             stencilStoreOp;
3712     VkImageLayout                   initialLayout;
3713     VkImageLayout                   finalLayout;
3714 } VkAttachmentDescription;
3715 
3716 typedef struct VkAttachmentReference {
3717     uint32_t         attachment;
3718     VkImageLayout    layout;
3719 } VkAttachmentReference;
3720 
3721 typedef struct VkFramebufferCreateInfo {
3722     VkStructureType             sType;
3723     const void*                 pNext;
3724     VkFramebufferCreateFlags    flags;
3725     VkRenderPass                renderPass;
3726     uint32_t                    attachmentCount;
3727     const VkImageView*          pAttachments;
3728     uint32_t                    width;
3729     uint32_t                    height;
3730     uint32_t                    layers;
3731 } VkFramebufferCreateInfo;
3732 
3733 typedef struct VkSubpassDescription {
3734     VkSubpassDescriptionFlags       flags;
3735     VkPipelineBindPoint             pipelineBindPoint;
3736     uint32_t                        inputAttachmentCount;
3737     const VkAttachmentReference*    pInputAttachments;
3738     uint32_t                        colorAttachmentCount;
3739     const VkAttachmentReference*    pColorAttachments;
3740     const VkAttachmentReference*    pResolveAttachments;
3741     const VkAttachmentReference*    pDepthStencilAttachment;
3742     uint32_t                        preserveAttachmentCount;
3743     const uint32_t*                 pPreserveAttachments;
3744 } VkSubpassDescription;
3745 
3746 typedef struct VkSubpassDependency {
3747     uint32_t                srcSubpass;
3748     uint32_t                dstSubpass;
3749     VkPipelineStageFlags    srcStageMask;
3750     VkPipelineStageFlags    dstStageMask;
3751     VkAccessFlags           srcAccessMask;
3752     VkAccessFlags           dstAccessMask;
3753     VkDependencyFlags       dependencyFlags;
3754 } VkSubpassDependency;
3755 
3756 typedef struct VkRenderPassCreateInfo {
3757     VkStructureType                   sType;
3758     const void*                       pNext;
3759     VkRenderPassCreateFlags           flags;
3760     uint32_t                          attachmentCount;
3761     const VkAttachmentDescription*    pAttachments;
3762     uint32_t                          subpassCount;
3763     const VkSubpassDescription*       pSubpasses;
3764     uint32_t                          dependencyCount;
3765     const VkSubpassDependency*        pDependencies;
3766 } VkRenderPassCreateInfo;
3767 
3768 typedef struct VkCommandPoolCreateInfo {
3769     VkStructureType             sType;
3770     const void*                 pNext;
3771     VkCommandPoolCreateFlags    flags;
3772     uint32_t                    queueFamilyIndex;
3773 } VkCommandPoolCreateInfo;
3774 
3775 typedef struct VkCommandBufferAllocateInfo {
3776     VkStructureType         sType;
3777     const void*             pNext;
3778     VkCommandPool           commandPool;
3779     VkCommandBufferLevel    level;
3780     uint32_t                commandBufferCount;
3781 } VkCommandBufferAllocateInfo;
3782 
3783 typedef struct VkCommandBufferInheritanceInfo {
3784     VkStructureType                  sType;
3785     const void*                      pNext;
3786     VkRenderPass                     renderPass;
3787     uint32_t                         subpass;
3788     VkFramebuffer                    framebuffer;
3789     VkBool32                         occlusionQueryEnable;
3790     VkQueryControlFlags              queryFlags;
3791     VkQueryPipelineStatisticFlags    pipelineStatistics;
3792 } VkCommandBufferInheritanceInfo;
3793 
3794 typedef struct VkCommandBufferBeginInfo {
3795     VkStructureType                          sType;
3796     const void*                              pNext;
3797     VkCommandBufferUsageFlags                flags;
3798     const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
3799 } VkCommandBufferBeginInfo;
3800 
3801 typedef struct VkBufferCopy {
3802     VkDeviceSize    srcOffset;
3803     VkDeviceSize    dstOffset;
3804     VkDeviceSize    size;
3805 } VkBufferCopy;
3806 
3807 typedef struct VkImageSubresourceLayers {
3808     VkImageAspectFlags    aspectMask;
3809     uint32_t              mipLevel;
3810     uint32_t              baseArrayLayer;
3811     uint32_t              layerCount;
3812 } VkImageSubresourceLayers;
3813 
3814 typedef struct VkBufferImageCopy {
3815     VkDeviceSize                bufferOffset;
3816     uint32_t                    bufferRowLength;
3817     uint32_t                    bufferImageHeight;
3818     VkImageSubresourceLayers    imageSubresource;
3819     VkOffset3D                  imageOffset;
3820     VkExtent3D                  imageExtent;
3821 } VkBufferImageCopy;
3822 
3823 typedef union VkClearColorValue {
3824     float       float32[4];
3825     int32_t     int32[4];
3826     uint32_t    uint32[4];
3827 } VkClearColorValue;
3828 
3829 typedef struct VkClearDepthStencilValue {
3830     float       depth;
3831     uint32_t    stencil;
3832 } VkClearDepthStencilValue;
3833 
3834 typedef union VkClearValue {
3835     VkClearColorValue           color;
3836     VkClearDepthStencilValue    depthStencil;
3837 } VkClearValue;
3838 
3839 typedef struct VkClearAttachment {
3840     VkImageAspectFlags    aspectMask;
3841     uint32_t              colorAttachment;
3842     VkClearValue          clearValue;
3843 } VkClearAttachment;
3844 
3845 typedef struct VkClearRect {
3846     VkRect2D    rect;
3847     uint32_t    baseArrayLayer;
3848     uint32_t    layerCount;
3849 } VkClearRect;
3850 
3851 typedef struct VkImageBlit {
3852     VkImageSubresourceLayers    srcSubresource;
3853     VkOffset3D                  srcOffsets[2];
3854     VkImageSubresourceLayers    dstSubresource;
3855     VkOffset3D                  dstOffsets[2];
3856 } VkImageBlit;
3857 
3858 typedef struct VkImageCopy {
3859     VkImageSubresourceLayers    srcSubresource;
3860     VkOffset3D                  srcOffset;
3861     VkImageSubresourceLayers    dstSubresource;
3862     VkOffset3D                  dstOffset;
3863     VkExtent3D                  extent;
3864 } VkImageCopy;
3865 
3866 typedef struct VkImageResolve {
3867     VkImageSubresourceLayers    srcSubresource;
3868     VkOffset3D                  srcOffset;
3869     VkImageSubresourceLayers    dstSubresource;
3870     VkOffset3D                  dstOffset;
3871     VkExtent3D                  extent;
3872 } VkImageResolve;
3873 
3874 typedef struct VkRenderPassBeginInfo {
3875     VkStructureType        sType;
3876     const void*            pNext;
3877     VkRenderPass           renderPass;
3878     VkFramebuffer          framebuffer;
3879     VkRect2D               renderArea;
3880     uint32_t               clearValueCount;
3881     const VkClearValue*    pClearValues;
3882 } VkRenderPassBeginInfo;
3883 
3884 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
3885 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
3886 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
3887 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
3888 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
3889 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
3890 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
3891 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
3892 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
3893 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
3894 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
3895 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
3896 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
3897 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
3898 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
3899 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
3900 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
3901 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
3902 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
3903 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
3904 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
3905 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
3906 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
3907 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
3908 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
3909 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
3910 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
3911 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
3912 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
3913 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
3914 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
3915 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
3916 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
3917 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
3918 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
3919 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
3920 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
3921 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
3922 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
3923 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
3924 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
3925 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
3926 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
3927 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
3928 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
3929 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
3930 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
3931 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
3932 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
3933 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);
3934 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
3935 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
3936 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
3937 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
3938 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
3939 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
3940 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
3941 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
3942 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
3943 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
3944 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
3945 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
3946 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
3947 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
3948 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
3949 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
3950 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
3951 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
3952 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
3953 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
3954 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
3955 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
3956 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
3957 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
3958 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
3959 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
3960 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
3961 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
3962 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
3963 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
3964 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
3965 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
3966 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
3967 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
3968 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
3969 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
3970 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
3971 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
3972 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
3973 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
3974 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
3975 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
3976 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
3977 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
3978 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
3979 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
3980 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
3981 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
3982 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
3983 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
3984 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
3985 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
3986 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
3987 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);
3988 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
3989 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
3990 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
3991 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
3992 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
3993 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
3994 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
3995 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
3996 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
3997 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
3998 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
3999 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4000 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4001 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4002 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4003 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4004 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4005 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4006 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4007 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4008 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4009 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);
4010 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);
4011 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4012 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4013 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4014 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4015 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4016 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4017 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4018 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4019 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4020 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4021 
4022 #ifndef VK_NO_PROTOTYPES
4023 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4024     const VkInstanceCreateInfo*                 pCreateInfo,
4025     const VkAllocationCallbacks*                pAllocator,
4026     VkInstance*                                 pInstance);
4027 
4028 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4029     VkInstance                                  instance,
4030     const VkAllocationCallbacks*                pAllocator);
4031 
4032 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4033     VkInstance                                  instance,
4034     uint32_t*                                   pPhysicalDeviceCount,
4035     VkPhysicalDevice*                           pPhysicalDevices);
4036 
4037 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4038     VkPhysicalDevice                            physicalDevice,
4039     VkPhysicalDeviceFeatures*                   pFeatures);
4040 
4041 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4042     VkPhysicalDevice                            physicalDevice,
4043     VkFormat                                    format,
4044     VkFormatProperties*                         pFormatProperties);
4045 
4046 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4047     VkPhysicalDevice                            physicalDevice,
4048     VkFormat                                    format,
4049     VkImageType                                 type,
4050     VkImageTiling                               tiling,
4051     VkImageUsageFlags                           usage,
4052     VkImageCreateFlags                          flags,
4053     VkImageFormatProperties*                    pImageFormatProperties);
4054 
4055 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4056     VkPhysicalDevice                            physicalDevice,
4057     VkPhysicalDeviceProperties*                 pProperties);
4058 
4059 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4060     VkPhysicalDevice                            physicalDevice,
4061     uint32_t*                                   pQueueFamilyPropertyCount,
4062     VkQueueFamilyProperties*                    pQueueFamilyProperties);
4063 
4064 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4065     VkPhysicalDevice                            physicalDevice,
4066     VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
4067 
4068 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4069     VkInstance                                  instance,
4070     const char*                                 pName);
4071 
4072 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4073     VkDevice                                    device,
4074     const char*                                 pName);
4075 
4076 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4077     VkPhysicalDevice                            physicalDevice,
4078     const VkDeviceCreateInfo*                   pCreateInfo,
4079     const VkAllocationCallbacks*                pAllocator,
4080     VkDevice*                                   pDevice);
4081 
4082 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4083     VkDevice                                    device,
4084     const VkAllocationCallbacks*                pAllocator);
4085 
4086 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4087     const char*                                 pLayerName,
4088     uint32_t*                                   pPropertyCount,
4089     VkExtensionProperties*                      pProperties);
4090 
4091 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4092     VkPhysicalDevice                            physicalDevice,
4093     const char*                                 pLayerName,
4094     uint32_t*                                   pPropertyCount,
4095     VkExtensionProperties*                      pProperties);
4096 
4097 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4098     uint32_t*                                   pPropertyCount,
4099     VkLayerProperties*                          pProperties);
4100 
4101 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4102     VkPhysicalDevice                            physicalDevice,
4103     uint32_t*                                   pPropertyCount,
4104     VkLayerProperties*                          pProperties);
4105 
4106 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4107     VkDevice                                    device,
4108     uint32_t                                    queueFamilyIndex,
4109     uint32_t                                    queueIndex,
4110     VkQueue*                                    pQueue);
4111 
4112 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4113     VkQueue                                     queue,
4114     uint32_t                                    submitCount,
4115     const VkSubmitInfo*                         pSubmits,
4116     VkFence                                     fence);
4117 
4118 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4119     VkQueue                                     queue);
4120 
4121 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4122     VkDevice                                    device);
4123 
4124 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4125     VkDevice                                    device,
4126     const VkMemoryAllocateInfo*                 pAllocateInfo,
4127     const VkAllocationCallbacks*                pAllocator,
4128     VkDeviceMemory*                             pMemory);
4129 
4130 VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4131     VkDevice                                    device,
4132     VkDeviceMemory                              memory,
4133     const VkAllocationCallbacks*                pAllocator);
4134 
4135 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4136     VkDevice                                    device,
4137     VkDeviceMemory                              memory,
4138     VkDeviceSize                                offset,
4139     VkDeviceSize                                size,
4140     VkMemoryMapFlags                            flags,
4141     void**                                      ppData);
4142 
4143 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4144     VkDevice                                    device,
4145     VkDeviceMemory                              memory);
4146 
4147 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4148     VkDevice                                    device,
4149     uint32_t                                    memoryRangeCount,
4150     const VkMappedMemoryRange*                  pMemoryRanges);
4151 
4152 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4153     VkDevice                                    device,
4154     uint32_t                                    memoryRangeCount,
4155     const VkMappedMemoryRange*                  pMemoryRanges);
4156 
4157 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4158     VkDevice                                    device,
4159     VkDeviceMemory                              memory,
4160     VkDeviceSize*                               pCommittedMemoryInBytes);
4161 
4162 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4163     VkDevice                                    device,
4164     VkBuffer                                    buffer,
4165     VkDeviceMemory                              memory,
4166     VkDeviceSize                                memoryOffset);
4167 
4168 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4169     VkDevice                                    device,
4170     VkImage                                     image,
4171     VkDeviceMemory                              memory,
4172     VkDeviceSize                                memoryOffset);
4173 
4174 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
4175     VkDevice                                    device,
4176     VkBuffer                                    buffer,
4177     VkMemoryRequirements*                       pMemoryRequirements);
4178 
4179 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
4180     VkDevice                                    device,
4181     VkImage                                     image,
4182     VkMemoryRequirements*                       pMemoryRequirements);
4183 
4184 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
4185     VkDevice                                    device,
4186     VkImage                                     image,
4187     uint32_t*                                   pSparseMemoryRequirementCount,
4188     VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
4189 
4190 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
4191     VkPhysicalDevice                            physicalDevice,
4192     VkFormat                                    format,
4193     VkImageType                                 type,
4194     VkSampleCountFlagBits                       samples,
4195     VkImageUsageFlags                           usage,
4196     VkImageTiling                               tiling,
4197     uint32_t*                                   pPropertyCount,
4198     VkSparseImageFormatProperties*              pProperties);
4199 
4200 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
4201     VkQueue                                     queue,
4202     uint32_t                                    bindInfoCount,
4203     const VkBindSparseInfo*                     pBindInfo,
4204     VkFence                                     fence);
4205 
4206 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
4207     VkDevice                                    device,
4208     const VkFenceCreateInfo*                    pCreateInfo,
4209     const VkAllocationCallbacks*                pAllocator,
4210     VkFence*                                    pFence);
4211 
4212 VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
4213     VkDevice                                    device,
4214     VkFence                                     fence,
4215     const VkAllocationCallbacks*                pAllocator);
4216 
4217 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
4218     VkDevice                                    device,
4219     uint32_t                                    fenceCount,
4220     const VkFence*                              pFences);
4221 
4222 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
4223     VkDevice                                    device,
4224     VkFence                                     fence);
4225 
4226 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
4227     VkDevice                                    device,
4228     uint32_t                                    fenceCount,
4229     const VkFence*                              pFences,
4230     VkBool32                                    waitAll,
4231     uint64_t                                    timeout);
4232 
4233 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
4234     VkDevice                                    device,
4235     const VkSemaphoreCreateInfo*                pCreateInfo,
4236     const VkAllocationCallbacks*                pAllocator,
4237     VkSemaphore*                                pSemaphore);
4238 
4239 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
4240     VkDevice                                    device,
4241     VkSemaphore                                 semaphore,
4242     const VkAllocationCallbacks*                pAllocator);
4243 
4244 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
4245     VkDevice                                    device,
4246     const VkEventCreateInfo*                    pCreateInfo,
4247     const VkAllocationCallbacks*                pAllocator,
4248     VkEvent*                                    pEvent);
4249 
4250 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
4251     VkDevice                                    device,
4252     VkEvent                                     event,
4253     const VkAllocationCallbacks*                pAllocator);
4254 
4255 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
4256     VkDevice                                    device,
4257     VkEvent                                     event);
4258 
4259 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
4260     VkDevice                                    device,
4261     VkEvent                                     event);
4262 
4263 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
4264     VkDevice                                    device,
4265     VkEvent                                     event);
4266 
4267 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
4268     VkDevice                                    device,
4269     const VkQueryPoolCreateInfo*                pCreateInfo,
4270     const VkAllocationCallbacks*                pAllocator,
4271     VkQueryPool*                                pQueryPool);
4272 
4273 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
4274     VkDevice                                    device,
4275     VkQueryPool                                 queryPool,
4276     const VkAllocationCallbacks*                pAllocator);
4277 
4278 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
4279     VkDevice                                    device,
4280     VkQueryPool                                 queryPool,
4281     uint32_t                                    firstQuery,
4282     uint32_t                                    queryCount,
4283     size_t                                      dataSize,
4284     void*                                       pData,
4285     VkDeviceSize                                stride,
4286     VkQueryResultFlags                          flags);
4287 
4288 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
4289     VkDevice                                    device,
4290     const VkBufferCreateInfo*                   pCreateInfo,
4291     const VkAllocationCallbacks*                pAllocator,
4292     VkBuffer*                                   pBuffer);
4293 
4294 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
4295     VkDevice                                    device,
4296     VkBuffer                                    buffer,
4297     const VkAllocationCallbacks*                pAllocator);
4298 
4299 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
4300     VkDevice                                    device,
4301     const VkBufferViewCreateInfo*               pCreateInfo,
4302     const VkAllocationCallbacks*                pAllocator,
4303     VkBufferView*                               pView);
4304 
4305 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
4306     VkDevice                                    device,
4307     VkBufferView                                bufferView,
4308     const VkAllocationCallbacks*                pAllocator);
4309 
4310 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
4311     VkDevice                                    device,
4312     const VkImageCreateInfo*                    pCreateInfo,
4313     const VkAllocationCallbacks*                pAllocator,
4314     VkImage*                                    pImage);
4315 
4316 VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
4317     VkDevice                                    device,
4318     VkImage                                     image,
4319     const VkAllocationCallbacks*                pAllocator);
4320 
4321 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
4322     VkDevice                                    device,
4323     VkImage                                     image,
4324     const VkImageSubresource*                   pSubresource,
4325     VkSubresourceLayout*                        pLayout);
4326 
4327 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
4328     VkDevice                                    device,
4329     const VkImageViewCreateInfo*                pCreateInfo,
4330     const VkAllocationCallbacks*                pAllocator,
4331     VkImageView*                                pView);
4332 
4333 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
4334     VkDevice                                    device,
4335     VkImageView                                 imageView,
4336     const VkAllocationCallbacks*                pAllocator);
4337 
4338 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
4339     VkDevice                                    device,
4340     const VkShaderModuleCreateInfo*             pCreateInfo,
4341     const VkAllocationCallbacks*                pAllocator,
4342     VkShaderModule*                             pShaderModule);
4343 
4344 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
4345     VkDevice                                    device,
4346     VkShaderModule                              shaderModule,
4347     const VkAllocationCallbacks*                pAllocator);
4348 
4349 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
4350     VkDevice                                    device,
4351     const VkPipelineCacheCreateInfo*            pCreateInfo,
4352     const VkAllocationCallbacks*                pAllocator,
4353     VkPipelineCache*                            pPipelineCache);
4354 
4355 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
4356     VkDevice                                    device,
4357     VkPipelineCache                             pipelineCache,
4358     const VkAllocationCallbacks*                pAllocator);
4359 
4360 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
4361     VkDevice                                    device,
4362     VkPipelineCache                             pipelineCache,
4363     size_t*                                     pDataSize,
4364     void*                                       pData);
4365 
4366 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
4367     VkDevice                                    device,
4368     VkPipelineCache                             dstCache,
4369     uint32_t                                    srcCacheCount,
4370     const VkPipelineCache*                      pSrcCaches);
4371 
4372 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
4373     VkDevice                                    device,
4374     VkPipelineCache                             pipelineCache,
4375     uint32_t                                    createInfoCount,
4376     const VkGraphicsPipelineCreateInfo*         pCreateInfos,
4377     const VkAllocationCallbacks*                pAllocator,
4378     VkPipeline*                                 pPipelines);
4379 
4380 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
4381     VkDevice                                    device,
4382     VkPipelineCache                             pipelineCache,
4383     uint32_t                                    createInfoCount,
4384     const VkComputePipelineCreateInfo*          pCreateInfos,
4385     const VkAllocationCallbacks*                pAllocator,
4386     VkPipeline*                                 pPipelines);
4387 
4388 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
4389     VkDevice                                    device,
4390     VkPipeline                                  pipeline,
4391     const VkAllocationCallbacks*                pAllocator);
4392 
4393 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
4394     VkDevice                                    device,
4395     const VkPipelineLayoutCreateInfo*           pCreateInfo,
4396     const VkAllocationCallbacks*                pAllocator,
4397     VkPipelineLayout*                           pPipelineLayout);
4398 
4399 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
4400     VkDevice                                    device,
4401     VkPipelineLayout                            pipelineLayout,
4402     const VkAllocationCallbacks*                pAllocator);
4403 
4404 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
4405     VkDevice                                    device,
4406     const VkSamplerCreateInfo*                  pCreateInfo,
4407     const VkAllocationCallbacks*                pAllocator,
4408     VkSampler*                                  pSampler);
4409 
4410 VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
4411     VkDevice                                    device,
4412     VkSampler                                   sampler,
4413     const VkAllocationCallbacks*                pAllocator);
4414 
4415 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
4416     VkDevice                                    device,
4417     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
4418     const VkAllocationCallbacks*                pAllocator,
4419     VkDescriptorSetLayout*                      pSetLayout);
4420 
4421 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
4422     VkDevice                                    device,
4423     VkDescriptorSetLayout                       descriptorSetLayout,
4424     const VkAllocationCallbacks*                pAllocator);
4425 
4426 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
4427     VkDevice                                    device,
4428     const VkDescriptorPoolCreateInfo*           pCreateInfo,
4429     const VkAllocationCallbacks*                pAllocator,
4430     VkDescriptorPool*                           pDescriptorPool);
4431 
4432 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
4433     VkDevice                                    device,
4434     VkDescriptorPool                            descriptorPool,
4435     const VkAllocationCallbacks*                pAllocator);
4436 
4437 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
4438     VkDevice                                    device,
4439     VkDescriptorPool                            descriptorPool,
4440     VkDescriptorPoolResetFlags                  flags);
4441 
4442 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
4443     VkDevice                                    device,
4444     const VkDescriptorSetAllocateInfo*          pAllocateInfo,
4445     VkDescriptorSet*                            pDescriptorSets);
4446 
4447 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
4448     VkDevice                                    device,
4449     VkDescriptorPool                            descriptorPool,
4450     uint32_t                                    descriptorSetCount,
4451     const VkDescriptorSet*                      pDescriptorSets);
4452 
4453 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
4454     VkDevice                                    device,
4455     uint32_t                                    descriptorWriteCount,
4456     const VkWriteDescriptorSet*                 pDescriptorWrites,
4457     uint32_t                                    descriptorCopyCount,
4458     const VkCopyDescriptorSet*                  pDescriptorCopies);
4459 
4460 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
4461     VkDevice                                    device,
4462     const VkFramebufferCreateInfo*              pCreateInfo,
4463     const VkAllocationCallbacks*                pAllocator,
4464     VkFramebuffer*                              pFramebuffer);
4465 
4466 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
4467     VkDevice                                    device,
4468     VkFramebuffer                               framebuffer,
4469     const VkAllocationCallbacks*                pAllocator);
4470 
4471 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
4472     VkDevice                                    device,
4473     const VkRenderPassCreateInfo*               pCreateInfo,
4474     const VkAllocationCallbacks*                pAllocator,
4475     VkRenderPass*                               pRenderPass);
4476 
4477 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
4478     VkDevice                                    device,
4479     VkRenderPass                                renderPass,
4480     const VkAllocationCallbacks*                pAllocator);
4481 
4482 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
4483     VkDevice                                    device,
4484     VkRenderPass                                renderPass,
4485     VkExtent2D*                                 pGranularity);
4486 
4487 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
4488     VkDevice                                    device,
4489     const VkCommandPoolCreateInfo*              pCreateInfo,
4490     const VkAllocationCallbacks*                pAllocator,
4491     VkCommandPool*                              pCommandPool);
4492 
4493 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
4494     VkDevice                                    device,
4495     VkCommandPool                               commandPool,
4496     const VkAllocationCallbacks*                pAllocator);
4497 
4498 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
4499     VkDevice                                    device,
4500     VkCommandPool                               commandPool,
4501     VkCommandPoolResetFlags                     flags);
4502 
4503 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
4504     VkDevice                                    device,
4505     const VkCommandBufferAllocateInfo*          pAllocateInfo,
4506     VkCommandBuffer*                            pCommandBuffers);
4507 
4508 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
4509     VkDevice                                    device,
4510     VkCommandPool                               commandPool,
4511     uint32_t                                    commandBufferCount,
4512     const VkCommandBuffer*                      pCommandBuffers);
4513 
4514 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
4515     VkCommandBuffer                             commandBuffer,
4516     const VkCommandBufferBeginInfo*             pBeginInfo);
4517 
4518 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
4519     VkCommandBuffer                             commandBuffer);
4520 
4521 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
4522     VkCommandBuffer                             commandBuffer,
4523     VkCommandBufferResetFlags                   flags);
4524 
4525 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
4526     VkCommandBuffer                             commandBuffer,
4527     VkPipelineBindPoint                         pipelineBindPoint,
4528     VkPipeline                                  pipeline);
4529 
4530 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
4531     VkCommandBuffer                             commandBuffer,
4532     uint32_t                                    firstViewport,
4533     uint32_t                                    viewportCount,
4534     const VkViewport*                           pViewports);
4535 
4536 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
4537     VkCommandBuffer                             commandBuffer,
4538     uint32_t                                    firstScissor,
4539     uint32_t                                    scissorCount,
4540     const VkRect2D*                             pScissors);
4541 
4542 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
4543     VkCommandBuffer                             commandBuffer,
4544     float                                       lineWidth);
4545 
4546 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
4547     VkCommandBuffer                             commandBuffer,
4548     float                                       depthBiasConstantFactor,
4549     float                                       depthBiasClamp,
4550     float                                       depthBiasSlopeFactor);
4551 
4552 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
4553     VkCommandBuffer                             commandBuffer,
4554     const float                                 blendConstants[4]);
4555 
4556 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
4557     VkCommandBuffer                             commandBuffer,
4558     float                                       minDepthBounds,
4559     float                                       maxDepthBounds);
4560 
4561 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
4562     VkCommandBuffer                             commandBuffer,
4563     VkStencilFaceFlags                          faceMask,
4564     uint32_t                                    compareMask);
4565 
4566 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
4567     VkCommandBuffer                             commandBuffer,
4568     VkStencilFaceFlags                          faceMask,
4569     uint32_t                                    writeMask);
4570 
4571 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
4572     VkCommandBuffer                             commandBuffer,
4573     VkStencilFaceFlags                          faceMask,
4574     uint32_t                                    reference);
4575 
4576 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
4577     VkCommandBuffer                             commandBuffer,
4578     VkPipelineBindPoint                         pipelineBindPoint,
4579     VkPipelineLayout                            layout,
4580     uint32_t                                    firstSet,
4581     uint32_t                                    descriptorSetCount,
4582     const VkDescriptorSet*                      pDescriptorSets,
4583     uint32_t                                    dynamicOffsetCount,
4584     const uint32_t*                             pDynamicOffsets);
4585 
4586 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
4587     VkCommandBuffer                             commandBuffer,
4588     VkBuffer                                    buffer,
4589     VkDeviceSize                                offset,
4590     VkIndexType                                 indexType);
4591 
4592 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
4593     VkCommandBuffer                             commandBuffer,
4594     uint32_t                                    firstBinding,
4595     uint32_t                                    bindingCount,
4596     const VkBuffer*                             pBuffers,
4597     const VkDeviceSize*                         pOffsets);
4598 
4599 VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
4600     VkCommandBuffer                             commandBuffer,
4601     uint32_t                                    vertexCount,
4602     uint32_t                                    instanceCount,
4603     uint32_t                                    firstVertex,
4604     uint32_t                                    firstInstance);
4605 
4606 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
4607     VkCommandBuffer                             commandBuffer,
4608     uint32_t                                    indexCount,
4609     uint32_t                                    instanceCount,
4610     uint32_t                                    firstIndex,
4611     int32_t                                     vertexOffset,
4612     uint32_t                                    firstInstance);
4613 
4614 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
4615     VkCommandBuffer                             commandBuffer,
4616     VkBuffer                                    buffer,
4617     VkDeviceSize                                offset,
4618     uint32_t                                    drawCount,
4619     uint32_t                                    stride);
4620 
4621 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
4622     VkCommandBuffer                             commandBuffer,
4623     VkBuffer                                    buffer,
4624     VkDeviceSize                                offset,
4625     uint32_t                                    drawCount,
4626     uint32_t                                    stride);
4627 
4628 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
4629     VkCommandBuffer                             commandBuffer,
4630     uint32_t                                    groupCountX,
4631     uint32_t                                    groupCountY,
4632     uint32_t                                    groupCountZ);
4633 
4634 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
4635     VkCommandBuffer                             commandBuffer,
4636     VkBuffer                                    buffer,
4637     VkDeviceSize                                offset);
4638 
4639 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
4640     VkCommandBuffer                             commandBuffer,
4641     VkBuffer                                    srcBuffer,
4642     VkBuffer                                    dstBuffer,
4643     uint32_t                                    regionCount,
4644     const VkBufferCopy*                         pRegions);
4645 
4646 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
4647     VkCommandBuffer                             commandBuffer,
4648     VkImage                                     srcImage,
4649     VkImageLayout                               srcImageLayout,
4650     VkImage                                     dstImage,
4651     VkImageLayout                               dstImageLayout,
4652     uint32_t                                    regionCount,
4653     const VkImageCopy*                          pRegions);
4654 
4655 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
4656     VkCommandBuffer                             commandBuffer,
4657     VkImage                                     srcImage,
4658     VkImageLayout                               srcImageLayout,
4659     VkImage                                     dstImage,
4660     VkImageLayout                               dstImageLayout,
4661     uint32_t                                    regionCount,
4662     const VkImageBlit*                          pRegions,
4663     VkFilter                                    filter);
4664 
4665 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
4666     VkCommandBuffer                             commandBuffer,
4667     VkBuffer                                    srcBuffer,
4668     VkImage                                     dstImage,
4669     VkImageLayout                               dstImageLayout,
4670     uint32_t                                    regionCount,
4671     const VkBufferImageCopy*                    pRegions);
4672 
4673 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
4674     VkCommandBuffer                             commandBuffer,
4675     VkImage                                     srcImage,
4676     VkImageLayout                               srcImageLayout,
4677     VkBuffer                                    dstBuffer,
4678     uint32_t                                    regionCount,
4679     const VkBufferImageCopy*                    pRegions);
4680 
4681 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
4682     VkCommandBuffer                             commandBuffer,
4683     VkBuffer                                    dstBuffer,
4684     VkDeviceSize                                dstOffset,
4685     VkDeviceSize                                dataSize,
4686     const void*                                 pData);
4687 
4688 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
4689     VkCommandBuffer                             commandBuffer,
4690     VkBuffer                                    dstBuffer,
4691     VkDeviceSize                                dstOffset,
4692     VkDeviceSize                                size,
4693     uint32_t                                    data);
4694 
4695 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
4696     VkCommandBuffer                             commandBuffer,
4697     VkImage                                     image,
4698     VkImageLayout                               imageLayout,
4699     const VkClearColorValue*                    pColor,
4700     uint32_t                                    rangeCount,
4701     const VkImageSubresourceRange*              pRanges);
4702 
4703 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
4704     VkCommandBuffer                             commandBuffer,
4705     VkImage                                     image,
4706     VkImageLayout                               imageLayout,
4707     const VkClearDepthStencilValue*             pDepthStencil,
4708     uint32_t                                    rangeCount,
4709     const VkImageSubresourceRange*              pRanges);
4710 
4711 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
4712     VkCommandBuffer                             commandBuffer,
4713     uint32_t                                    attachmentCount,
4714     const VkClearAttachment*                    pAttachments,
4715     uint32_t                                    rectCount,
4716     const VkClearRect*                          pRects);
4717 
4718 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
4719     VkCommandBuffer                             commandBuffer,
4720     VkImage                                     srcImage,
4721     VkImageLayout                               srcImageLayout,
4722     VkImage                                     dstImage,
4723     VkImageLayout                               dstImageLayout,
4724     uint32_t                                    regionCount,
4725     const VkImageResolve*                       pRegions);
4726 
4727 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
4728     VkCommandBuffer                             commandBuffer,
4729     VkEvent                                     event,
4730     VkPipelineStageFlags                        stageMask);
4731 
4732 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
4733     VkCommandBuffer                             commandBuffer,
4734     VkEvent                                     event,
4735     VkPipelineStageFlags                        stageMask);
4736 
4737 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
4738     VkCommandBuffer                             commandBuffer,
4739     uint32_t                                    eventCount,
4740     const VkEvent*                              pEvents,
4741     VkPipelineStageFlags                        srcStageMask,
4742     VkPipelineStageFlags                        dstStageMask,
4743     uint32_t                                    memoryBarrierCount,
4744     const VkMemoryBarrier*                      pMemoryBarriers,
4745     uint32_t                                    bufferMemoryBarrierCount,
4746     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
4747     uint32_t                                    imageMemoryBarrierCount,
4748     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
4749 
4750 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
4751     VkCommandBuffer                             commandBuffer,
4752     VkPipelineStageFlags                        srcStageMask,
4753     VkPipelineStageFlags                        dstStageMask,
4754     VkDependencyFlags                           dependencyFlags,
4755     uint32_t                                    memoryBarrierCount,
4756     const VkMemoryBarrier*                      pMemoryBarriers,
4757     uint32_t                                    bufferMemoryBarrierCount,
4758     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
4759     uint32_t                                    imageMemoryBarrierCount,
4760     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
4761 
4762 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
4763     VkCommandBuffer                             commandBuffer,
4764     VkQueryPool                                 queryPool,
4765     uint32_t                                    query,
4766     VkQueryControlFlags                         flags);
4767 
4768 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
4769     VkCommandBuffer                             commandBuffer,
4770     VkQueryPool                                 queryPool,
4771     uint32_t                                    query);
4772 
4773 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
4774     VkCommandBuffer                             commandBuffer,
4775     VkQueryPool                                 queryPool,
4776     uint32_t                                    firstQuery,
4777     uint32_t                                    queryCount);
4778 
4779 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
4780     VkCommandBuffer                             commandBuffer,
4781     VkPipelineStageFlagBits                     pipelineStage,
4782     VkQueryPool                                 queryPool,
4783     uint32_t                                    query);
4784 
4785 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
4786     VkCommandBuffer                             commandBuffer,
4787     VkQueryPool                                 queryPool,
4788     uint32_t                                    firstQuery,
4789     uint32_t                                    queryCount,
4790     VkBuffer                                    dstBuffer,
4791     VkDeviceSize                                dstOffset,
4792     VkDeviceSize                                stride,
4793     VkQueryResultFlags                          flags);
4794 
4795 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
4796     VkCommandBuffer                             commandBuffer,
4797     VkPipelineLayout                            layout,
4798     VkShaderStageFlags                          stageFlags,
4799     uint32_t                                    offset,
4800     uint32_t                                    size,
4801     const void*                                 pValues);
4802 
4803 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
4804     VkCommandBuffer                             commandBuffer,
4805     const VkRenderPassBeginInfo*                pRenderPassBegin,
4806     VkSubpassContents                           contents);
4807 
4808 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
4809     VkCommandBuffer                             commandBuffer,
4810     VkSubpassContents                           contents);
4811 
4812 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
4813     VkCommandBuffer                             commandBuffer);
4814 
4815 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
4816     VkCommandBuffer                             commandBuffer,
4817     uint32_t                                    commandBufferCount,
4818     const VkCommandBuffer*                      pCommandBuffers);
4819 #endif
4820 
4821 
4822 #define VK_VERSION_1_1 1
4823 // Vulkan 1.1 version number
4824 #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
4825 
4826 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
4827 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
4828 #define VK_MAX_DEVICE_GROUP_SIZE          32U
4829 #define VK_LUID_SIZE                      8U
4830 #define VK_QUEUE_FAMILY_EXTERNAL          (~1U)
4831 
4832 typedef enum VkPointClippingBehavior {
4833     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
4834     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
4835     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
4836     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
4837     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
4838 } VkPointClippingBehavior;
4839 
4840 typedef enum VkTessellationDomainOrigin {
4841     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
4842     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
4843     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
4844     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
4845     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
4846 } VkTessellationDomainOrigin;
4847 
4848 typedef enum VkSamplerYcbcrModelConversion {
4849     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
4850     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
4851     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
4852     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
4853     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
4854     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
4855     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
4856     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
4857     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
4858     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
4859     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
4860 } VkSamplerYcbcrModelConversion;
4861 
4862 typedef enum VkSamplerYcbcrRange {
4863     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
4864     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
4865     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
4866     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
4867     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
4868 } VkSamplerYcbcrRange;
4869 
4870 typedef enum VkChromaLocation {
4871     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
4872     VK_CHROMA_LOCATION_MIDPOINT = 1,
4873     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
4874     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
4875     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
4876 } VkChromaLocation;
4877 
4878 typedef enum VkDescriptorUpdateTemplateType {
4879     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
4880     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
4881     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4882     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
4883 } VkDescriptorUpdateTemplateType;
4884 
4885 typedef enum VkSubgroupFeatureFlagBits {
4886     VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
4887     VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
4888     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
4889     VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
4890     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
4891     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
4892     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
4893     VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
4894     VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
4895     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4896 } VkSubgroupFeatureFlagBits;
4897 typedef VkFlags VkSubgroupFeatureFlags;
4898 
4899 typedef enum VkPeerMemoryFeatureFlagBits {
4900     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
4901     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
4902     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
4903     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
4904     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
4905     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
4906     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
4907     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
4908     VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4909 } VkPeerMemoryFeatureFlagBits;
4910 typedef VkFlags VkPeerMemoryFeatureFlags;
4911 
4912 typedef enum VkMemoryAllocateFlagBits {
4913     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
4914     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
4915     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
4916     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
4917     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
4918     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
4919     VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4920 } VkMemoryAllocateFlagBits;
4921 typedef VkFlags VkMemoryAllocateFlags;
4922 typedef VkFlags VkCommandPoolTrimFlags;
4923 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
4924 
4925 typedef enum VkExternalMemoryHandleTypeFlagBits {
4926     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
4927     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
4928     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
4929     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
4930     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
4931     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
4932     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
4933     VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
4934     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
4935     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
4936     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
4937     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
4938     VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
4939     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OHOS_NATIVE_BUFFER_BIT_OHOS = 0x00002000,
4940     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
4941     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4942     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4943     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
4944     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
4945     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
4946     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
4947     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4948 } VkExternalMemoryHandleTypeFlagBits;
4949 typedef VkFlags VkExternalMemoryHandleTypeFlags;
4950 
4951 typedef enum VkExternalMemoryFeatureFlagBits {
4952     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
4953     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
4954     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
4955     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
4956     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
4957     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
4958     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4959 } VkExternalMemoryFeatureFlagBits;
4960 typedef VkFlags VkExternalMemoryFeatureFlags;
4961 
4962 typedef enum VkExternalFenceHandleTypeFlagBits {
4963     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
4964     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
4965     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
4966     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
4967     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
4968     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4969     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4970     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
4971     VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4972 } VkExternalFenceHandleTypeFlagBits;
4973 typedef VkFlags VkExternalFenceHandleTypeFlags;
4974 
4975 typedef enum VkExternalFenceFeatureFlagBits {
4976     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
4977     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
4978     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
4979     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
4980     VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4981 } VkExternalFenceFeatureFlagBits;
4982 typedef VkFlags VkExternalFenceFeatureFlags;
4983 
4984 typedef enum VkFenceImportFlagBits {
4985     VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
4986     VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
4987     VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4988 } VkFenceImportFlagBits;
4989 typedef VkFlags VkFenceImportFlags;
4990 
4991 typedef enum VkSemaphoreImportFlagBits {
4992     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
4993     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
4994     VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4995 } VkSemaphoreImportFlagBits;
4996 typedef VkFlags VkSemaphoreImportFlags;
4997 
4998 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
4999     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5000     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5001     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5002     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5003     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5004     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5005     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5006     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5007     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5008     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5009     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5010     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5011     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5012 } VkExternalSemaphoreHandleTypeFlagBits;
5013 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5014 
5015 typedef enum VkExternalSemaphoreFeatureFlagBits {
5016     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5017     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5018     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5019     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5020     VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5021 } VkExternalSemaphoreFeatureFlagBits;
5022 typedef VkFlags VkExternalSemaphoreFeatureFlags;
5023 typedef struct VkPhysicalDeviceSubgroupProperties {
5024     VkStructureType           sType;
5025     void*                     pNext;
5026     uint32_t                  subgroupSize;
5027     VkShaderStageFlags        supportedStages;
5028     VkSubgroupFeatureFlags    supportedOperations;
5029     VkBool32                  quadOperationsInAllStages;
5030 } VkPhysicalDeviceSubgroupProperties;
5031 
5032 typedef struct VkBindBufferMemoryInfo {
5033     VkStructureType    sType;
5034     const void*        pNext;
5035     VkBuffer           buffer;
5036     VkDeviceMemory     memory;
5037     VkDeviceSize       memoryOffset;
5038 } VkBindBufferMemoryInfo;
5039 
5040 typedef struct VkBindImageMemoryInfo {
5041     VkStructureType    sType;
5042     const void*        pNext;
5043     VkImage            image;
5044     VkDeviceMemory     memory;
5045     VkDeviceSize       memoryOffset;
5046 } VkBindImageMemoryInfo;
5047 
5048 typedef struct VkPhysicalDevice16BitStorageFeatures {
5049     VkStructureType    sType;
5050     void*              pNext;
5051     VkBool32           storageBuffer16BitAccess;
5052     VkBool32           uniformAndStorageBuffer16BitAccess;
5053     VkBool32           storagePushConstant16;
5054     VkBool32           storageInputOutput16;
5055 } VkPhysicalDevice16BitStorageFeatures;
5056 
5057 typedef struct VkMemoryDedicatedRequirements {
5058     VkStructureType    sType;
5059     void*              pNext;
5060     VkBool32           prefersDedicatedAllocation;
5061     VkBool32           requiresDedicatedAllocation;
5062 } VkMemoryDedicatedRequirements;
5063 
5064 typedef struct VkMemoryDedicatedAllocateInfo {
5065     VkStructureType    sType;
5066     const void*        pNext;
5067     VkImage            image;
5068     VkBuffer           buffer;
5069 } VkMemoryDedicatedAllocateInfo;
5070 
5071 typedef struct VkMemoryAllocateFlagsInfo {
5072     VkStructureType          sType;
5073     const void*              pNext;
5074     VkMemoryAllocateFlags    flags;
5075     uint32_t                 deviceMask;
5076 } VkMemoryAllocateFlagsInfo;
5077 
5078 typedef struct VkDeviceGroupRenderPassBeginInfo {
5079     VkStructureType    sType;
5080     const void*        pNext;
5081     uint32_t           deviceMask;
5082     uint32_t           deviceRenderAreaCount;
5083     const VkRect2D*    pDeviceRenderAreas;
5084 } VkDeviceGroupRenderPassBeginInfo;
5085 
5086 typedef struct VkDeviceGroupCommandBufferBeginInfo {
5087     VkStructureType    sType;
5088     const void*        pNext;
5089     uint32_t           deviceMask;
5090 } VkDeviceGroupCommandBufferBeginInfo;
5091 
5092 typedef struct VkDeviceGroupSubmitInfo {
5093     VkStructureType    sType;
5094     const void*        pNext;
5095     uint32_t           waitSemaphoreCount;
5096     const uint32_t*    pWaitSemaphoreDeviceIndices;
5097     uint32_t           commandBufferCount;
5098     const uint32_t*    pCommandBufferDeviceMasks;
5099     uint32_t           signalSemaphoreCount;
5100     const uint32_t*    pSignalSemaphoreDeviceIndices;
5101 } VkDeviceGroupSubmitInfo;
5102 
5103 typedef struct VkDeviceGroupBindSparseInfo {
5104     VkStructureType    sType;
5105     const void*        pNext;
5106     uint32_t           resourceDeviceIndex;
5107     uint32_t           memoryDeviceIndex;
5108 } VkDeviceGroupBindSparseInfo;
5109 
5110 typedef struct VkBindBufferMemoryDeviceGroupInfo {
5111     VkStructureType    sType;
5112     const void*        pNext;
5113     uint32_t           deviceIndexCount;
5114     const uint32_t*    pDeviceIndices;
5115 } VkBindBufferMemoryDeviceGroupInfo;
5116 
5117 typedef struct VkBindImageMemoryDeviceGroupInfo {
5118     VkStructureType    sType;
5119     const void*        pNext;
5120     uint32_t           deviceIndexCount;
5121     const uint32_t*    pDeviceIndices;
5122     uint32_t           splitInstanceBindRegionCount;
5123     const VkRect2D*    pSplitInstanceBindRegions;
5124 } VkBindImageMemoryDeviceGroupInfo;
5125 
5126 typedef struct VkPhysicalDeviceGroupProperties {
5127     VkStructureType     sType;
5128     void*               pNext;
5129     uint32_t            physicalDeviceCount;
5130     VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5131     VkBool32            subsetAllocation;
5132 } VkPhysicalDeviceGroupProperties;
5133 
5134 typedef struct VkDeviceGroupDeviceCreateInfo {
5135     VkStructureType            sType;
5136     const void*                pNext;
5137     uint32_t                   physicalDeviceCount;
5138     const VkPhysicalDevice*    pPhysicalDevices;
5139 } VkDeviceGroupDeviceCreateInfo;
5140 
5141 typedef struct VkBufferMemoryRequirementsInfo2 {
5142     VkStructureType    sType;
5143     const void*        pNext;
5144     VkBuffer           buffer;
5145 } VkBufferMemoryRequirementsInfo2;
5146 
5147 typedef struct VkImageMemoryRequirementsInfo2 {
5148     VkStructureType    sType;
5149     const void*        pNext;
5150     VkImage            image;
5151 } VkImageMemoryRequirementsInfo2;
5152 
5153 typedef struct VkImageSparseMemoryRequirementsInfo2 {
5154     VkStructureType    sType;
5155     const void*        pNext;
5156     VkImage            image;
5157 } VkImageSparseMemoryRequirementsInfo2;
5158 
5159 typedef struct VkMemoryRequirements2 {
5160     VkStructureType         sType;
5161     void*                   pNext;
5162     VkMemoryRequirements    memoryRequirements;
5163 } VkMemoryRequirements2;
5164 
5165 typedef struct VkSparseImageMemoryRequirements2 {
5166     VkStructureType                    sType;
5167     void*                              pNext;
5168     VkSparseImageMemoryRequirements    memoryRequirements;
5169 } VkSparseImageMemoryRequirements2;
5170 
5171 typedef struct VkPhysicalDeviceFeatures2 {
5172     VkStructureType             sType;
5173     void*                       pNext;
5174     VkPhysicalDeviceFeatures    features;
5175 } VkPhysicalDeviceFeatures2;
5176 
5177 typedef struct VkPhysicalDeviceProperties2 {
5178     VkStructureType               sType;
5179     void*                         pNext;
5180     VkPhysicalDeviceProperties    properties;
5181 } VkPhysicalDeviceProperties2;
5182 
5183 typedef struct VkFormatProperties2 {
5184     VkStructureType       sType;
5185     void*                 pNext;
5186     VkFormatProperties    formatProperties;
5187 } VkFormatProperties2;
5188 
5189 typedef struct VkImageFormatProperties2 {
5190     VkStructureType            sType;
5191     void*                      pNext;
5192     VkImageFormatProperties    imageFormatProperties;
5193 } VkImageFormatProperties2;
5194 
5195 typedef struct VkPhysicalDeviceImageFormatInfo2 {
5196     VkStructureType       sType;
5197     const void*           pNext;
5198     VkFormat              format;
5199     VkImageType           type;
5200     VkImageTiling         tiling;
5201     VkImageUsageFlags     usage;
5202     VkImageCreateFlags    flags;
5203 } VkPhysicalDeviceImageFormatInfo2;
5204 
5205 typedef struct VkQueueFamilyProperties2 {
5206     VkStructureType            sType;
5207     void*                      pNext;
5208     VkQueueFamilyProperties    queueFamilyProperties;
5209 } VkQueueFamilyProperties2;
5210 
5211 typedef struct VkPhysicalDeviceMemoryProperties2 {
5212     VkStructureType                     sType;
5213     void*                               pNext;
5214     VkPhysicalDeviceMemoryProperties    memoryProperties;
5215 } VkPhysicalDeviceMemoryProperties2;
5216 
5217 typedef struct VkSparseImageFormatProperties2 {
5218     VkStructureType                  sType;
5219     void*                            pNext;
5220     VkSparseImageFormatProperties    properties;
5221 } VkSparseImageFormatProperties2;
5222 
5223 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
5224     VkStructureType          sType;
5225     const void*              pNext;
5226     VkFormat                 format;
5227     VkImageType              type;
5228     VkSampleCountFlagBits    samples;
5229     VkImageUsageFlags        usage;
5230     VkImageTiling            tiling;
5231 } VkPhysicalDeviceSparseImageFormatInfo2;
5232 
5233 typedef struct VkPhysicalDevicePointClippingProperties {
5234     VkStructureType            sType;
5235     void*                      pNext;
5236     VkPointClippingBehavior    pointClippingBehavior;
5237 } VkPhysicalDevicePointClippingProperties;
5238 
5239 typedef struct VkInputAttachmentAspectReference {
5240     uint32_t              subpass;
5241     uint32_t              inputAttachmentIndex;
5242     VkImageAspectFlags    aspectMask;
5243 } VkInputAttachmentAspectReference;
5244 
5245 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
5246     VkStructureType                            sType;
5247     const void*                                pNext;
5248     uint32_t                                   aspectReferenceCount;
5249     const VkInputAttachmentAspectReference*    pAspectReferences;
5250 } VkRenderPassInputAttachmentAspectCreateInfo;
5251 
5252 typedef struct VkImageViewUsageCreateInfo {
5253     VkStructureType      sType;
5254     const void*          pNext;
5255     VkImageUsageFlags    usage;
5256 } VkImageViewUsageCreateInfo;
5257 
5258 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
5259     VkStructureType               sType;
5260     const void*                   pNext;
5261     VkTessellationDomainOrigin    domainOrigin;
5262 } VkPipelineTessellationDomainOriginStateCreateInfo;
5263 
5264 typedef struct VkRenderPassMultiviewCreateInfo {
5265     VkStructureType    sType;
5266     const void*        pNext;
5267     uint32_t           subpassCount;
5268     const uint32_t*    pViewMasks;
5269     uint32_t           dependencyCount;
5270     const int32_t*     pViewOffsets;
5271     uint32_t           correlationMaskCount;
5272     const uint32_t*    pCorrelationMasks;
5273 } VkRenderPassMultiviewCreateInfo;
5274 
5275 typedef struct VkPhysicalDeviceMultiviewFeatures {
5276     VkStructureType    sType;
5277     void*              pNext;
5278     VkBool32           multiview;
5279     VkBool32           multiviewGeometryShader;
5280     VkBool32           multiviewTessellationShader;
5281 } VkPhysicalDeviceMultiviewFeatures;
5282 
5283 typedef struct VkPhysicalDeviceMultiviewProperties {
5284     VkStructureType    sType;
5285     void*              pNext;
5286     uint32_t           maxMultiviewViewCount;
5287     uint32_t           maxMultiviewInstanceIndex;
5288 } VkPhysicalDeviceMultiviewProperties;
5289 
5290 typedef struct VkPhysicalDeviceVariablePointersFeatures {
5291     VkStructureType    sType;
5292     void*              pNext;
5293     VkBool32           variablePointersStorageBuffer;
5294     VkBool32           variablePointers;
5295 } VkPhysicalDeviceVariablePointersFeatures;
5296 
5297 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
5298 
5299 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
5300     VkStructureType    sType;
5301     void*              pNext;
5302     VkBool32           protectedMemory;
5303 } VkPhysicalDeviceProtectedMemoryFeatures;
5304 
5305 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
5306     VkStructureType    sType;
5307     void*              pNext;
5308     VkBool32           protectedNoFault;
5309 } VkPhysicalDeviceProtectedMemoryProperties;
5310 
5311 typedef struct VkDeviceQueueInfo2 {
5312     VkStructureType             sType;
5313     const void*                 pNext;
5314     VkDeviceQueueCreateFlags    flags;
5315     uint32_t                    queueFamilyIndex;
5316     uint32_t                    queueIndex;
5317 } VkDeviceQueueInfo2;
5318 
5319 typedef struct VkProtectedSubmitInfo {
5320     VkStructureType    sType;
5321     const void*        pNext;
5322     VkBool32           protectedSubmit;
5323 } VkProtectedSubmitInfo;
5324 
5325 typedef struct VkSamplerYcbcrConversionCreateInfo {
5326     VkStructureType                  sType;
5327     const void*                      pNext;
5328     VkFormat                         format;
5329     VkSamplerYcbcrModelConversion    ycbcrModel;
5330     VkSamplerYcbcrRange              ycbcrRange;
5331     VkComponentMapping               components;
5332     VkChromaLocation                 xChromaOffset;
5333     VkChromaLocation                 yChromaOffset;
5334     VkFilter                         chromaFilter;
5335     VkBool32                         forceExplicitReconstruction;
5336 } VkSamplerYcbcrConversionCreateInfo;
5337 
5338 typedef struct VkSamplerYcbcrConversionInfo {
5339     VkStructureType             sType;
5340     const void*                 pNext;
5341     VkSamplerYcbcrConversion    conversion;
5342 } VkSamplerYcbcrConversionInfo;
5343 
5344 typedef struct VkBindImagePlaneMemoryInfo {
5345     VkStructureType          sType;
5346     const void*              pNext;
5347     VkImageAspectFlagBits    planeAspect;
5348 } VkBindImagePlaneMemoryInfo;
5349 
5350 typedef struct VkImagePlaneMemoryRequirementsInfo {
5351     VkStructureType          sType;
5352     const void*              pNext;
5353     VkImageAspectFlagBits    planeAspect;
5354 } VkImagePlaneMemoryRequirementsInfo;
5355 
5356 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5357     VkStructureType    sType;
5358     void*              pNext;
5359     VkBool32           samplerYcbcrConversion;
5360 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
5361 
5362 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
5363     VkStructureType    sType;
5364     void*              pNext;
5365     uint32_t           combinedImageSamplerDescriptorCount;
5366 } VkSamplerYcbcrConversionImageFormatProperties;
5367 
5368 typedef struct VkDescriptorUpdateTemplateEntry {
5369     uint32_t            dstBinding;
5370     uint32_t            dstArrayElement;
5371     uint32_t            descriptorCount;
5372     VkDescriptorType    descriptorType;
5373     size_t              offset;
5374     size_t              stride;
5375 } VkDescriptorUpdateTemplateEntry;
5376 
5377 typedef struct VkDescriptorUpdateTemplateCreateInfo {
5378     VkStructureType                           sType;
5379     const void*                               pNext;
5380     VkDescriptorUpdateTemplateCreateFlags     flags;
5381     uint32_t                                  descriptorUpdateEntryCount;
5382     const VkDescriptorUpdateTemplateEntry*    pDescriptorUpdateEntries;
5383     VkDescriptorUpdateTemplateType            templateType;
5384     VkDescriptorSetLayout                     descriptorSetLayout;
5385     VkPipelineBindPoint                       pipelineBindPoint;
5386     VkPipelineLayout                          pipelineLayout;
5387     uint32_t                                  set;
5388 } VkDescriptorUpdateTemplateCreateInfo;
5389 
5390 typedef struct VkExternalMemoryProperties {
5391     VkExternalMemoryFeatureFlags       externalMemoryFeatures;
5392     VkExternalMemoryHandleTypeFlags    exportFromImportedHandleTypes;
5393     VkExternalMemoryHandleTypeFlags    compatibleHandleTypes;
5394 } VkExternalMemoryProperties;
5395 
5396 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
5397     VkStructureType                       sType;
5398     const void*                           pNext;
5399     VkExternalMemoryHandleTypeFlagBits    handleType;
5400 } VkPhysicalDeviceExternalImageFormatInfo;
5401 
5402 typedef struct VkExternalImageFormatProperties {
5403     VkStructureType               sType;
5404     void*                         pNext;
5405     VkExternalMemoryProperties    externalMemoryProperties;
5406 } VkExternalImageFormatProperties;
5407 
5408 typedef struct VkPhysicalDeviceExternalBufferInfo {
5409     VkStructureType                       sType;
5410     const void*                           pNext;
5411     VkBufferCreateFlags                   flags;
5412     VkBufferUsageFlags                    usage;
5413     VkExternalMemoryHandleTypeFlagBits    handleType;
5414 } VkPhysicalDeviceExternalBufferInfo;
5415 
5416 typedef struct VkExternalBufferProperties {
5417     VkStructureType               sType;
5418     void*                         pNext;
5419     VkExternalMemoryProperties    externalMemoryProperties;
5420 } VkExternalBufferProperties;
5421 
5422 typedef struct VkPhysicalDeviceIDProperties {
5423     VkStructureType    sType;
5424     void*              pNext;
5425     uint8_t            deviceUUID[VK_UUID_SIZE];
5426     uint8_t            driverUUID[VK_UUID_SIZE];
5427     uint8_t            deviceLUID[VK_LUID_SIZE];
5428     uint32_t           deviceNodeMask;
5429     VkBool32           deviceLUIDValid;
5430 } VkPhysicalDeviceIDProperties;
5431 
5432 typedef struct VkExternalMemoryImageCreateInfo {
5433     VkStructureType                    sType;
5434     const void*                        pNext;
5435     VkExternalMemoryHandleTypeFlags    handleTypes;
5436 } VkExternalMemoryImageCreateInfo;
5437 
5438 typedef struct VkExternalMemoryBufferCreateInfo {
5439     VkStructureType                    sType;
5440     const void*                        pNext;
5441     VkExternalMemoryHandleTypeFlags    handleTypes;
5442 } VkExternalMemoryBufferCreateInfo;
5443 
5444 typedef struct VkExportMemoryAllocateInfo {
5445     VkStructureType                    sType;
5446     const void*                        pNext;
5447     VkExternalMemoryHandleTypeFlags    handleTypes;
5448 } VkExportMemoryAllocateInfo;
5449 
5450 typedef struct VkPhysicalDeviceExternalFenceInfo {
5451     VkStructureType                      sType;
5452     const void*                          pNext;
5453     VkExternalFenceHandleTypeFlagBits    handleType;
5454 } VkPhysicalDeviceExternalFenceInfo;
5455 
5456 typedef struct VkExternalFenceProperties {
5457     VkStructureType                   sType;
5458     void*                             pNext;
5459     VkExternalFenceHandleTypeFlags    exportFromImportedHandleTypes;
5460     VkExternalFenceHandleTypeFlags    compatibleHandleTypes;
5461     VkExternalFenceFeatureFlags       externalFenceFeatures;
5462 } VkExternalFenceProperties;
5463 
5464 typedef struct VkExportFenceCreateInfo {
5465     VkStructureType                   sType;
5466     const void*                       pNext;
5467     VkExternalFenceHandleTypeFlags    handleTypes;
5468 } VkExportFenceCreateInfo;
5469 
5470 typedef struct VkExportSemaphoreCreateInfo {
5471     VkStructureType                       sType;
5472     const void*                           pNext;
5473     VkExternalSemaphoreHandleTypeFlags    handleTypes;
5474 } VkExportSemaphoreCreateInfo;
5475 
5476 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
5477     VkStructureType                          sType;
5478     const void*                              pNext;
5479     VkExternalSemaphoreHandleTypeFlagBits    handleType;
5480 } VkPhysicalDeviceExternalSemaphoreInfo;
5481 
5482 typedef struct VkExternalSemaphoreProperties {
5483     VkStructureType                       sType;
5484     void*                                 pNext;
5485     VkExternalSemaphoreHandleTypeFlags    exportFromImportedHandleTypes;
5486     VkExternalSemaphoreHandleTypeFlags    compatibleHandleTypes;
5487     VkExternalSemaphoreFeatureFlags       externalSemaphoreFeatures;
5488 } VkExternalSemaphoreProperties;
5489 
5490 typedef struct VkPhysicalDeviceMaintenance3Properties {
5491     VkStructureType    sType;
5492     void*              pNext;
5493     uint32_t           maxPerSetDescriptors;
5494     VkDeviceSize       maxMemoryAllocationSize;
5495 } VkPhysicalDeviceMaintenance3Properties;
5496 
5497 typedef struct VkDescriptorSetLayoutSupport {
5498     VkStructureType    sType;
5499     void*              pNext;
5500     VkBool32           supported;
5501 } VkDescriptorSetLayoutSupport;
5502 
5503 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
5504     VkStructureType    sType;
5505     void*              pNext;
5506     VkBool32           shaderDrawParameters;
5507 } VkPhysicalDeviceShaderDrawParametersFeatures;
5508 
5509 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
5510 
5511 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
5512 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
5513 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
5514 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
5515 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
5516 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);
5517 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
5518 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5519 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5520 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
5521 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
5522 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
5523 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
5524 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
5525 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
5526 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
5527 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
5528 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
5529 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
5530 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
5531 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
5532 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
5533 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
5534 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
5535 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
5536 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
5537 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
5538 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
5539 
5540 #ifndef VK_NO_PROTOTYPES
5541 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
5542     uint32_t*                                   pApiVersion);
5543 
5544 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
5545     VkDevice                                    device,
5546     uint32_t                                    bindInfoCount,
5547     const VkBindBufferMemoryInfo*               pBindInfos);
5548 
5549 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
5550     VkDevice                                    device,
5551     uint32_t                                    bindInfoCount,
5552     const VkBindImageMemoryInfo*                pBindInfos);
5553 
5554 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
5555     VkDevice                                    device,
5556     uint32_t                                    heapIndex,
5557     uint32_t                                    localDeviceIndex,
5558     uint32_t                                    remoteDeviceIndex,
5559     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
5560 
5561 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
5562     VkCommandBuffer                             commandBuffer,
5563     uint32_t                                    deviceMask);
5564 
5565 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
5566     VkCommandBuffer                             commandBuffer,
5567     uint32_t                                    baseGroupX,
5568     uint32_t                                    baseGroupY,
5569     uint32_t                                    baseGroupZ,
5570     uint32_t                                    groupCountX,
5571     uint32_t                                    groupCountY,
5572     uint32_t                                    groupCountZ);
5573 
5574 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
5575     VkInstance                                  instance,
5576     uint32_t*                                   pPhysicalDeviceGroupCount,
5577     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
5578 
5579 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
5580     VkDevice                                    device,
5581     const VkImageMemoryRequirementsInfo2*       pInfo,
5582     VkMemoryRequirements2*                      pMemoryRequirements);
5583 
5584 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
5585     VkDevice                                    device,
5586     const VkBufferMemoryRequirementsInfo2*      pInfo,
5587     VkMemoryRequirements2*                      pMemoryRequirements);
5588 
5589 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
5590     VkDevice                                    device,
5591     const VkImageSparseMemoryRequirementsInfo2* pInfo,
5592     uint32_t*                                   pSparseMemoryRequirementCount,
5593     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
5594 
5595 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
5596     VkPhysicalDevice                            physicalDevice,
5597     VkPhysicalDeviceFeatures2*                  pFeatures);
5598 
5599 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
5600     VkPhysicalDevice                            physicalDevice,
5601     VkPhysicalDeviceProperties2*                pProperties);
5602 
5603 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
5604     VkPhysicalDevice                            physicalDevice,
5605     VkFormat                                    format,
5606     VkFormatProperties2*                        pFormatProperties);
5607 
5608 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
5609     VkPhysicalDevice                            physicalDevice,
5610     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
5611     VkImageFormatProperties2*                   pImageFormatProperties);
5612 
5613 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
5614     VkPhysicalDevice                            physicalDevice,
5615     uint32_t*                                   pQueueFamilyPropertyCount,
5616     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
5617 
5618 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
5619     VkPhysicalDevice                            physicalDevice,
5620     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
5621 
5622 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
5623     VkPhysicalDevice                            physicalDevice,
5624     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
5625     uint32_t*                                   pPropertyCount,
5626     VkSparseImageFormatProperties2*             pProperties);
5627 
5628 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
5629     VkDevice                                    device,
5630     VkCommandPool                               commandPool,
5631     VkCommandPoolTrimFlags                      flags);
5632 
5633 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
5634     VkDevice                                    device,
5635     const VkDeviceQueueInfo2*                   pQueueInfo,
5636     VkQueue*                                    pQueue);
5637 
5638 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
5639     VkDevice                                    device,
5640     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
5641     const VkAllocationCallbacks*                pAllocator,
5642     VkSamplerYcbcrConversion*                   pYcbcrConversion);
5643 
5644 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
5645     VkDevice                                    device,
5646     VkSamplerYcbcrConversion                    ycbcrConversion,
5647     const VkAllocationCallbacks*                pAllocator);
5648 
5649 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
5650     VkDevice                                    device,
5651     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
5652     const VkAllocationCallbacks*                pAllocator,
5653     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
5654 
5655 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
5656     VkDevice                                    device,
5657     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
5658     const VkAllocationCallbacks*                pAllocator);
5659 
5660 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
5661     VkDevice                                    device,
5662     VkDescriptorSet                             descriptorSet,
5663     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
5664     const void*                                 pData);
5665 
5666 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
5667     VkPhysicalDevice                            physicalDevice,
5668     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
5669     VkExternalBufferProperties*                 pExternalBufferProperties);
5670 
5671 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
5672     VkPhysicalDevice                            physicalDevice,
5673     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
5674     VkExternalFenceProperties*                  pExternalFenceProperties);
5675 
5676 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
5677     VkPhysicalDevice                            physicalDevice,
5678     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
5679     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
5680 
5681 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
5682     VkDevice                                    device,
5683     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
5684     VkDescriptorSetLayoutSupport*               pSupport);
5685 #endif
5686 
5687 
5688 #define VK_VERSION_1_2 1
5689 // Vulkan 1.2 version number
5690 #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
5691 
5692 #define VK_MAX_DRIVER_NAME_SIZE           256U
5693 #define VK_MAX_DRIVER_INFO_SIZE           256U
5694 
5695 typedef enum VkDriverId {
5696     VK_DRIVER_ID_AMD_PROPRIETARY = 1,
5697     VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
5698     VK_DRIVER_ID_MESA_RADV = 3,
5699     VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
5700     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
5701     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
5702     VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
5703     VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
5704     VK_DRIVER_ID_ARM_PROPRIETARY = 9,
5705     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
5706     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
5707     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
5708     VK_DRIVER_ID_MESA_LLVMPIPE = 13,
5709     VK_DRIVER_ID_MOLTENVK = 14,
5710     VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
5711     VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
5712     VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
5713     VK_DRIVER_ID_MESA_TURNIP = 18,
5714     VK_DRIVER_ID_MESA_V3DV = 19,
5715     VK_DRIVER_ID_MESA_PANVK = 20,
5716     VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
5717     VK_DRIVER_ID_MESA_VENUS = 22,
5718     VK_DRIVER_ID_MESA_DOZEN = 23,
5719     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
5720     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
5721     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
5722     VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
5723     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
5724     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
5725     VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
5726     VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
5727     VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
5728     VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
5729     VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
5730     VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
5731     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
5732 } VkDriverId;
5733 
5734 typedef enum VkShaderFloatControlsIndependence {
5735     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
5736     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
5737     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
5738     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
5739     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
5740     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
5741     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
5742 } VkShaderFloatControlsIndependence;
5743 
5744 typedef enum VkSamplerReductionMode {
5745     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
5746     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
5747     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
5748     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
5749     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
5750     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
5751     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
5752 } VkSamplerReductionMode;
5753 
5754 typedef enum VkSemaphoreType {
5755     VK_SEMAPHORE_TYPE_BINARY = 0,
5756     VK_SEMAPHORE_TYPE_TIMELINE = 1,
5757     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
5758     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
5759     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
5760 } VkSemaphoreType;
5761 
5762 typedef enum VkResolveModeFlagBits {
5763     VK_RESOLVE_MODE_NONE = 0,
5764     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
5765     VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
5766     VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
5767     VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
5768     VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
5769     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
5770     VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
5771     VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
5772     VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
5773     VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5774 } VkResolveModeFlagBits;
5775 typedef VkFlags VkResolveModeFlags;
5776 
5777 typedef enum VkDescriptorBindingFlagBits {
5778     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
5779     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
5780     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
5781     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
5782     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
5783     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
5784     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
5785     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
5786     VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5787 } VkDescriptorBindingFlagBits;
5788 typedef VkFlags VkDescriptorBindingFlags;
5789 
5790 typedef enum VkSemaphoreWaitFlagBits {
5791     VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
5792     VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
5793     VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5794 } VkSemaphoreWaitFlagBits;
5795 typedef VkFlags VkSemaphoreWaitFlags;
5796 typedef struct VkPhysicalDeviceVulkan11Features {
5797     VkStructureType    sType;
5798     void*              pNext;
5799     VkBool32           storageBuffer16BitAccess;
5800     VkBool32           uniformAndStorageBuffer16BitAccess;
5801     VkBool32           storagePushConstant16;
5802     VkBool32           storageInputOutput16;
5803     VkBool32           multiview;
5804     VkBool32           multiviewGeometryShader;
5805     VkBool32           multiviewTessellationShader;
5806     VkBool32           variablePointersStorageBuffer;
5807     VkBool32           variablePointers;
5808     VkBool32           protectedMemory;
5809     VkBool32           samplerYcbcrConversion;
5810     VkBool32           shaderDrawParameters;
5811 } VkPhysicalDeviceVulkan11Features;
5812 
5813 typedef struct VkPhysicalDeviceVulkan11Properties {
5814     VkStructureType            sType;
5815     void*                      pNext;
5816     uint8_t                    deviceUUID[VK_UUID_SIZE];
5817     uint8_t                    driverUUID[VK_UUID_SIZE];
5818     uint8_t                    deviceLUID[VK_LUID_SIZE];
5819     uint32_t                   deviceNodeMask;
5820     VkBool32                   deviceLUIDValid;
5821     uint32_t                   subgroupSize;
5822     VkShaderStageFlags         subgroupSupportedStages;
5823     VkSubgroupFeatureFlags     subgroupSupportedOperations;
5824     VkBool32                   subgroupQuadOperationsInAllStages;
5825     VkPointClippingBehavior    pointClippingBehavior;
5826     uint32_t                   maxMultiviewViewCount;
5827     uint32_t                   maxMultiviewInstanceIndex;
5828     VkBool32                   protectedNoFault;
5829     uint32_t                   maxPerSetDescriptors;
5830     VkDeviceSize               maxMemoryAllocationSize;
5831 } VkPhysicalDeviceVulkan11Properties;
5832 
5833 typedef struct VkPhysicalDeviceVulkan12Features {
5834     VkStructureType    sType;
5835     void*              pNext;
5836     VkBool32           samplerMirrorClampToEdge;
5837     VkBool32           drawIndirectCount;
5838     VkBool32           storageBuffer8BitAccess;
5839     VkBool32           uniformAndStorageBuffer8BitAccess;
5840     VkBool32           storagePushConstant8;
5841     VkBool32           shaderBufferInt64Atomics;
5842     VkBool32           shaderSharedInt64Atomics;
5843     VkBool32           shaderFloat16;
5844     VkBool32           shaderInt8;
5845     VkBool32           descriptorIndexing;
5846     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
5847     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
5848     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
5849     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
5850     VkBool32           shaderSampledImageArrayNonUniformIndexing;
5851     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
5852     VkBool32           shaderStorageImageArrayNonUniformIndexing;
5853     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
5854     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
5855     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
5856     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
5857     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
5858     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
5859     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
5860     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
5861     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
5862     VkBool32           descriptorBindingUpdateUnusedWhilePending;
5863     VkBool32           descriptorBindingPartiallyBound;
5864     VkBool32           descriptorBindingVariableDescriptorCount;
5865     VkBool32           runtimeDescriptorArray;
5866     VkBool32           samplerFilterMinmax;
5867     VkBool32           scalarBlockLayout;
5868     VkBool32           imagelessFramebuffer;
5869     VkBool32           uniformBufferStandardLayout;
5870     VkBool32           shaderSubgroupExtendedTypes;
5871     VkBool32           separateDepthStencilLayouts;
5872     VkBool32           hostQueryReset;
5873     VkBool32           timelineSemaphore;
5874     VkBool32           bufferDeviceAddress;
5875     VkBool32           bufferDeviceAddressCaptureReplay;
5876     VkBool32           bufferDeviceAddressMultiDevice;
5877     VkBool32           vulkanMemoryModel;
5878     VkBool32           vulkanMemoryModelDeviceScope;
5879     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
5880     VkBool32           shaderOutputViewportIndex;
5881     VkBool32           shaderOutputLayer;
5882     VkBool32           subgroupBroadcastDynamicId;
5883 } VkPhysicalDeviceVulkan12Features;
5884 
5885 typedef struct VkConformanceVersion {
5886     uint8_t    major;
5887     uint8_t    minor;
5888     uint8_t    subminor;
5889     uint8_t    patch;
5890 } VkConformanceVersion;
5891 
5892 typedef struct VkPhysicalDeviceVulkan12Properties {
5893     VkStructureType                      sType;
5894     void*                                pNext;
5895     VkDriverId                           driverID;
5896     char                                 driverName[VK_MAX_DRIVER_NAME_SIZE];
5897     char                                 driverInfo[VK_MAX_DRIVER_INFO_SIZE];
5898     VkConformanceVersion                 conformanceVersion;
5899     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
5900     VkShaderFloatControlsIndependence    roundingModeIndependence;
5901     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
5902     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
5903     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
5904     VkBool32                             shaderDenormPreserveFloat16;
5905     VkBool32                             shaderDenormPreserveFloat32;
5906     VkBool32                             shaderDenormPreserveFloat64;
5907     VkBool32                             shaderDenormFlushToZeroFloat16;
5908     VkBool32                             shaderDenormFlushToZeroFloat32;
5909     VkBool32                             shaderDenormFlushToZeroFloat64;
5910     VkBool32                             shaderRoundingModeRTEFloat16;
5911     VkBool32                             shaderRoundingModeRTEFloat32;
5912     VkBool32                             shaderRoundingModeRTEFloat64;
5913     VkBool32                             shaderRoundingModeRTZFloat16;
5914     VkBool32                             shaderRoundingModeRTZFloat32;
5915     VkBool32                             shaderRoundingModeRTZFloat64;
5916     uint32_t                             maxUpdateAfterBindDescriptorsInAllPools;
5917     VkBool32                             shaderUniformBufferArrayNonUniformIndexingNative;
5918     VkBool32                             shaderSampledImageArrayNonUniformIndexingNative;
5919     VkBool32                             shaderStorageBufferArrayNonUniformIndexingNative;
5920     VkBool32                             shaderStorageImageArrayNonUniformIndexingNative;
5921     VkBool32                             shaderInputAttachmentArrayNonUniformIndexingNative;
5922     VkBool32                             robustBufferAccessUpdateAfterBind;
5923     VkBool32                             quadDivergentImplicitLod;
5924     uint32_t                             maxPerStageDescriptorUpdateAfterBindSamplers;
5925     uint32_t                             maxPerStageDescriptorUpdateAfterBindUniformBuffers;
5926     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageBuffers;
5927     uint32_t                             maxPerStageDescriptorUpdateAfterBindSampledImages;
5928     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageImages;
5929     uint32_t                             maxPerStageDescriptorUpdateAfterBindInputAttachments;
5930     uint32_t                             maxPerStageUpdateAfterBindResources;
5931     uint32_t                             maxDescriptorSetUpdateAfterBindSamplers;
5932     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffers;
5933     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
5934     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffers;
5935     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
5936     uint32_t                             maxDescriptorSetUpdateAfterBindSampledImages;
5937     uint32_t                             maxDescriptorSetUpdateAfterBindStorageImages;
5938     uint32_t                             maxDescriptorSetUpdateAfterBindInputAttachments;
5939     VkResolveModeFlags                   supportedDepthResolveModes;
5940     VkResolveModeFlags                   supportedStencilResolveModes;
5941     VkBool32                             independentResolveNone;
5942     VkBool32                             independentResolve;
5943     VkBool32                             filterMinmaxSingleComponentFormats;
5944     VkBool32                             filterMinmaxImageComponentMapping;
5945     uint64_t                             maxTimelineSemaphoreValueDifference;
5946     VkSampleCountFlags                   framebufferIntegerColorSampleCounts;
5947 } VkPhysicalDeviceVulkan12Properties;
5948 
5949 typedef struct VkImageFormatListCreateInfo {
5950     VkStructureType    sType;
5951     const void*        pNext;
5952     uint32_t           viewFormatCount;
5953     const VkFormat*    pViewFormats;
5954 } VkImageFormatListCreateInfo;
5955 
5956 typedef struct VkAttachmentDescription2 {
5957     VkStructureType                 sType;
5958     const void*                     pNext;
5959     VkAttachmentDescriptionFlags    flags;
5960     VkFormat                        format;
5961     VkSampleCountFlagBits           samples;
5962     VkAttachmentLoadOp              loadOp;
5963     VkAttachmentStoreOp             storeOp;
5964     VkAttachmentLoadOp              stencilLoadOp;
5965     VkAttachmentStoreOp             stencilStoreOp;
5966     VkImageLayout                   initialLayout;
5967     VkImageLayout                   finalLayout;
5968 } VkAttachmentDescription2;
5969 
5970 typedef struct VkAttachmentReference2 {
5971     VkStructureType       sType;
5972     const void*           pNext;
5973     uint32_t              attachment;
5974     VkImageLayout         layout;
5975     VkImageAspectFlags    aspectMask;
5976 } VkAttachmentReference2;
5977 
5978 typedef struct VkSubpassDescription2 {
5979     VkStructureType                  sType;
5980     const void*                      pNext;
5981     VkSubpassDescriptionFlags        flags;
5982     VkPipelineBindPoint              pipelineBindPoint;
5983     uint32_t                         viewMask;
5984     uint32_t                         inputAttachmentCount;
5985     const VkAttachmentReference2*    pInputAttachments;
5986     uint32_t                         colorAttachmentCount;
5987     const VkAttachmentReference2*    pColorAttachments;
5988     const VkAttachmentReference2*    pResolveAttachments;
5989     const VkAttachmentReference2*    pDepthStencilAttachment;
5990     uint32_t                         preserveAttachmentCount;
5991     const uint32_t*                  pPreserveAttachments;
5992 } VkSubpassDescription2;
5993 
5994 typedef struct VkSubpassDependency2 {
5995     VkStructureType         sType;
5996     const void*             pNext;
5997     uint32_t                srcSubpass;
5998     uint32_t                dstSubpass;
5999     VkPipelineStageFlags    srcStageMask;
6000     VkPipelineStageFlags    dstStageMask;
6001     VkAccessFlags           srcAccessMask;
6002     VkAccessFlags           dstAccessMask;
6003     VkDependencyFlags       dependencyFlags;
6004     int32_t                 viewOffset;
6005 } VkSubpassDependency2;
6006 
6007 typedef struct VkRenderPassCreateInfo2 {
6008     VkStructureType                    sType;
6009     const void*                        pNext;
6010     VkRenderPassCreateFlags            flags;
6011     uint32_t                           attachmentCount;
6012     const VkAttachmentDescription2*    pAttachments;
6013     uint32_t                           subpassCount;
6014     const VkSubpassDescription2*       pSubpasses;
6015     uint32_t                           dependencyCount;
6016     const VkSubpassDependency2*        pDependencies;
6017     uint32_t                           correlatedViewMaskCount;
6018     const uint32_t*                    pCorrelatedViewMasks;
6019 } VkRenderPassCreateInfo2;
6020 
6021 typedef struct VkSubpassBeginInfo {
6022     VkStructureType      sType;
6023     const void*          pNext;
6024     VkSubpassContents    contents;
6025 } VkSubpassBeginInfo;
6026 
6027 typedef struct VkSubpassEndInfo {
6028     VkStructureType    sType;
6029     const void*        pNext;
6030 } VkSubpassEndInfo;
6031 
6032 typedef struct VkPhysicalDevice8BitStorageFeatures {
6033     VkStructureType    sType;
6034     void*              pNext;
6035     VkBool32           storageBuffer8BitAccess;
6036     VkBool32           uniformAndStorageBuffer8BitAccess;
6037     VkBool32           storagePushConstant8;
6038 } VkPhysicalDevice8BitStorageFeatures;
6039 
6040 typedef struct VkPhysicalDeviceDriverProperties {
6041     VkStructureType         sType;
6042     void*                   pNext;
6043     VkDriverId              driverID;
6044     char                    driverName[VK_MAX_DRIVER_NAME_SIZE];
6045     char                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6046     VkConformanceVersion    conformanceVersion;
6047 } VkPhysicalDeviceDriverProperties;
6048 
6049 typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6050     VkStructureType    sType;
6051     void*              pNext;
6052     VkBool32           shaderBufferInt64Atomics;
6053     VkBool32           shaderSharedInt64Atomics;
6054 } VkPhysicalDeviceShaderAtomicInt64Features;
6055 
6056 typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6057     VkStructureType    sType;
6058     void*              pNext;
6059     VkBool32           shaderFloat16;
6060     VkBool32           shaderInt8;
6061 } VkPhysicalDeviceShaderFloat16Int8Features;
6062 
6063 typedef struct VkPhysicalDeviceFloatControlsProperties {
6064     VkStructureType                      sType;
6065     void*                                pNext;
6066     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
6067     VkShaderFloatControlsIndependence    roundingModeIndependence;
6068     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
6069     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
6070     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
6071     VkBool32                             shaderDenormPreserveFloat16;
6072     VkBool32                             shaderDenormPreserveFloat32;
6073     VkBool32                             shaderDenormPreserveFloat64;
6074     VkBool32                             shaderDenormFlushToZeroFloat16;
6075     VkBool32                             shaderDenormFlushToZeroFloat32;
6076     VkBool32                             shaderDenormFlushToZeroFloat64;
6077     VkBool32                             shaderRoundingModeRTEFloat16;
6078     VkBool32                             shaderRoundingModeRTEFloat32;
6079     VkBool32                             shaderRoundingModeRTEFloat64;
6080     VkBool32                             shaderRoundingModeRTZFloat16;
6081     VkBool32                             shaderRoundingModeRTZFloat32;
6082     VkBool32                             shaderRoundingModeRTZFloat64;
6083 } VkPhysicalDeviceFloatControlsProperties;
6084 
6085 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6086     VkStructureType                    sType;
6087     const void*                        pNext;
6088     uint32_t                           bindingCount;
6089     const VkDescriptorBindingFlags*    pBindingFlags;
6090 } VkDescriptorSetLayoutBindingFlagsCreateInfo;
6091 
6092 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6093     VkStructureType    sType;
6094     void*              pNext;
6095     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
6096     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
6097     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
6098     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
6099     VkBool32           shaderSampledImageArrayNonUniformIndexing;
6100     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
6101     VkBool32           shaderStorageImageArrayNonUniformIndexing;
6102     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
6103     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
6104     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
6105     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
6106     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
6107     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
6108     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
6109     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
6110     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
6111     VkBool32           descriptorBindingUpdateUnusedWhilePending;
6112     VkBool32           descriptorBindingPartiallyBound;
6113     VkBool32           descriptorBindingVariableDescriptorCount;
6114     VkBool32           runtimeDescriptorArray;
6115 } VkPhysicalDeviceDescriptorIndexingFeatures;
6116 
6117 typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6118     VkStructureType    sType;
6119     void*              pNext;
6120     uint32_t           maxUpdateAfterBindDescriptorsInAllPools;
6121     VkBool32           shaderUniformBufferArrayNonUniformIndexingNative;
6122     VkBool32           shaderSampledImageArrayNonUniformIndexingNative;
6123     VkBool32           shaderStorageBufferArrayNonUniformIndexingNative;
6124     VkBool32           shaderStorageImageArrayNonUniformIndexingNative;
6125     VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative;
6126     VkBool32           robustBufferAccessUpdateAfterBind;
6127     VkBool32           quadDivergentImplicitLod;
6128     uint32_t           maxPerStageDescriptorUpdateAfterBindSamplers;
6129     uint32_t           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6130     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6131     uint32_t           maxPerStageDescriptorUpdateAfterBindSampledImages;
6132     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageImages;
6133     uint32_t           maxPerStageDescriptorUpdateAfterBindInputAttachments;
6134     uint32_t           maxPerStageUpdateAfterBindResources;
6135     uint32_t           maxDescriptorSetUpdateAfterBindSamplers;
6136     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffers;
6137     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6138     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffers;
6139     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6140     uint32_t           maxDescriptorSetUpdateAfterBindSampledImages;
6141     uint32_t           maxDescriptorSetUpdateAfterBindStorageImages;
6142     uint32_t           maxDescriptorSetUpdateAfterBindInputAttachments;
6143 } VkPhysicalDeviceDescriptorIndexingProperties;
6144 
6145 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6146     VkStructureType    sType;
6147     const void*        pNext;
6148     uint32_t           descriptorSetCount;
6149     const uint32_t*    pDescriptorCounts;
6150 } VkDescriptorSetVariableDescriptorCountAllocateInfo;
6151 
6152 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6153     VkStructureType    sType;
6154     void*              pNext;
6155     uint32_t           maxVariableDescriptorCount;
6156 } VkDescriptorSetVariableDescriptorCountLayoutSupport;
6157 
6158 typedef struct VkSubpassDescriptionDepthStencilResolve {
6159     VkStructureType                  sType;
6160     const void*                      pNext;
6161     VkResolveModeFlagBits            depthResolveMode;
6162     VkResolveModeFlagBits            stencilResolveMode;
6163     const VkAttachmentReference2*    pDepthStencilResolveAttachment;
6164 } VkSubpassDescriptionDepthStencilResolve;
6165 
6166 typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6167     VkStructureType       sType;
6168     void*                 pNext;
6169     VkResolveModeFlags    supportedDepthResolveModes;
6170     VkResolveModeFlags    supportedStencilResolveModes;
6171     VkBool32              independentResolveNone;
6172     VkBool32              independentResolve;
6173 } VkPhysicalDeviceDepthStencilResolveProperties;
6174 
6175 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
6176     VkStructureType    sType;
6177     void*              pNext;
6178     VkBool32           scalarBlockLayout;
6179 } VkPhysicalDeviceScalarBlockLayoutFeatures;
6180 
6181 typedef struct VkImageStencilUsageCreateInfo {
6182     VkStructureType      sType;
6183     const void*          pNext;
6184     VkImageUsageFlags    stencilUsage;
6185 } VkImageStencilUsageCreateInfo;
6186 
6187 typedef struct VkSamplerReductionModeCreateInfo {
6188     VkStructureType           sType;
6189     const void*               pNext;
6190     VkSamplerReductionMode    reductionMode;
6191 } VkSamplerReductionModeCreateInfo;
6192 
6193 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
6194     VkStructureType    sType;
6195     void*              pNext;
6196     VkBool32           filterMinmaxSingleComponentFormats;
6197     VkBool32           filterMinmaxImageComponentMapping;
6198 } VkPhysicalDeviceSamplerFilterMinmaxProperties;
6199 
6200 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
6201     VkStructureType    sType;
6202     void*              pNext;
6203     VkBool32           vulkanMemoryModel;
6204     VkBool32           vulkanMemoryModelDeviceScope;
6205     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
6206 } VkPhysicalDeviceVulkanMemoryModelFeatures;
6207 
6208 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
6209     VkStructureType    sType;
6210     void*              pNext;
6211     VkBool32           imagelessFramebuffer;
6212 } VkPhysicalDeviceImagelessFramebufferFeatures;
6213 
6214 typedef struct VkFramebufferAttachmentImageInfo {
6215     VkStructureType       sType;
6216     const void*           pNext;
6217     VkImageCreateFlags    flags;
6218     VkImageUsageFlags     usage;
6219     uint32_t              width;
6220     uint32_t              height;
6221     uint32_t              layerCount;
6222     uint32_t              viewFormatCount;
6223     const VkFormat*       pViewFormats;
6224 } VkFramebufferAttachmentImageInfo;
6225 
6226 typedef struct VkFramebufferAttachmentsCreateInfo {
6227     VkStructureType                            sType;
6228     const void*                                pNext;
6229     uint32_t                                   attachmentImageInfoCount;
6230     const VkFramebufferAttachmentImageInfo*    pAttachmentImageInfos;
6231 } VkFramebufferAttachmentsCreateInfo;
6232 
6233 typedef struct VkRenderPassAttachmentBeginInfo {
6234     VkStructureType       sType;
6235     const void*           pNext;
6236     uint32_t              attachmentCount;
6237     const VkImageView*    pAttachments;
6238 } VkRenderPassAttachmentBeginInfo;
6239 
6240 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
6241     VkStructureType    sType;
6242     void*              pNext;
6243     VkBool32           uniformBufferStandardLayout;
6244 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
6245 
6246 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6247     VkStructureType    sType;
6248     void*              pNext;
6249     VkBool32           shaderSubgroupExtendedTypes;
6250 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6251 
6252 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
6253     VkStructureType    sType;
6254     void*              pNext;
6255     VkBool32           separateDepthStencilLayouts;
6256 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
6257 
6258 typedef struct VkAttachmentReferenceStencilLayout {
6259     VkStructureType    sType;
6260     void*              pNext;
6261     VkImageLayout      stencilLayout;
6262 } VkAttachmentReferenceStencilLayout;
6263 
6264 typedef struct VkAttachmentDescriptionStencilLayout {
6265     VkStructureType    sType;
6266     void*              pNext;
6267     VkImageLayout      stencilInitialLayout;
6268     VkImageLayout      stencilFinalLayout;
6269 } VkAttachmentDescriptionStencilLayout;
6270 
6271 typedef struct VkPhysicalDeviceHostQueryResetFeatures {
6272     VkStructureType    sType;
6273     void*              pNext;
6274     VkBool32           hostQueryReset;
6275 } VkPhysicalDeviceHostQueryResetFeatures;
6276 
6277 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
6278     VkStructureType    sType;
6279     void*              pNext;
6280     VkBool32           timelineSemaphore;
6281 } VkPhysicalDeviceTimelineSemaphoreFeatures;
6282 
6283 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
6284     VkStructureType    sType;
6285     void*              pNext;
6286     uint64_t           maxTimelineSemaphoreValueDifference;
6287 } VkPhysicalDeviceTimelineSemaphoreProperties;
6288 
6289 typedef struct VkSemaphoreTypeCreateInfo {
6290     VkStructureType    sType;
6291     const void*        pNext;
6292     VkSemaphoreType    semaphoreType;
6293     uint64_t           initialValue;
6294 } VkSemaphoreTypeCreateInfo;
6295 
6296 typedef struct VkTimelineSemaphoreSubmitInfo {
6297     VkStructureType    sType;
6298     const void*        pNext;
6299     uint32_t           waitSemaphoreValueCount;
6300     const uint64_t*    pWaitSemaphoreValues;
6301     uint32_t           signalSemaphoreValueCount;
6302     const uint64_t*    pSignalSemaphoreValues;
6303 } VkTimelineSemaphoreSubmitInfo;
6304 
6305 typedef struct VkSemaphoreWaitInfo {
6306     VkStructureType         sType;
6307     const void*             pNext;
6308     VkSemaphoreWaitFlags    flags;
6309     uint32_t                semaphoreCount;
6310     const VkSemaphore*      pSemaphores;
6311     const uint64_t*         pValues;
6312 } VkSemaphoreWaitInfo;
6313 
6314 typedef struct VkSemaphoreSignalInfo {
6315     VkStructureType    sType;
6316     const void*        pNext;
6317     VkSemaphore        semaphore;
6318     uint64_t           value;
6319 } VkSemaphoreSignalInfo;
6320 
6321 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
6322     VkStructureType    sType;
6323     void*              pNext;
6324     VkBool32           bufferDeviceAddress;
6325     VkBool32           bufferDeviceAddressCaptureReplay;
6326     VkBool32           bufferDeviceAddressMultiDevice;
6327 } VkPhysicalDeviceBufferDeviceAddressFeatures;
6328 
6329 typedef struct VkBufferDeviceAddressInfo {
6330     VkStructureType    sType;
6331     const void*        pNext;
6332     VkBuffer           buffer;
6333 } VkBufferDeviceAddressInfo;
6334 
6335 typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
6336     VkStructureType    sType;
6337     const void*        pNext;
6338     uint64_t           opaqueCaptureAddress;
6339 } VkBufferOpaqueCaptureAddressCreateInfo;
6340 
6341 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
6342     VkStructureType    sType;
6343     const void*        pNext;
6344     uint64_t           opaqueCaptureAddress;
6345 } VkMemoryOpaqueCaptureAddressAllocateInfo;
6346 
6347 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
6348     VkStructureType    sType;
6349     const void*        pNext;
6350     VkDeviceMemory     memory;
6351 } VkDeviceMemoryOpaqueCaptureAddressInfo;
6352 
6353 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6354 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6355 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6356 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
6357 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
6358 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
6359 typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
6360 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
6361 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
6362 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
6363 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6364 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6365 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6366 
6367 #ifndef VK_NO_PROTOTYPES
6368 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
6369     VkCommandBuffer                             commandBuffer,
6370     VkBuffer                                    buffer,
6371     VkDeviceSize                                offset,
6372     VkBuffer                                    countBuffer,
6373     VkDeviceSize                                countBufferOffset,
6374     uint32_t                                    maxDrawCount,
6375     uint32_t                                    stride);
6376 
6377 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
6378     VkCommandBuffer                             commandBuffer,
6379     VkBuffer                                    buffer,
6380     VkDeviceSize                                offset,
6381     VkBuffer                                    countBuffer,
6382     VkDeviceSize                                countBufferOffset,
6383     uint32_t                                    maxDrawCount,
6384     uint32_t                                    stride);
6385 
6386 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
6387     VkDevice                                    device,
6388     const VkRenderPassCreateInfo2*              pCreateInfo,
6389     const VkAllocationCallbacks*                pAllocator,
6390     VkRenderPass*                               pRenderPass);
6391 
6392 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
6393     VkCommandBuffer                             commandBuffer,
6394     const VkRenderPassBeginInfo*                pRenderPassBegin,
6395     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
6396 
6397 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
6398     VkCommandBuffer                             commandBuffer,
6399     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
6400     const VkSubpassEndInfo*                     pSubpassEndInfo);
6401 
6402 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
6403     VkCommandBuffer                             commandBuffer,
6404     const VkSubpassEndInfo*                     pSubpassEndInfo);
6405 
6406 VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
6407     VkDevice                                    device,
6408     VkQueryPool                                 queryPool,
6409     uint32_t                                    firstQuery,
6410     uint32_t                                    queryCount);
6411 
6412 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
6413     VkDevice                                    device,
6414     VkSemaphore                                 semaphore,
6415     uint64_t*                                   pValue);
6416 
6417 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
6418     VkDevice                                    device,
6419     const VkSemaphoreWaitInfo*                  pWaitInfo,
6420     uint64_t                                    timeout);
6421 
6422 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
6423     VkDevice                                    device,
6424     const VkSemaphoreSignalInfo*                pSignalInfo);
6425 
6426 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
6427     VkDevice                                    device,
6428     const VkBufferDeviceAddressInfo*            pInfo);
6429 
6430 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
6431     VkDevice                                    device,
6432     const VkBufferDeviceAddressInfo*            pInfo);
6433 
6434 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
6435     VkDevice                                    device,
6436     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6437 #endif
6438 
6439 
6440 #define VK_VERSION_1_3 1
6441 // Vulkan 1.3 version number
6442 #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
6443 
6444 typedef uint64_t VkFlags64;
6445 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
6446 
6447 typedef enum VkPipelineCreationFeedbackFlagBits {
6448     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
6449     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
6450     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
6451     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
6452     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
6453     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
6454     VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6455 } VkPipelineCreationFeedbackFlagBits;
6456 typedef VkFlags VkPipelineCreationFeedbackFlags;
6457 
6458 typedef enum VkToolPurposeFlagBits {
6459     VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
6460     VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
6461     VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
6462     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
6463     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
6464     VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
6465     VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
6466     VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
6467     VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
6468     VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
6469     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
6470     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
6471     VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6472 } VkToolPurposeFlagBits;
6473 typedef VkFlags VkToolPurposeFlags;
6474 typedef VkFlags VkPrivateDataSlotCreateFlags;
6475 typedef VkFlags64 VkPipelineStageFlags2;
6476 
6477 // Flag bits for VkPipelineStageFlagBits2
6478 typedef VkFlags64 VkPipelineStageFlagBits2;
6479 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
6480 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
6481 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
6482 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
6483 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
6484 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
6485 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
6486 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
6487 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
6488 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
6489 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
6490 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
6491 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
6492 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
6493 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
6494 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
6495 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
6496 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
6497 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
6498 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
6499 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
6500 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
6501 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
6502 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
6503 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
6504 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
6505 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
6506 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
6507 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
6508 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
6509 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
6510 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
6511 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
6512 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
6513 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
6514 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
6515 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
6516 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
6517 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
6518 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
6519 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
6520 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
6521 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
6522 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
6523 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
6524 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
6525 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
6526 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
6527 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
6528 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
6529 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
6530 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
6531 #ifdef VK_ENABLE_BETA_EXTENSIONS
6532 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
6533 #endif
6534 #ifdef VK_ENABLE_BETA_EXTENSIONS
6535 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
6536 #endif
6537 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
6538 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
6539 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
6540 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
6541 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
6542 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
6543 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
6544 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
6545 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
6546 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
6547 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
6548 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
6549 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
6550 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
6551 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
6552 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
6553 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
6554 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
6555 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
6556 
6557 typedef VkFlags64 VkAccessFlags2;
6558 
6559 // Flag bits for VkAccessFlagBits2
6560 typedef VkFlags64 VkAccessFlagBits2;
6561 static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
6562 static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
6563 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
6564 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
6565 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
6566 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
6567 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
6568 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
6569 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
6570 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
6571 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
6572 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
6573 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
6574 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
6575 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
6576 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
6577 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
6578 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
6579 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
6580 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
6581 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
6582 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
6583 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
6584 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
6585 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
6586 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
6587 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
6588 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
6589 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
6590 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
6591 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
6592 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
6593 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
6594 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
6595 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
6596 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
6597 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
6598 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
6599 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
6600 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
6601 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
6602 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
6603 #ifdef VK_ENABLE_BETA_EXTENSIONS
6604 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
6605 #endif
6606 #ifdef VK_ENABLE_BETA_EXTENSIONS
6607 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
6608 #endif
6609 #ifdef VK_ENABLE_BETA_EXTENSIONS
6610 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
6611 #endif
6612 #ifdef VK_ENABLE_BETA_EXTENSIONS
6613 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
6614 #endif
6615 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
6616 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
6617 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
6618 static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
6619 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
6620 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
6621 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
6622 static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
6623 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
6624 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
6625 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
6626 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
6627 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
6628 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
6629 static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
6630 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
6631 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
6632 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
6633 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
6634 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
6635 
6636 
6637 typedef enum VkSubmitFlagBits {
6638     VK_SUBMIT_PROTECTED_BIT = 0x00000001,
6639     VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
6640     VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6641 } VkSubmitFlagBits;
6642 typedef VkFlags VkSubmitFlags;
6643 
6644 typedef enum VkRenderingFlagBits {
6645     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
6646     VK_RENDERING_SUSPENDING_BIT = 0x00000002,
6647     VK_RENDERING_RESUMING_BIT = 0x00000004,
6648     VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
6649     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
6650     VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
6651     VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
6652     VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6653 } VkRenderingFlagBits;
6654 typedef VkFlags VkRenderingFlags;
6655 typedef VkFlags64 VkFormatFeatureFlags2;
6656 
6657 // Flag bits for VkFormatFeatureFlagBits2
6658 typedef VkFlags64 VkFormatFeatureFlagBits2;
6659 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
6660 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
6661 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
6662 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
6663 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
6664 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
6665 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
6666 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
6667 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
6668 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
6669 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
6670 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
6671 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
6672 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
6673 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
6674 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
6675 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
6676 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
6677 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
6678 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
6679 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
6680 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
6681 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
6682 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
6683 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
6684 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
6685 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
6686 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
6687 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
6688 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
6689 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
6690 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
6691 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
6692 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
6693 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
6694 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
6695 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
6696 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
6697 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
6698 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
6699 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
6700 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
6701 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
6702 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
6703 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
6704 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
6705 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
6706 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
6707 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
6708 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
6709 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
6710 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
6711 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
6712 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
6713 #ifdef VK_ENABLE_BETA_EXTENSIONS
6714 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
6715 #endif
6716 #ifdef VK_ENABLE_BETA_EXTENSIONS
6717 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
6718 #endif
6719 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
6720 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
6721 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
6722 #ifdef VK_ENABLE_BETA_EXTENSIONS
6723 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
6724 #endif
6725 #ifdef VK_ENABLE_BETA_EXTENSIONS
6726 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
6727 #endif
6728 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
6729 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
6730 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
6731 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
6732 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
6733 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
6734 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
6735 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
6736 
6737 typedef struct VkPhysicalDeviceVulkan13Features {
6738     VkStructureType    sType;
6739     void*              pNext;
6740     VkBool32           robustImageAccess;
6741     VkBool32           inlineUniformBlock;
6742     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
6743     VkBool32           pipelineCreationCacheControl;
6744     VkBool32           privateData;
6745     VkBool32           shaderDemoteToHelperInvocation;
6746     VkBool32           shaderTerminateInvocation;
6747     VkBool32           subgroupSizeControl;
6748     VkBool32           computeFullSubgroups;
6749     VkBool32           synchronization2;
6750     VkBool32           textureCompressionASTC_HDR;
6751     VkBool32           shaderZeroInitializeWorkgroupMemory;
6752     VkBool32           dynamicRendering;
6753     VkBool32           shaderIntegerDotProduct;
6754     VkBool32           maintenance4;
6755 } VkPhysicalDeviceVulkan13Features;
6756 
6757 typedef struct VkPhysicalDeviceVulkan13Properties {
6758     VkStructureType       sType;
6759     void*                 pNext;
6760     uint32_t              minSubgroupSize;
6761     uint32_t              maxSubgroupSize;
6762     uint32_t              maxComputeWorkgroupSubgroups;
6763     VkShaderStageFlags    requiredSubgroupSizeStages;
6764     uint32_t              maxInlineUniformBlockSize;
6765     uint32_t              maxPerStageDescriptorInlineUniformBlocks;
6766     uint32_t              maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
6767     uint32_t              maxDescriptorSetInlineUniformBlocks;
6768     uint32_t              maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
6769     uint32_t              maxInlineUniformTotalSize;
6770     VkBool32              integerDotProduct8BitUnsignedAccelerated;
6771     VkBool32              integerDotProduct8BitSignedAccelerated;
6772     VkBool32              integerDotProduct8BitMixedSignednessAccelerated;
6773     VkBool32              integerDotProduct4x8BitPackedUnsignedAccelerated;
6774     VkBool32              integerDotProduct4x8BitPackedSignedAccelerated;
6775     VkBool32              integerDotProduct4x8BitPackedMixedSignednessAccelerated;
6776     VkBool32              integerDotProduct16BitUnsignedAccelerated;
6777     VkBool32              integerDotProduct16BitSignedAccelerated;
6778     VkBool32              integerDotProduct16BitMixedSignednessAccelerated;
6779     VkBool32              integerDotProduct32BitUnsignedAccelerated;
6780     VkBool32              integerDotProduct32BitSignedAccelerated;
6781     VkBool32              integerDotProduct32BitMixedSignednessAccelerated;
6782     VkBool32              integerDotProduct64BitUnsignedAccelerated;
6783     VkBool32              integerDotProduct64BitSignedAccelerated;
6784     VkBool32              integerDotProduct64BitMixedSignednessAccelerated;
6785     VkBool32              integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
6786     VkBool32              integerDotProductAccumulatingSaturating8BitSignedAccelerated;
6787     VkBool32              integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
6788     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
6789     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
6790     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
6791     VkBool32              integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
6792     VkBool32              integerDotProductAccumulatingSaturating16BitSignedAccelerated;
6793     VkBool32              integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
6794     VkBool32              integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
6795     VkBool32              integerDotProductAccumulatingSaturating32BitSignedAccelerated;
6796     VkBool32              integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
6797     VkBool32              integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
6798     VkBool32              integerDotProductAccumulatingSaturating64BitSignedAccelerated;
6799     VkBool32              integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
6800     VkDeviceSize          storageTexelBufferOffsetAlignmentBytes;
6801     VkBool32              storageTexelBufferOffsetSingleTexelAlignment;
6802     VkDeviceSize          uniformTexelBufferOffsetAlignmentBytes;
6803     VkBool32              uniformTexelBufferOffsetSingleTexelAlignment;
6804     VkDeviceSize          maxBufferSize;
6805 } VkPhysicalDeviceVulkan13Properties;
6806 
6807 typedef struct VkPipelineCreationFeedback {
6808     VkPipelineCreationFeedbackFlags    flags;
6809     uint64_t                           duration;
6810 } VkPipelineCreationFeedback;
6811 
6812 typedef struct VkPipelineCreationFeedbackCreateInfo {
6813     VkStructureType                sType;
6814     const void*                    pNext;
6815     VkPipelineCreationFeedback*    pPipelineCreationFeedback;
6816     uint32_t                       pipelineStageCreationFeedbackCount;
6817     VkPipelineCreationFeedback*    pPipelineStageCreationFeedbacks;
6818 } VkPipelineCreationFeedbackCreateInfo;
6819 
6820 typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
6821     VkStructureType    sType;
6822     void*              pNext;
6823     VkBool32           shaderTerminateInvocation;
6824 } VkPhysicalDeviceShaderTerminateInvocationFeatures;
6825 
6826 typedef struct VkPhysicalDeviceToolProperties {
6827     VkStructureType       sType;
6828     void*                 pNext;
6829     char                  name[VK_MAX_EXTENSION_NAME_SIZE];
6830     char                  version[VK_MAX_EXTENSION_NAME_SIZE];
6831     VkToolPurposeFlags    purposes;
6832     char                  description[VK_MAX_DESCRIPTION_SIZE];
6833     char                  layer[VK_MAX_EXTENSION_NAME_SIZE];
6834 } VkPhysicalDeviceToolProperties;
6835 
6836 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
6837     VkStructureType    sType;
6838     void*              pNext;
6839     VkBool32           shaderDemoteToHelperInvocation;
6840 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
6841 
6842 typedef struct VkPhysicalDevicePrivateDataFeatures {
6843     VkStructureType    sType;
6844     void*              pNext;
6845     VkBool32           privateData;
6846 } VkPhysicalDevicePrivateDataFeatures;
6847 
6848 typedef struct VkDevicePrivateDataCreateInfo {
6849     VkStructureType    sType;
6850     const void*        pNext;
6851     uint32_t           privateDataSlotRequestCount;
6852 } VkDevicePrivateDataCreateInfo;
6853 
6854 typedef struct VkPrivateDataSlotCreateInfo {
6855     VkStructureType                 sType;
6856     const void*                     pNext;
6857     VkPrivateDataSlotCreateFlags    flags;
6858 } VkPrivateDataSlotCreateInfo;
6859 
6860 typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
6861     VkStructureType    sType;
6862     void*              pNext;
6863     VkBool32           pipelineCreationCacheControl;
6864 } VkPhysicalDevicePipelineCreationCacheControlFeatures;
6865 
6866 typedef struct VkMemoryBarrier2 {
6867     VkStructureType          sType;
6868     const void*              pNext;
6869     VkPipelineStageFlags2    srcStageMask;
6870     VkAccessFlags2           srcAccessMask;
6871     VkPipelineStageFlags2    dstStageMask;
6872     VkAccessFlags2           dstAccessMask;
6873 } VkMemoryBarrier2;
6874 
6875 typedef struct VkBufferMemoryBarrier2 {
6876     VkStructureType          sType;
6877     const void*              pNext;
6878     VkPipelineStageFlags2    srcStageMask;
6879     VkAccessFlags2           srcAccessMask;
6880     VkPipelineStageFlags2    dstStageMask;
6881     VkAccessFlags2           dstAccessMask;
6882     uint32_t                 srcQueueFamilyIndex;
6883     uint32_t                 dstQueueFamilyIndex;
6884     VkBuffer                 buffer;
6885     VkDeviceSize             offset;
6886     VkDeviceSize             size;
6887 } VkBufferMemoryBarrier2;
6888 
6889 typedef struct VkImageMemoryBarrier2 {
6890     VkStructureType            sType;
6891     const void*                pNext;
6892     VkPipelineStageFlags2      srcStageMask;
6893     VkAccessFlags2             srcAccessMask;
6894     VkPipelineStageFlags2      dstStageMask;
6895     VkAccessFlags2             dstAccessMask;
6896     VkImageLayout              oldLayout;
6897     VkImageLayout              newLayout;
6898     uint32_t                   srcQueueFamilyIndex;
6899     uint32_t                   dstQueueFamilyIndex;
6900     VkImage                    image;
6901     VkImageSubresourceRange    subresourceRange;
6902 } VkImageMemoryBarrier2;
6903 
6904 typedef struct VkDependencyInfo {
6905     VkStructureType                  sType;
6906     const void*                      pNext;
6907     VkDependencyFlags                dependencyFlags;
6908     uint32_t                         memoryBarrierCount;
6909     const VkMemoryBarrier2*          pMemoryBarriers;
6910     uint32_t                         bufferMemoryBarrierCount;
6911     const VkBufferMemoryBarrier2*    pBufferMemoryBarriers;
6912     uint32_t                         imageMemoryBarrierCount;
6913     const VkImageMemoryBarrier2*     pImageMemoryBarriers;
6914 } VkDependencyInfo;
6915 
6916 typedef struct VkSemaphoreSubmitInfo {
6917     VkStructureType          sType;
6918     const void*              pNext;
6919     VkSemaphore              semaphore;
6920     uint64_t                 value;
6921     VkPipelineStageFlags2    stageMask;
6922     uint32_t                 deviceIndex;
6923 } VkSemaphoreSubmitInfo;
6924 
6925 typedef struct VkCommandBufferSubmitInfo {
6926     VkStructureType    sType;
6927     const void*        pNext;
6928     VkCommandBuffer    commandBuffer;
6929     uint32_t           deviceMask;
6930 } VkCommandBufferSubmitInfo;
6931 
6932 typedef struct VkSubmitInfo2 {
6933     VkStructureType                     sType;
6934     const void*                         pNext;
6935     VkSubmitFlags                       flags;
6936     uint32_t                            waitSemaphoreInfoCount;
6937     const VkSemaphoreSubmitInfo*        pWaitSemaphoreInfos;
6938     uint32_t                            commandBufferInfoCount;
6939     const VkCommandBufferSubmitInfo*    pCommandBufferInfos;
6940     uint32_t                            signalSemaphoreInfoCount;
6941     const VkSemaphoreSubmitInfo*        pSignalSemaphoreInfos;
6942 } VkSubmitInfo2;
6943 
6944 typedef struct VkPhysicalDeviceSynchronization2Features {
6945     VkStructureType    sType;
6946     void*              pNext;
6947     VkBool32           synchronization2;
6948 } VkPhysicalDeviceSynchronization2Features;
6949 
6950 typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
6951     VkStructureType    sType;
6952     void*              pNext;
6953     VkBool32           shaderZeroInitializeWorkgroupMemory;
6954 } VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
6955 
6956 typedef struct VkPhysicalDeviceImageRobustnessFeatures {
6957     VkStructureType    sType;
6958     void*              pNext;
6959     VkBool32           robustImageAccess;
6960 } VkPhysicalDeviceImageRobustnessFeatures;
6961 
6962 typedef struct VkBufferCopy2 {
6963     VkStructureType    sType;
6964     const void*        pNext;
6965     VkDeviceSize       srcOffset;
6966     VkDeviceSize       dstOffset;
6967     VkDeviceSize       size;
6968 } VkBufferCopy2;
6969 
6970 typedef struct VkCopyBufferInfo2 {
6971     VkStructureType         sType;
6972     const void*             pNext;
6973     VkBuffer                srcBuffer;
6974     VkBuffer                dstBuffer;
6975     uint32_t                regionCount;
6976     const VkBufferCopy2*    pRegions;
6977 } VkCopyBufferInfo2;
6978 
6979 typedef struct VkImageCopy2 {
6980     VkStructureType             sType;
6981     const void*                 pNext;
6982     VkImageSubresourceLayers    srcSubresource;
6983     VkOffset3D                  srcOffset;
6984     VkImageSubresourceLayers    dstSubresource;
6985     VkOffset3D                  dstOffset;
6986     VkExtent3D                  extent;
6987 } VkImageCopy2;
6988 
6989 typedef struct VkCopyImageInfo2 {
6990     VkStructureType        sType;
6991     const void*            pNext;
6992     VkImage                srcImage;
6993     VkImageLayout          srcImageLayout;
6994     VkImage                dstImage;
6995     VkImageLayout          dstImageLayout;
6996     uint32_t               regionCount;
6997     const VkImageCopy2*    pRegions;
6998 } VkCopyImageInfo2;
6999 
7000 typedef struct VkBufferImageCopy2 {
7001     VkStructureType             sType;
7002     const void*                 pNext;
7003     VkDeviceSize                bufferOffset;
7004     uint32_t                    bufferRowLength;
7005     uint32_t                    bufferImageHeight;
7006     VkImageSubresourceLayers    imageSubresource;
7007     VkOffset3D                  imageOffset;
7008     VkExtent3D                  imageExtent;
7009 } VkBufferImageCopy2;
7010 
7011 typedef struct VkCopyBufferToImageInfo2 {
7012     VkStructureType              sType;
7013     const void*                  pNext;
7014     VkBuffer                     srcBuffer;
7015     VkImage                      dstImage;
7016     VkImageLayout                dstImageLayout;
7017     uint32_t                     regionCount;
7018     const VkBufferImageCopy2*    pRegions;
7019 } VkCopyBufferToImageInfo2;
7020 
7021 typedef struct VkCopyImageToBufferInfo2 {
7022     VkStructureType              sType;
7023     const void*                  pNext;
7024     VkImage                      srcImage;
7025     VkImageLayout                srcImageLayout;
7026     VkBuffer                     dstBuffer;
7027     uint32_t                     regionCount;
7028     const VkBufferImageCopy2*    pRegions;
7029 } VkCopyImageToBufferInfo2;
7030 
7031 typedef struct VkImageBlit2 {
7032     VkStructureType             sType;
7033     const void*                 pNext;
7034     VkImageSubresourceLayers    srcSubresource;
7035     VkOffset3D                  srcOffsets[2];
7036     VkImageSubresourceLayers    dstSubresource;
7037     VkOffset3D                  dstOffsets[2];
7038 } VkImageBlit2;
7039 
7040 typedef struct VkBlitImageInfo2 {
7041     VkStructureType        sType;
7042     const void*            pNext;
7043     VkImage                srcImage;
7044     VkImageLayout          srcImageLayout;
7045     VkImage                dstImage;
7046     VkImageLayout          dstImageLayout;
7047     uint32_t               regionCount;
7048     const VkImageBlit2*    pRegions;
7049     VkFilter               filter;
7050 } VkBlitImageInfo2;
7051 
7052 typedef struct VkImageResolve2 {
7053     VkStructureType             sType;
7054     const void*                 pNext;
7055     VkImageSubresourceLayers    srcSubresource;
7056     VkOffset3D                  srcOffset;
7057     VkImageSubresourceLayers    dstSubresource;
7058     VkOffset3D                  dstOffset;
7059     VkExtent3D                  extent;
7060 } VkImageResolve2;
7061 
7062 typedef struct VkResolveImageInfo2 {
7063     VkStructureType           sType;
7064     const void*               pNext;
7065     VkImage                   srcImage;
7066     VkImageLayout             srcImageLayout;
7067     VkImage                   dstImage;
7068     VkImageLayout             dstImageLayout;
7069     uint32_t                  regionCount;
7070     const VkImageResolve2*    pRegions;
7071 } VkResolveImageInfo2;
7072 
7073 typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7074     VkStructureType    sType;
7075     void*              pNext;
7076     VkBool32           subgroupSizeControl;
7077     VkBool32           computeFullSubgroups;
7078 } VkPhysicalDeviceSubgroupSizeControlFeatures;
7079 
7080 typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7081     VkStructureType       sType;
7082     void*                 pNext;
7083     uint32_t              minSubgroupSize;
7084     uint32_t              maxSubgroupSize;
7085     uint32_t              maxComputeWorkgroupSubgroups;
7086     VkShaderStageFlags    requiredSubgroupSizeStages;
7087 } VkPhysicalDeviceSubgroupSizeControlProperties;
7088 
7089 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7090     VkStructureType    sType;
7091     void*              pNext;
7092     uint32_t           requiredSubgroupSize;
7093 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7094 
7095 typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7096     VkStructureType    sType;
7097     void*              pNext;
7098     VkBool32           inlineUniformBlock;
7099     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
7100 } VkPhysicalDeviceInlineUniformBlockFeatures;
7101 
7102 typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7103     VkStructureType    sType;
7104     void*              pNext;
7105     uint32_t           maxInlineUniformBlockSize;
7106     uint32_t           maxPerStageDescriptorInlineUniformBlocks;
7107     uint32_t           maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7108     uint32_t           maxDescriptorSetInlineUniformBlocks;
7109     uint32_t           maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7110 } VkPhysicalDeviceInlineUniformBlockProperties;
7111 
7112 typedef struct VkWriteDescriptorSetInlineUniformBlock {
7113     VkStructureType    sType;
7114     const void*        pNext;
7115     uint32_t           dataSize;
7116     const void*        pData;
7117 } VkWriteDescriptorSetInlineUniformBlock;
7118 
7119 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7120     VkStructureType    sType;
7121     const void*        pNext;
7122     uint32_t           maxInlineUniformBlockBindings;
7123 } VkDescriptorPoolInlineUniformBlockCreateInfo;
7124 
7125 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7126     VkStructureType    sType;
7127     void*              pNext;
7128     VkBool32           textureCompressionASTC_HDR;
7129 } VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7130 
7131 typedef struct VkRenderingAttachmentInfo {
7132     VkStructureType          sType;
7133     const void*              pNext;
7134     VkImageView              imageView;
7135     VkImageLayout            imageLayout;
7136     VkResolveModeFlagBits    resolveMode;
7137     VkImageView              resolveImageView;
7138     VkImageLayout            resolveImageLayout;
7139     VkAttachmentLoadOp       loadOp;
7140     VkAttachmentStoreOp      storeOp;
7141     VkClearValue             clearValue;
7142 } VkRenderingAttachmentInfo;
7143 
7144 typedef struct VkRenderingInfo {
7145     VkStructureType                     sType;
7146     const void*                         pNext;
7147     VkRenderingFlags                    flags;
7148     VkRect2D                            renderArea;
7149     uint32_t                            layerCount;
7150     uint32_t                            viewMask;
7151     uint32_t                            colorAttachmentCount;
7152     const VkRenderingAttachmentInfo*    pColorAttachments;
7153     const VkRenderingAttachmentInfo*    pDepthAttachment;
7154     const VkRenderingAttachmentInfo*    pStencilAttachment;
7155 } VkRenderingInfo;
7156 
7157 typedef struct VkPipelineRenderingCreateInfo {
7158     VkStructureType    sType;
7159     const void*        pNext;
7160     uint32_t           viewMask;
7161     uint32_t           colorAttachmentCount;
7162     const VkFormat*    pColorAttachmentFormats;
7163     VkFormat           depthAttachmentFormat;
7164     VkFormat           stencilAttachmentFormat;
7165 } VkPipelineRenderingCreateInfo;
7166 
7167 typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7168     VkStructureType    sType;
7169     void*              pNext;
7170     VkBool32           dynamicRendering;
7171 } VkPhysicalDeviceDynamicRenderingFeatures;
7172 
7173 typedef struct VkCommandBufferInheritanceRenderingInfo {
7174     VkStructureType          sType;
7175     const void*              pNext;
7176     VkRenderingFlags         flags;
7177     uint32_t                 viewMask;
7178     uint32_t                 colorAttachmentCount;
7179     const VkFormat*          pColorAttachmentFormats;
7180     VkFormat                 depthAttachmentFormat;
7181     VkFormat                 stencilAttachmentFormat;
7182     VkSampleCountFlagBits    rasterizationSamples;
7183 } VkCommandBufferInheritanceRenderingInfo;
7184 
7185 typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7186     VkStructureType    sType;
7187     void*              pNext;
7188     VkBool32           shaderIntegerDotProduct;
7189 } VkPhysicalDeviceShaderIntegerDotProductFeatures;
7190 
7191 typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
7192     VkStructureType    sType;
7193     void*              pNext;
7194     VkBool32           integerDotProduct8BitUnsignedAccelerated;
7195     VkBool32           integerDotProduct8BitSignedAccelerated;
7196     VkBool32           integerDotProduct8BitMixedSignednessAccelerated;
7197     VkBool32           integerDotProduct4x8BitPackedUnsignedAccelerated;
7198     VkBool32           integerDotProduct4x8BitPackedSignedAccelerated;
7199     VkBool32           integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7200     VkBool32           integerDotProduct16BitUnsignedAccelerated;
7201     VkBool32           integerDotProduct16BitSignedAccelerated;
7202     VkBool32           integerDotProduct16BitMixedSignednessAccelerated;
7203     VkBool32           integerDotProduct32BitUnsignedAccelerated;
7204     VkBool32           integerDotProduct32BitSignedAccelerated;
7205     VkBool32           integerDotProduct32BitMixedSignednessAccelerated;
7206     VkBool32           integerDotProduct64BitUnsignedAccelerated;
7207     VkBool32           integerDotProduct64BitSignedAccelerated;
7208     VkBool32           integerDotProduct64BitMixedSignednessAccelerated;
7209     VkBool32           integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7210     VkBool32           integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7211     VkBool32           integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7212     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7213     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7214     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7215     VkBool32           integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7216     VkBool32           integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7217     VkBool32           integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7218     VkBool32           integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7219     VkBool32           integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7220     VkBool32           integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7221     VkBool32           integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7222     VkBool32           integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7223     VkBool32           integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7224 } VkPhysicalDeviceShaderIntegerDotProductProperties;
7225 
7226 typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
7227     VkStructureType    sType;
7228     void*              pNext;
7229     VkDeviceSize       storageTexelBufferOffsetAlignmentBytes;
7230     VkBool32           storageTexelBufferOffsetSingleTexelAlignment;
7231     VkDeviceSize       uniformTexelBufferOffsetAlignmentBytes;
7232     VkBool32           uniformTexelBufferOffsetSingleTexelAlignment;
7233 } VkPhysicalDeviceTexelBufferAlignmentProperties;
7234 
7235 typedef struct VkFormatProperties3 {
7236     VkStructureType          sType;
7237     void*                    pNext;
7238     VkFormatFeatureFlags2    linearTilingFeatures;
7239     VkFormatFeatureFlags2    optimalTilingFeatures;
7240     VkFormatFeatureFlags2    bufferFeatures;
7241 } VkFormatProperties3;
7242 
7243 typedef struct VkPhysicalDeviceMaintenance4Features {
7244     VkStructureType    sType;
7245     void*              pNext;
7246     VkBool32           maintenance4;
7247 } VkPhysicalDeviceMaintenance4Features;
7248 
7249 typedef struct VkPhysicalDeviceMaintenance4Properties {
7250     VkStructureType    sType;
7251     void*              pNext;
7252     VkDeviceSize       maxBufferSize;
7253 } VkPhysicalDeviceMaintenance4Properties;
7254 
7255 typedef struct VkDeviceBufferMemoryRequirements {
7256     VkStructureType              sType;
7257     const void*                  pNext;
7258     const VkBufferCreateInfo*    pCreateInfo;
7259 } VkDeviceBufferMemoryRequirements;
7260 
7261 typedef struct VkDeviceImageMemoryRequirements {
7262     VkStructureType             sType;
7263     const void*                 pNext;
7264     const VkImageCreateInfo*    pCreateInfo;
7265     VkImageAspectFlagBits       planeAspect;
7266 } VkDeviceImageMemoryRequirements;
7267 
7268 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
7269 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
7270 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
7271 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
7272 typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
7273 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
7274 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
7275 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
7276 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
7277 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
7278 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
7279 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
7280 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
7281 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7282 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7283 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
7284 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
7285 typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
7286 typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer                   commandBuffer);
7287 typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
7288 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
7289 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
7290 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
7291 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
7292 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
7293 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
7294 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
7295 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
7296 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
7297 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
7298 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
7299 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
7300 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
7301 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
7302 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7303 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7304 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7305 
7306 #ifndef VK_NO_PROTOTYPES
7307 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
7308     VkPhysicalDevice                            physicalDevice,
7309     uint32_t*                                   pToolCount,
7310     VkPhysicalDeviceToolProperties*             pToolProperties);
7311 
7312 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
7313     VkDevice                                    device,
7314     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
7315     const VkAllocationCallbacks*                pAllocator,
7316     VkPrivateDataSlot*                          pPrivateDataSlot);
7317 
7318 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
7319     VkDevice                                    device,
7320     VkPrivateDataSlot                           privateDataSlot,
7321     const VkAllocationCallbacks*                pAllocator);
7322 
7323 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
7324     VkDevice                                    device,
7325     VkObjectType                                objectType,
7326     uint64_t                                    objectHandle,
7327     VkPrivateDataSlot                           privateDataSlot,
7328     uint64_t                                    data);
7329 
7330 VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
7331     VkDevice                                    device,
7332     VkObjectType                                objectType,
7333     uint64_t                                    objectHandle,
7334     VkPrivateDataSlot                           privateDataSlot,
7335     uint64_t*                                   pData);
7336 
7337 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
7338     VkCommandBuffer                             commandBuffer,
7339     VkEvent                                     event,
7340     const VkDependencyInfo*                     pDependencyInfo);
7341 
7342 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
7343     VkCommandBuffer                             commandBuffer,
7344     VkEvent                                     event,
7345     VkPipelineStageFlags2                       stageMask);
7346 
7347 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
7348     VkCommandBuffer                             commandBuffer,
7349     uint32_t                                    eventCount,
7350     const VkEvent*                              pEvents,
7351     const VkDependencyInfo*                     pDependencyInfos);
7352 
7353 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
7354     VkCommandBuffer                             commandBuffer,
7355     const VkDependencyInfo*                     pDependencyInfo);
7356 
7357 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
7358     VkCommandBuffer                             commandBuffer,
7359     VkPipelineStageFlags2                       stage,
7360     VkQueryPool                                 queryPool,
7361     uint32_t                                    query);
7362 
7363 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
7364     VkQueue                                     queue,
7365     uint32_t                                    submitCount,
7366     const VkSubmitInfo2*                        pSubmits,
7367     VkFence                                     fence);
7368 
7369 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
7370     VkCommandBuffer                             commandBuffer,
7371     const VkCopyBufferInfo2*                    pCopyBufferInfo);
7372 
7373 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
7374     VkCommandBuffer                             commandBuffer,
7375     const VkCopyImageInfo2*                     pCopyImageInfo);
7376 
7377 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
7378     VkCommandBuffer                             commandBuffer,
7379     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
7380 
7381 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
7382     VkCommandBuffer                             commandBuffer,
7383     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
7384 
7385 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
7386     VkCommandBuffer                             commandBuffer,
7387     const VkBlitImageInfo2*                     pBlitImageInfo);
7388 
7389 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
7390     VkCommandBuffer                             commandBuffer,
7391     const VkResolveImageInfo2*                  pResolveImageInfo);
7392 
7393 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
7394     VkCommandBuffer                             commandBuffer,
7395     const VkRenderingInfo*                      pRenderingInfo);
7396 
7397 VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
7398     VkCommandBuffer                             commandBuffer);
7399 
7400 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
7401     VkCommandBuffer                             commandBuffer,
7402     VkCullModeFlags                             cullMode);
7403 
7404 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
7405     VkCommandBuffer                             commandBuffer,
7406     VkFrontFace                                 frontFace);
7407 
7408 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
7409     VkCommandBuffer                             commandBuffer,
7410     VkPrimitiveTopology                         primitiveTopology);
7411 
7412 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
7413     VkCommandBuffer                             commandBuffer,
7414     uint32_t                                    viewportCount,
7415     const VkViewport*                           pViewports);
7416 
7417 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
7418     VkCommandBuffer                             commandBuffer,
7419     uint32_t                                    scissorCount,
7420     const VkRect2D*                             pScissors);
7421 
7422 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
7423     VkCommandBuffer                             commandBuffer,
7424     uint32_t                                    firstBinding,
7425     uint32_t                                    bindingCount,
7426     const VkBuffer*                             pBuffers,
7427     const VkDeviceSize*                         pOffsets,
7428     const VkDeviceSize*                         pSizes,
7429     const VkDeviceSize*                         pStrides);
7430 
7431 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
7432     VkCommandBuffer                             commandBuffer,
7433     VkBool32                                    depthTestEnable);
7434 
7435 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
7436     VkCommandBuffer                             commandBuffer,
7437     VkBool32                                    depthWriteEnable);
7438 
7439 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
7440     VkCommandBuffer                             commandBuffer,
7441     VkCompareOp                                 depthCompareOp);
7442 
7443 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
7444     VkCommandBuffer                             commandBuffer,
7445     VkBool32                                    depthBoundsTestEnable);
7446 
7447 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
7448     VkCommandBuffer                             commandBuffer,
7449     VkBool32                                    stencilTestEnable);
7450 
7451 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
7452     VkCommandBuffer                             commandBuffer,
7453     VkStencilFaceFlags                          faceMask,
7454     VkStencilOp                                 failOp,
7455     VkStencilOp                                 passOp,
7456     VkStencilOp                                 depthFailOp,
7457     VkCompareOp                                 compareOp);
7458 
7459 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
7460     VkCommandBuffer                             commandBuffer,
7461     VkBool32                                    rasterizerDiscardEnable);
7462 
7463 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
7464     VkCommandBuffer                             commandBuffer,
7465     VkBool32                                    depthBiasEnable);
7466 
7467 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
7468     VkCommandBuffer                             commandBuffer,
7469     VkBool32                                    primitiveRestartEnable);
7470 
7471 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
7472     VkDevice                                    device,
7473     const VkDeviceBufferMemoryRequirements*     pInfo,
7474     VkMemoryRequirements2*                      pMemoryRequirements);
7475 
7476 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
7477     VkDevice                                    device,
7478     const VkDeviceImageMemoryRequirements*      pInfo,
7479     VkMemoryRequirements2*                      pMemoryRequirements);
7480 
7481 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
7482     VkDevice                                    device,
7483     const VkDeviceImageMemoryRequirements*      pInfo,
7484     uint32_t*                                   pSparseMemoryRequirementCount,
7485     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
7486 #endif
7487 
7488 
7489 #define VK_KHR_surface 1
7490 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
7491 #define VK_KHR_SURFACE_SPEC_VERSION       25
7492 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
7493 
7494 typedef enum VkPresentModeKHR {
7495     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
7496     VK_PRESENT_MODE_MAILBOX_KHR = 1,
7497     VK_PRESENT_MODE_FIFO_KHR = 2,
7498     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
7499     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
7500     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
7501     VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
7502 } VkPresentModeKHR;
7503 
7504 typedef enum VkColorSpaceKHR {
7505     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
7506     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
7507     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
7508     VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
7509     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
7510     VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
7511     VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
7512     VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
7513     VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
7514     VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
7515     VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
7516     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
7517     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
7518     VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
7519     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
7520     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
7521     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
7522     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
7523     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
7524 } VkColorSpaceKHR;
7525 
7526 typedef enum VkSurfaceTransformFlagBitsKHR {
7527     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
7528     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
7529     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
7530     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
7531     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
7532     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
7533     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
7534     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
7535     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
7536     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7537 } VkSurfaceTransformFlagBitsKHR;
7538 
7539 typedef enum VkCompositeAlphaFlagBitsKHR {
7540     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
7541     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
7542     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
7543     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
7544     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7545 } VkCompositeAlphaFlagBitsKHR;
7546 typedef VkFlags VkCompositeAlphaFlagsKHR;
7547 typedef VkFlags VkSurfaceTransformFlagsKHR;
7548 typedef struct VkSurfaceCapabilitiesKHR {
7549     uint32_t                         minImageCount;
7550     uint32_t                         maxImageCount;
7551     VkExtent2D                       currentExtent;
7552     VkExtent2D                       minImageExtent;
7553     VkExtent2D                       maxImageExtent;
7554     uint32_t                         maxImageArrayLayers;
7555     VkSurfaceTransformFlagsKHR       supportedTransforms;
7556     VkSurfaceTransformFlagBitsKHR    currentTransform;
7557     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
7558     VkImageUsageFlags                supportedUsageFlags;
7559 } VkSurfaceCapabilitiesKHR;
7560 
7561 typedef struct VkSurfaceFormatKHR {
7562     VkFormat           format;
7563     VkColorSpaceKHR    colorSpace;
7564 } VkSurfaceFormatKHR;
7565 
7566 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
7567 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
7568 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
7569 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
7570 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
7571 
7572 #ifndef VK_NO_PROTOTYPES
7573 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
7574     VkInstance                                  instance,
7575     VkSurfaceKHR                                surface,
7576     const VkAllocationCallbacks*                pAllocator);
7577 
7578 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
7579     VkPhysicalDevice                            physicalDevice,
7580     uint32_t                                    queueFamilyIndex,
7581     VkSurfaceKHR                                surface,
7582     VkBool32*                                   pSupported);
7583 
7584 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
7585     VkPhysicalDevice                            physicalDevice,
7586     VkSurfaceKHR                                surface,
7587     VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
7588 
7589 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
7590     VkPhysicalDevice                            physicalDevice,
7591     VkSurfaceKHR                                surface,
7592     uint32_t*                                   pSurfaceFormatCount,
7593     VkSurfaceFormatKHR*                         pSurfaceFormats);
7594 
7595 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
7596     VkPhysicalDevice                            physicalDevice,
7597     VkSurfaceKHR                                surface,
7598     uint32_t*                                   pPresentModeCount,
7599     VkPresentModeKHR*                           pPresentModes);
7600 #endif
7601 
7602 
7603 #define VK_KHR_swapchain 1
7604 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
7605 #define VK_KHR_SWAPCHAIN_SPEC_VERSION     70
7606 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
7607 
7608 typedef enum VkSwapchainCreateFlagBitsKHR {
7609     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
7610     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
7611     VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
7612     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7613 } VkSwapchainCreateFlagBitsKHR;
7614 typedef VkFlags VkSwapchainCreateFlagsKHR;
7615 
7616 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
7617     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
7618     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
7619     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
7620     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
7621     VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7622 } VkDeviceGroupPresentModeFlagBitsKHR;
7623 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
7624 typedef struct VkSwapchainCreateInfoKHR {
7625     VkStructureType                  sType;
7626     const void*                      pNext;
7627     VkSwapchainCreateFlagsKHR        flags;
7628     VkSurfaceKHR                     surface;
7629     uint32_t                         minImageCount;
7630     VkFormat                         imageFormat;
7631     VkColorSpaceKHR                  imageColorSpace;
7632     VkExtent2D                       imageExtent;
7633     uint32_t                         imageArrayLayers;
7634     VkImageUsageFlags                imageUsage;
7635     VkSharingMode                    imageSharingMode;
7636     uint32_t                         queueFamilyIndexCount;
7637     const uint32_t*                  pQueueFamilyIndices;
7638     VkSurfaceTransformFlagBitsKHR    preTransform;
7639     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
7640     VkPresentModeKHR                 presentMode;
7641     VkBool32                         clipped;
7642     VkSwapchainKHR                   oldSwapchain;
7643 } VkSwapchainCreateInfoKHR;
7644 
7645 typedef struct VkPresentInfoKHR {
7646     VkStructureType          sType;
7647     const void*              pNext;
7648     uint32_t                 waitSemaphoreCount;
7649     const VkSemaphore*       pWaitSemaphores;
7650     uint32_t                 swapchainCount;
7651     const VkSwapchainKHR*    pSwapchains;
7652     const uint32_t*          pImageIndices;
7653     VkResult*                pResults;
7654 } VkPresentInfoKHR;
7655 
7656 typedef struct VkImageSwapchainCreateInfoKHR {
7657     VkStructureType    sType;
7658     const void*        pNext;
7659     VkSwapchainKHR     swapchain;
7660 } VkImageSwapchainCreateInfoKHR;
7661 
7662 typedef struct VkBindImageMemorySwapchainInfoKHR {
7663     VkStructureType    sType;
7664     const void*        pNext;
7665     VkSwapchainKHR     swapchain;
7666     uint32_t           imageIndex;
7667 } VkBindImageMemorySwapchainInfoKHR;
7668 
7669 typedef struct VkAcquireNextImageInfoKHR {
7670     VkStructureType    sType;
7671     const void*        pNext;
7672     VkSwapchainKHR     swapchain;
7673     uint64_t           timeout;
7674     VkSemaphore        semaphore;
7675     VkFence            fence;
7676     uint32_t           deviceMask;
7677 } VkAcquireNextImageInfoKHR;
7678 
7679 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
7680     VkStructureType                     sType;
7681     void*                               pNext;
7682     uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE];
7683     VkDeviceGroupPresentModeFlagsKHR    modes;
7684 } VkDeviceGroupPresentCapabilitiesKHR;
7685 
7686 typedef struct VkDeviceGroupPresentInfoKHR {
7687     VkStructureType                        sType;
7688     const void*                            pNext;
7689     uint32_t                               swapchainCount;
7690     const uint32_t*                        pDeviceMasks;
7691     VkDeviceGroupPresentModeFlagBitsKHR    mode;
7692 } VkDeviceGroupPresentInfoKHR;
7693 
7694 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
7695     VkStructureType                     sType;
7696     const void*                         pNext;
7697     VkDeviceGroupPresentModeFlagsKHR    modes;
7698 } VkDeviceGroupSwapchainCreateInfoKHR;
7699 
7700 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
7701 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
7702 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
7703 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
7704 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
7705 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
7706 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
7707 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
7708 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
7709 
7710 #ifndef VK_NO_PROTOTYPES
7711 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
7712     VkDevice                                    device,
7713     const VkSwapchainCreateInfoKHR*             pCreateInfo,
7714     const VkAllocationCallbacks*                pAllocator,
7715     VkSwapchainKHR*                             pSwapchain);
7716 
7717 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
7718     VkDevice                                    device,
7719     VkSwapchainKHR                              swapchain,
7720     const VkAllocationCallbacks*                pAllocator);
7721 
7722 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
7723     VkDevice                                    device,
7724     VkSwapchainKHR                              swapchain,
7725     uint32_t*                                   pSwapchainImageCount,
7726     VkImage*                                    pSwapchainImages);
7727 
7728 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
7729     VkDevice                                    device,
7730     VkSwapchainKHR                              swapchain,
7731     uint64_t                                    timeout,
7732     VkSemaphore                                 semaphore,
7733     VkFence                                     fence,
7734     uint32_t*                                   pImageIndex);
7735 
7736 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
7737     VkQueue                                     queue,
7738     const VkPresentInfoKHR*                     pPresentInfo);
7739 
7740 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
7741     VkDevice                                    device,
7742     VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
7743 
7744 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
7745     VkDevice                                    device,
7746     VkSurfaceKHR                                surface,
7747     VkDeviceGroupPresentModeFlagsKHR*           pModes);
7748 
7749 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
7750     VkPhysicalDevice                            physicalDevice,
7751     VkSurfaceKHR                                surface,
7752     uint32_t*                                   pRectCount,
7753     VkRect2D*                                   pRects);
7754 
7755 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
7756     VkDevice                                    device,
7757     const VkAcquireNextImageInfoKHR*            pAcquireInfo,
7758     uint32_t*                                   pImageIndex);
7759 #endif
7760 
7761 
7762 #define VK_KHR_display 1
7763 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
7764 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
7765 #define VK_KHR_DISPLAY_SPEC_VERSION       23
7766 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
7767 typedef VkFlags VkDisplayModeCreateFlagsKHR;
7768 
7769 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
7770     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
7771     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
7772     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
7773     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
7774     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7775 } VkDisplayPlaneAlphaFlagBitsKHR;
7776 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
7777 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
7778 typedef struct VkDisplayModeParametersKHR {
7779     VkExtent2D    visibleRegion;
7780     uint32_t      refreshRate;
7781 } VkDisplayModeParametersKHR;
7782 
7783 typedef struct VkDisplayModeCreateInfoKHR {
7784     VkStructureType                sType;
7785     const void*                    pNext;
7786     VkDisplayModeCreateFlagsKHR    flags;
7787     VkDisplayModeParametersKHR     parameters;
7788 } VkDisplayModeCreateInfoKHR;
7789 
7790 typedef struct VkDisplayModePropertiesKHR {
7791     VkDisplayModeKHR              displayMode;
7792     VkDisplayModeParametersKHR    parameters;
7793 } VkDisplayModePropertiesKHR;
7794 
7795 typedef struct VkDisplayPlaneCapabilitiesKHR {
7796     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
7797     VkOffset2D                     minSrcPosition;
7798     VkOffset2D                     maxSrcPosition;
7799     VkExtent2D                     minSrcExtent;
7800     VkExtent2D                     maxSrcExtent;
7801     VkOffset2D                     minDstPosition;
7802     VkOffset2D                     maxDstPosition;
7803     VkExtent2D                     minDstExtent;
7804     VkExtent2D                     maxDstExtent;
7805 } VkDisplayPlaneCapabilitiesKHR;
7806 
7807 typedef struct VkDisplayPlanePropertiesKHR {
7808     VkDisplayKHR    currentDisplay;
7809     uint32_t        currentStackIndex;
7810 } VkDisplayPlanePropertiesKHR;
7811 
7812 typedef struct VkDisplayPropertiesKHR {
7813     VkDisplayKHR                  display;
7814     const char*                   displayName;
7815     VkExtent2D                    physicalDimensions;
7816     VkExtent2D                    physicalResolution;
7817     VkSurfaceTransformFlagsKHR    supportedTransforms;
7818     VkBool32                      planeReorderPossible;
7819     VkBool32                      persistentContent;
7820 } VkDisplayPropertiesKHR;
7821 
7822 typedef struct VkDisplaySurfaceCreateInfoKHR {
7823     VkStructureType                   sType;
7824     const void*                       pNext;
7825     VkDisplaySurfaceCreateFlagsKHR    flags;
7826     VkDisplayModeKHR                  displayMode;
7827     uint32_t                          planeIndex;
7828     uint32_t                          planeStackIndex;
7829     VkSurfaceTransformFlagBitsKHR     transform;
7830     float                             globalAlpha;
7831     VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
7832     VkExtent2D                        imageExtent;
7833 } VkDisplaySurfaceCreateInfoKHR;
7834 
7835 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
7836 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
7837 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
7838 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
7839 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
7840 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
7841 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
7842 
7843 #ifndef VK_NO_PROTOTYPES
7844 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
7845     VkPhysicalDevice                            physicalDevice,
7846     uint32_t*                                   pPropertyCount,
7847     VkDisplayPropertiesKHR*                     pProperties);
7848 
7849 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
7850     VkPhysicalDevice                            physicalDevice,
7851     uint32_t*                                   pPropertyCount,
7852     VkDisplayPlanePropertiesKHR*                pProperties);
7853 
7854 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
7855     VkPhysicalDevice                            physicalDevice,
7856     uint32_t                                    planeIndex,
7857     uint32_t*                                   pDisplayCount,
7858     VkDisplayKHR*                               pDisplays);
7859 
7860 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
7861     VkPhysicalDevice                            physicalDevice,
7862     VkDisplayKHR                                display,
7863     uint32_t*                                   pPropertyCount,
7864     VkDisplayModePropertiesKHR*                 pProperties);
7865 
7866 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
7867     VkPhysicalDevice                            physicalDevice,
7868     VkDisplayKHR                                display,
7869     const VkDisplayModeCreateInfoKHR*           pCreateInfo,
7870     const VkAllocationCallbacks*                pAllocator,
7871     VkDisplayModeKHR*                           pMode);
7872 
7873 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
7874     VkPhysicalDevice                            physicalDevice,
7875     VkDisplayModeKHR                            mode,
7876     uint32_t                                    planeIndex,
7877     VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
7878 
7879 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
7880     VkInstance                                  instance,
7881     const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
7882     const VkAllocationCallbacks*                pAllocator,
7883     VkSurfaceKHR*                               pSurface);
7884 #endif
7885 
7886 
7887 #define VK_KHR_display_swapchain 1
7888 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
7889 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
7890 typedef struct VkDisplayPresentInfoKHR {
7891     VkStructureType    sType;
7892     const void*        pNext;
7893     VkRect2D           srcRect;
7894     VkRect2D           dstRect;
7895     VkBool32           persistent;
7896 } VkDisplayPresentInfoKHR;
7897 
7898 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
7899 
7900 #ifndef VK_NO_PROTOTYPES
7901 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
7902     VkDevice                                    device,
7903     uint32_t                                    swapchainCount,
7904     const VkSwapchainCreateInfoKHR*             pCreateInfos,
7905     const VkAllocationCallbacks*                pAllocator,
7906     VkSwapchainKHR*                             pSwapchains);
7907 #endif
7908 
7909 
7910 #define VK_KHR_sampler_mirror_clamp_to_edge 1
7911 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
7912 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
7913 
7914 
7915 #define VK_KHR_dynamic_rendering 1
7916 #define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
7917 #define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
7918 typedef VkRenderingFlags VkRenderingFlagsKHR;
7919 
7920 typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
7921 
7922 typedef VkRenderingInfo VkRenderingInfoKHR;
7923 
7924 typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
7925 
7926 typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
7927 
7928 typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
7929 
7930 typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
7931 
7932 typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
7933     VkStructureType    sType;
7934     const void*        pNext;
7935     VkImageView        imageView;
7936     VkImageLayout      imageLayout;
7937     VkExtent2D         shadingRateAttachmentTexelSize;
7938 } VkRenderingFragmentShadingRateAttachmentInfoKHR;
7939 
7940 typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
7941     VkStructureType    sType;
7942     const void*        pNext;
7943     VkImageView        imageView;
7944     VkImageLayout      imageLayout;
7945 } VkRenderingFragmentDensityMapAttachmentInfoEXT;
7946 
7947 typedef struct VkAttachmentSampleCountInfoAMD {
7948     VkStructureType                 sType;
7949     const void*                     pNext;
7950     uint32_t                        colorAttachmentCount;
7951     const VkSampleCountFlagBits*    pColorAttachmentSamples;
7952     VkSampleCountFlagBits           depthStencilAttachmentSamples;
7953 } VkAttachmentSampleCountInfoAMD;
7954 
7955 typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
7956 
7957 typedef struct VkMultiviewPerViewAttributesInfoNVX {
7958     VkStructureType    sType;
7959     const void*        pNext;
7960     VkBool32           perViewAttributes;
7961     VkBool32           perViewAttributesPositionXOnly;
7962 } VkMultiviewPerViewAttributesInfoNVX;
7963 
7964 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
7965 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer                   commandBuffer);
7966 
7967 #ifndef VK_NO_PROTOTYPES
7968 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
7969     VkCommandBuffer                             commandBuffer,
7970     const VkRenderingInfo*                      pRenderingInfo);
7971 
7972 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
7973     VkCommandBuffer                             commandBuffer);
7974 #endif
7975 
7976 
7977 #define VK_KHR_multiview 1
7978 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
7979 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
7980 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
7981 
7982 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
7983 
7984 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
7985 
7986 
7987 
7988 #define VK_KHR_get_physical_device_properties2 1
7989 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
7990 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
7991 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
7992 
7993 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
7994 
7995 typedef VkFormatProperties2 VkFormatProperties2KHR;
7996 
7997 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
7998 
7999 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
8000 
8001 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
8002 
8003 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
8004 
8005 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
8006 
8007 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
8008 
8009 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
8010 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
8011 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
8012 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
8013 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
8014 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
8015 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
8016 
8017 #ifndef VK_NO_PROTOTYPES
8018 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
8019     VkPhysicalDevice                            physicalDevice,
8020     VkPhysicalDeviceFeatures2*                  pFeatures);
8021 
8022 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
8023     VkPhysicalDevice                            physicalDevice,
8024     VkPhysicalDeviceProperties2*                pProperties);
8025 
8026 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
8027     VkPhysicalDevice                            physicalDevice,
8028     VkFormat                                    format,
8029     VkFormatProperties2*                        pFormatProperties);
8030 
8031 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
8032     VkPhysicalDevice                            physicalDevice,
8033     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
8034     VkImageFormatProperties2*                   pImageFormatProperties);
8035 
8036 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
8037     VkPhysicalDevice                            physicalDevice,
8038     uint32_t*                                   pQueueFamilyPropertyCount,
8039     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
8040 
8041 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
8042     VkPhysicalDevice                            physicalDevice,
8043     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
8044 
8045 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
8046     VkPhysicalDevice                            physicalDevice,
8047     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
8048     uint32_t*                                   pPropertyCount,
8049     VkSparseImageFormatProperties2*             pProperties);
8050 #endif
8051 
8052 
8053 #define VK_KHR_device_group 1
8054 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  4
8055 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
8056 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
8057 
8058 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
8059 
8060 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
8061 
8062 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
8063 
8064 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
8065 
8066 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
8067 
8068 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
8069 
8070 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
8071 
8072 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
8073 
8074 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
8075 
8076 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
8077 
8078 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
8079 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
8080 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);
8081 
8082 #ifndef VK_NO_PROTOTYPES
8083 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
8084     VkDevice                                    device,
8085     uint32_t                                    heapIndex,
8086     uint32_t                                    localDeviceIndex,
8087     uint32_t                                    remoteDeviceIndex,
8088     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
8089 
8090 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
8091     VkCommandBuffer                             commandBuffer,
8092     uint32_t                                    deviceMask);
8093 
8094 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
8095     VkCommandBuffer                             commandBuffer,
8096     uint32_t                                    baseGroupX,
8097     uint32_t                                    baseGroupY,
8098     uint32_t                                    baseGroupZ,
8099     uint32_t                                    groupCountX,
8100     uint32_t                                    groupCountY,
8101     uint32_t                                    groupCountZ);
8102 #endif
8103 
8104 
8105 #define VK_KHR_shader_draw_parameters 1
8106 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
8107 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
8108 
8109 
8110 #define VK_KHR_maintenance1 1
8111 #define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
8112 #define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
8113 #define VK_KHR_MAINTENANCE1_SPEC_VERSION  VK_KHR_MAINTENANCE_1_SPEC_VERSION
8114 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
8115 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
8116 
8117 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
8118 
8119 #ifndef VK_NO_PROTOTYPES
8120 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
8121     VkDevice                                    device,
8122     VkCommandPool                               commandPool,
8123     VkCommandPoolTrimFlags                      flags);
8124 #endif
8125 
8126 
8127 #define VK_KHR_device_group_creation 1
8128 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
8129 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
8130 #define VK_MAX_DEVICE_GROUP_SIZE_KHR      VK_MAX_DEVICE_GROUP_SIZE
8131 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
8132 
8133 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
8134 
8135 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
8136 
8137 #ifndef VK_NO_PROTOTYPES
8138 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
8139     VkInstance                                  instance,
8140     uint32_t*                                   pPhysicalDeviceGroupCount,
8141     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
8142 #endif
8143 
8144 
8145 #define VK_KHR_external_memory_capabilities 1
8146 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
8147 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
8148 #define VK_LUID_SIZE_KHR                  VK_LUID_SIZE
8149 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
8150 
8151 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
8152 
8153 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
8154 
8155 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
8156 
8157 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
8158 
8159 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
8160 
8161 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
8162 
8163 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
8164 
8165 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
8166 
8167 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
8168 
8169 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
8170 
8171 #ifndef VK_NO_PROTOTYPES
8172 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
8173     VkPhysicalDevice                            physicalDevice,
8174     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
8175     VkExternalBufferProperties*                 pExternalBufferProperties);
8176 #endif
8177 
8178 
8179 #define VK_KHR_external_memory 1
8180 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
8181 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
8182 #define VK_QUEUE_FAMILY_EXTERNAL_KHR      VK_QUEUE_FAMILY_EXTERNAL
8183 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
8184 
8185 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
8186 
8187 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
8188 
8189 
8190 
8191 #define VK_KHR_external_memory_fd 1
8192 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
8193 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
8194 typedef struct VkImportMemoryFdInfoKHR {
8195     VkStructureType                       sType;
8196     const void*                           pNext;
8197     VkExternalMemoryHandleTypeFlagBits    handleType;
8198     int                                   fd;
8199 } VkImportMemoryFdInfoKHR;
8200 
8201 typedef struct VkMemoryFdPropertiesKHR {
8202     VkStructureType    sType;
8203     void*              pNext;
8204     uint32_t           memoryTypeBits;
8205 } VkMemoryFdPropertiesKHR;
8206 
8207 typedef struct VkMemoryGetFdInfoKHR {
8208     VkStructureType                       sType;
8209     const void*                           pNext;
8210     VkDeviceMemory                        memory;
8211     VkExternalMemoryHandleTypeFlagBits    handleType;
8212 } VkMemoryGetFdInfoKHR;
8213 
8214 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
8215 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
8216 
8217 #ifndef VK_NO_PROTOTYPES
8218 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
8219     VkDevice                                    device,
8220     const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
8221     int*                                        pFd);
8222 
8223 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
8224     VkDevice                                    device,
8225     VkExternalMemoryHandleTypeFlagBits          handleType,
8226     int                                         fd,
8227     VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
8228 #endif
8229 
8230 
8231 #define VK_KHR_external_semaphore_capabilities 1
8232 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
8233 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
8234 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
8235 
8236 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
8237 
8238 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
8239 
8240 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
8241 
8242 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
8243 
8244 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
8245 
8246 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
8247 
8248 #ifndef VK_NO_PROTOTYPES
8249 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
8250     VkPhysicalDevice                            physicalDevice,
8251     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
8252     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
8253 #endif
8254 
8255 
8256 #define VK_KHR_external_semaphore 1
8257 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
8258 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
8259 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
8260 
8261 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
8262 
8263 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
8264 
8265 
8266 
8267 #define VK_KHR_external_semaphore_fd 1
8268 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
8269 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
8270 typedef struct VkImportSemaphoreFdInfoKHR {
8271     VkStructureType                          sType;
8272     const void*                              pNext;
8273     VkSemaphore                              semaphore;
8274     VkSemaphoreImportFlags                   flags;
8275     VkExternalSemaphoreHandleTypeFlagBits    handleType;
8276     int                                      fd;
8277 } VkImportSemaphoreFdInfoKHR;
8278 
8279 typedef struct VkSemaphoreGetFdInfoKHR {
8280     VkStructureType                          sType;
8281     const void*                              pNext;
8282     VkSemaphore                              semaphore;
8283     VkExternalSemaphoreHandleTypeFlagBits    handleType;
8284 } VkSemaphoreGetFdInfoKHR;
8285 
8286 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
8287 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
8288 
8289 #ifndef VK_NO_PROTOTYPES
8290 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
8291     VkDevice                                    device,
8292     const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
8293 
8294 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
8295     VkDevice                                    device,
8296     const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
8297     int*                                        pFd);
8298 #endif
8299 
8300 
8301 #define VK_KHR_push_descriptor 1
8302 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
8303 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
8304 typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
8305     VkStructureType    sType;
8306     void*              pNext;
8307     uint32_t           maxPushDescriptors;
8308 } VkPhysicalDevicePushDescriptorPropertiesKHR;
8309 
8310 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
8311 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
8312 
8313 #ifndef VK_NO_PROTOTYPES
8314 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
8315     VkCommandBuffer                             commandBuffer,
8316     VkPipelineBindPoint                         pipelineBindPoint,
8317     VkPipelineLayout                            layout,
8318     uint32_t                                    set,
8319     uint32_t                                    descriptorWriteCount,
8320     const VkWriteDescriptorSet*                 pDescriptorWrites);
8321 
8322 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
8323     VkCommandBuffer                             commandBuffer,
8324     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
8325     VkPipelineLayout                            layout,
8326     uint32_t                                    set,
8327     const void*                                 pData);
8328 #endif
8329 
8330 
8331 #define VK_KHR_shader_float16_int8 1
8332 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
8333 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
8334 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
8335 
8336 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
8337 
8338 
8339 
8340 #define VK_KHR_16bit_storage 1
8341 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
8342 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
8343 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
8344 
8345 
8346 
8347 #define VK_KHR_incremental_present 1
8348 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
8349 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
8350 typedef struct VkRectLayerKHR {
8351     VkOffset2D    offset;
8352     VkExtent2D    extent;
8353     uint32_t      layer;
8354 } VkRectLayerKHR;
8355 
8356 typedef struct VkPresentRegionKHR {
8357     uint32_t                 rectangleCount;
8358     const VkRectLayerKHR*    pRectangles;
8359 } VkPresentRegionKHR;
8360 
8361 typedef struct VkPresentRegionsKHR {
8362     VkStructureType              sType;
8363     const void*                  pNext;
8364     uint32_t                     swapchainCount;
8365     const VkPresentRegionKHR*    pRegions;
8366 } VkPresentRegionsKHR;
8367 
8368 
8369 
8370 #define VK_KHR_descriptor_update_template 1
8371 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
8372 
8373 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
8374 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
8375 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
8376 
8377 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
8378 
8379 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
8380 
8381 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
8382 
8383 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
8384 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
8385 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
8386 
8387 #ifndef VK_NO_PROTOTYPES
8388 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
8389     VkDevice                                    device,
8390     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
8391     const VkAllocationCallbacks*                pAllocator,
8392     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
8393 
8394 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
8395     VkDevice                                    device,
8396     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
8397     const VkAllocationCallbacks*                pAllocator);
8398 
8399 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
8400     VkDevice                                    device,
8401     VkDescriptorSet                             descriptorSet,
8402     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
8403     const void*                                 pData);
8404 #endif
8405 
8406 
8407 #define VK_KHR_imageless_framebuffer 1
8408 #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
8409 #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
8410 typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
8411 
8412 typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
8413 
8414 typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
8415 
8416 typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
8417 
8418 
8419 
8420 #define VK_KHR_create_renderpass2 1
8421 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
8422 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
8423 typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
8424 
8425 typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
8426 
8427 typedef VkAttachmentReference2 VkAttachmentReference2KHR;
8428 
8429 typedef VkSubpassDescription2 VkSubpassDescription2KHR;
8430 
8431 typedef VkSubpassDependency2 VkSubpassDependency2KHR;
8432 
8433 typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
8434 
8435 typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
8436 
8437 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
8438 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
8439 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
8440 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
8441 
8442 #ifndef VK_NO_PROTOTYPES
8443 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
8444     VkDevice                                    device,
8445     const VkRenderPassCreateInfo2*              pCreateInfo,
8446     const VkAllocationCallbacks*                pAllocator,
8447     VkRenderPass*                               pRenderPass);
8448 
8449 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
8450     VkCommandBuffer                             commandBuffer,
8451     const VkRenderPassBeginInfo*                pRenderPassBegin,
8452     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
8453 
8454 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
8455     VkCommandBuffer                             commandBuffer,
8456     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
8457     const VkSubpassEndInfo*                     pSubpassEndInfo);
8458 
8459 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
8460     VkCommandBuffer                             commandBuffer,
8461     const VkSubpassEndInfo*                     pSubpassEndInfo);
8462 #endif
8463 
8464 
8465 #define VK_KHR_shared_presentable_image 1
8466 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
8467 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
8468 typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
8469     VkStructureType      sType;
8470     void*                pNext;
8471     VkImageUsageFlags    sharedPresentSupportedUsageFlags;
8472 } VkSharedPresentSurfaceCapabilitiesKHR;
8473 
8474 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
8475 
8476 #ifndef VK_NO_PROTOTYPES
8477 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
8478     VkDevice                                    device,
8479     VkSwapchainKHR                              swapchain);
8480 #endif
8481 
8482 
8483 #define VK_KHR_external_fence_capabilities 1
8484 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
8485 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
8486 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
8487 
8488 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
8489 
8490 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
8491 
8492 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
8493 
8494 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
8495 
8496 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
8497 
8498 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
8499 
8500 #ifndef VK_NO_PROTOTYPES
8501 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
8502     VkPhysicalDevice                            physicalDevice,
8503     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
8504     VkExternalFenceProperties*                  pExternalFenceProperties);
8505 #endif
8506 
8507 
8508 #define VK_KHR_external_fence 1
8509 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
8510 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
8511 typedef VkFenceImportFlags VkFenceImportFlagsKHR;
8512 
8513 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
8514 
8515 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
8516 
8517 
8518 
8519 #define VK_KHR_external_fence_fd 1
8520 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
8521 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
8522 typedef struct VkImportFenceFdInfoKHR {
8523     VkStructureType                      sType;
8524     const void*                          pNext;
8525     VkFence                              fence;
8526     VkFenceImportFlags                   flags;
8527     VkExternalFenceHandleTypeFlagBits    handleType;
8528     int                                  fd;
8529 } VkImportFenceFdInfoKHR;
8530 
8531 typedef struct VkFenceGetFdInfoKHR {
8532     VkStructureType                      sType;
8533     const void*                          pNext;
8534     VkFence                              fence;
8535     VkExternalFenceHandleTypeFlagBits    handleType;
8536 } VkFenceGetFdInfoKHR;
8537 
8538 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
8539 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
8540 
8541 #ifndef VK_NO_PROTOTYPES
8542 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
8543     VkDevice                                    device,
8544     const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
8545 
8546 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
8547     VkDevice                                    device,
8548     const VkFenceGetFdInfoKHR*                  pGetFdInfo,
8549     int*                                        pFd);
8550 #endif
8551 
8552 
8553 #define VK_KHR_performance_query 1
8554 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
8555 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
8556 
8557 typedef enum VkPerformanceCounterUnitKHR {
8558     VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
8559     VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
8560     VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
8561     VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
8562     VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
8563     VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
8564     VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
8565     VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
8566     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
8567     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
8568     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
8569     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
8570 } VkPerformanceCounterUnitKHR;
8571 
8572 typedef enum VkPerformanceCounterScopeKHR {
8573     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
8574     VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
8575     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
8576     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
8577     VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
8578     VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
8579     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
8580 } VkPerformanceCounterScopeKHR;
8581 
8582 typedef enum VkPerformanceCounterStorageKHR {
8583     VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
8584     VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
8585     VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
8586     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
8587     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
8588     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
8589     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
8590 } VkPerformanceCounterStorageKHR;
8591 
8592 typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
8593     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
8594     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
8595     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
8596     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
8597     VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8598 } VkPerformanceCounterDescriptionFlagBitsKHR;
8599 typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
8600 
8601 typedef enum VkAcquireProfilingLockFlagBitsKHR {
8602     VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8603 } VkAcquireProfilingLockFlagBitsKHR;
8604 typedef VkFlags VkAcquireProfilingLockFlagsKHR;
8605 typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
8606     VkStructureType    sType;
8607     void*              pNext;
8608     VkBool32           performanceCounterQueryPools;
8609     VkBool32           performanceCounterMultipleQueryPools;
8610 } VkPhysicalDevicePerformanceQueryFeaturesKHR;
8611 
8612 typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
8613     VkStructureType    sType;
8614     void*              pNext;
8615     VkBool32           allowCommandBufferQueryCopies;
8616 } VkPhysicalDevicePerformanceQueryPropertiesKHR;
8617 
8618 typedef struct VkPerformanceCounterKHR {
8619     VkStructureType                   sType;
8620     void*                             pNext;
8621     VkPerformanceCounterUnitKHR       unit;
8622     VkPerformanceCounterScopeKHR      scope;
8623     VkPerformanceCounterStorageKHR    storage;
8624     uint8_t                           uuid[VK_UUID_SIZE];
8625 } VkPerformanceCounterKHR;
8626 
8627 typedef struct VkPerformanceCounterDescriptionKHR {
8628     VkStructureType                            sType;
8629     void*                                      pNext;
8630     VkPerformanceCounterDescriptionFlagsKHR    flags;
8631     char                                       name[VK_MAX_DESCRIPTION_SIZE];
8632     char                                       category[VK_MAX_DESCRIPTION_SIZE];
8633     char                                       description[VK_MAX_DESCRIPTION_SIZE];
8634 } VkPerformanceCounterDescriptionKHR;
8635 
8636 typedef struct VkQueryPoolPerformanceCreateInfoKHR {
8637     VkStructureType    sType;
8638     const void*        pNext;
8639     uint32_t           queueFamilyIndex;
8640     uint32_t           counterIndexCount;
8641     const uint32_t*    pCounterIndices;
8642 } VkQueryPoolPerformanceCreateInfoKHR;
8643 
8644 typedef union VkPerformanceCounterResultKHR {
8645     int32_t     int32;
8646     int64_t     int64;
8647     uint32_t    uint32;
8648     uint64_t    uint64;
8649     float       float32;
8650     double      float64;
8651 } VkPerformanceCounterResultKHR;
8652 
8653 typedef struct VkAcquireProfilingLockInfoKHR {
8654     VkStructureType                   sType;
8655     const void*                       pNext;
8656     VkAcquireProfilingLockFlagsKHR    flags;
8657     uint64_t                          timeout;
8658 } VkAcquireProfilingLockInfoKHR;
8659 
8660 typedef struct VkPerformanceQuerySubmitInfoKHR {
8661     VkStructureType    sType;
8662     const void*        pNext;
8663     uint32_t           counterPassIndex;
8664 } VkPerformanceQuerySubmitInfoKHR;
8665 
8666 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
8667 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
8668 typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
8669 typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
8670 
8671 #ifndef VK_NO_PROTOTYPES
8672 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
8673     VkPhysicalDevice                            physicalDevice,
8674     uint32_t                                    queueFamilyIndex,
8675     uint32_t*                                   pCounterCount,
8676     VkPerformanceCounterKHR*                    pCounters,
8677     VkPerformanceCounterDescriptionKHR*         pCounterDescriptions);
8678 
8679 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
8680     VkPhysicalDevice                            physicalDevice,
8681     const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
8682     uint32_t*                                   pNumPasses);
8683 
8684 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
8685     VkDevice                                    device,
8686     const VkAcquireProfilingLockInfoKHR*        pInfo);
8687 
8688 VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
8689     VkDevice                                    device);
8690 #endif
8691 
8692 
8693 #define VK_KHR_maintenance2 1
8694 #define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
8695 #define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
8696 #define VK_KHR_MAINTENANCE2_SPEC_VERSION  VK_KHR_MAINTENANCE_2_SPEC_VERSION
8697 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
8698 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
8699 
8700 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
8701 
8702 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
8703 
8704 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
8705 
8706 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
8707 
8708 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
8709 
8710 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
8711 
8712 
8713 
8714 #define VK_KHR_get_surface_capabilities2 1
8715 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
8716 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
8717 typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
8718     VkStructureType    sType;
8719     const void*        pNext;
8720     VkSurfaceKHR       surface;
8721 } VkPhysicalDeviceSurfaceInfo2KHR;
8722 
8723 typedef struct VkSurfaceCapabilities2KHR {
8724     VkStructureType             sType;
8725     void*                       pNext;
8726     VkSurfaceCapabilitiesKHR    surfaceCapabilities;
8727 } VkSurfaceCapabilities2KHR;
8728 
8729 typedef struct VkSurfaceFormat2KHR {
8730     VkStructureType       sType;
8731     void*                 pNext;
8732     VkSurfaceFormatKHR    surfaceFormat;
8733 } VkSurfaceFormat2KHR;
8734 
8735 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
8736 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
8737 
8738 #ifndef VK_NO_PROTOTYPES
8739 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
8740     VkPhysicalDevice                            physicalDevice,
8741     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
8742     VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
8743 
8744 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
8745     VkPhysicalDevice                            physicalDevice,
8746     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
8747     uint32_t*                                   pSurfaceFormatCount,
8748     VkSurfaceFormat2KHR*                        pSurfaceFormats);
8749 #endif
8750 
8751 
8752 #define VK_KHR_variable_pointers 1
8753 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
8754 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
8755 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
8756 
8757 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
8758 
8759 
8760 
8761 #define VK_KHR_get_display_properties2 1
8762 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
8763 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
8764 typedef struct VkDisplayProperties2KHR {
8765     VkStructureType           sType;
8766     void*                     pNext;
8767     VkDisplayPropertiesKHR    displayProperties;
8768 } VkDisplayProperties2KHR;
8769 
8770 typedef struct VkDisplayPlaneProperties2KHR {
8771     VkStructureType                sType;
8772     void*                          pNext;
8773     VkDisplayPlanePropertiesKHR    displayPlaneProperties;
8774 } VkDisplayPlaneProperties2KHR;
8775 
8776 typedef struct VkDisplayModeProperties2KHR {
8777     VkStructureType               sType;
8778     void*                         pNext;
8779     VkDisplayModePropertiesKHR    displayModeProperties;
8780 } VkDisplayModeProperties2KHR;
8781 
8782 typedef struct VkDisplayPlaneInfo2KHR {
8783     VkStructureType     sType;
8784     const void*         pNext;
8785     VkDisplayModeKHR    mode;
8786     uint32_t            planeIndex;
8787 } VkDisplayPlaneInfo2KHR;
8788 
8789 typedef struct VkDisplayPlaneCapabilities2KHR {
8790     VkStructureType                  sType;
8791     void*                            pNext;
8792     VkDisplayPlaneCapabilitiesKHR    capabilities;
8793 } VkDisplayPlaneCapabilities2KHR;
8794 
8795 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
8796 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
8797 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
8798 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
8799 
8800 #ifndef VK_NO_PROTOTYPES
8801 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
8802     VkPhysicalDevice                            physicalDevice,
8803     uint32_t*                                   pPropertyCount,
8804     VkDisplayProperties2KHR*                    pProperties);
8805 
8806 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
8807     VkPhysicalDevice                            physicalDevice,
8808     uint32_t*                                   pPropertyCount,
8809     VkDisplayPlaneProperties2KHR*               pProperties);
8810 
8811 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
8812     VkPhysicalDevice                            physicalDevice,
8813     VkDisplayKHR                                display,
8814     uint32_t*                                   pPropertyCount,
8815     VkDisplayModeProperties2KHR*                pProperties);
8816 
8817 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
8818     VkPhysicalDevice                            physicalDevice,
8819     const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
8820     VkDisplayPlaneCapabilities2KHR*             pCapabilities);
8821 #endif
8822 
8823 
8824 #define VK_KHR_dedicated_allocation 1
8825 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
8826 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
8827 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
8828 
8829 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
8830 
8831 
8832 
8833 #define VK_KHR_storage_buffer_storage_class 1
8834 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
8835 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
8836 
8837 
8838 #define VK_KHR_relaxed_block_layout 1
8839 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
8840 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
8841 
8842 
8843 #define VK_KHR_get_memory_requirements2 1
8844 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
8845 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
8846 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
8847 
8848 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
8849 
8850 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
8851 
8852 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
8853 
8854 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
8855 
8856 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
8857 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
8858 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
8859 
8860 #ifndef VK_NO_PROTOTYPES
8861 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
8862     VkDevice                                    device,
8863     const VkImageMemoryRequirementsInfo2*       pInfo,
8864     VkMemoryRequirements2*                      pMemoryRequirements);
8865 
8866 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
8867     VkDevice                                    device,
8868     const VkBufferMemoryRequirementsInfo2*      pInfo,
8869     VkMemoryRequirements2*                      pMemoryRequirements);
8870 
8871 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
8872     VkDevice                                    device,
8873     const VkImageSparseMemoryRequirementsInfo2* pInfo,
8874     uint32_t*                                   pSparseMemoryRequirementCount,
8875     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
8876 #endif
8877 
8878 
8879 #define VK_KHR_image_format_list 1
8880 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
8881 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
8882 typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
8883 
8884 
8885 
8886 #define VK_KHR_sampler_ycbcr_conversion 1
8887 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
8888 
8889 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
8890 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
8891 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
8892 
8893 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
8894 
8895 typedef VkChromaLocation VkChromaLocationKHR;
8896 
8897 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
8898 
8899 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
8900 
8901 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
8902 
8903 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
8904 
8905 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
8906 
8907 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
8908 
8909 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
8910 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
8911 
8912 #ifndef VK_NO_PROTOTYPES
8913 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
8914     VkDevice                                    device,
8915     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
8916     const VkAllocationCallbacks*                pAllocator,
8917     VkSamplerYcbcrConversion*                   pYcbcrConversion);
8918 
8919 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
8920     VkDevice                                    device,
8921     VkSamplerYcbcrConversion                    ycbcrConversion,
8922     const VkAllocationCallbacks*                pAllocator);
8923 #endif
8924 
8925 
8926 #define VK_KHR_bind_memory2 1
8927 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
8928 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
8929 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
8930 
8931 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
8932 
8933 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
8934 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
8935 
8936 #ifndef VK_NO_PROTOTYPES
8937 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
8938     VkDevice                                    device,
8939     uint32_t                                    bindInfoCount,
8940     const VkBindBufferMemoryInfo*               pBindInfos);
8941 
8942 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
8943     VkDevice                                    device,
8944     uint32_t                                    bindInfoCount,
8945     const VkBindImageMemoryInfo*                pBindInfos);
8946 #endif
8947 
8948 
8949 #define VK_KHR_maintenance3 1
8950 #define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
8951 #define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
8952 #define VK_KHR_MAINTENANCE3_SPEC_VERSION  VK_KHR_MAINTENANCE_3_SPEC_VERSION
8953 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
8954 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
8955 
8956 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
8957 
8958 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
8959 
8960 #ifndef VK_NO_PROTOTYPES
8961 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
8962     VkDevice                                    device,
8963     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
8964     VkDescriptorSetLayoutSupport*               pSupport);
8965 #endif
8966 
8967 
8968 #define VK_KHR_draw_indirect_count 1
8969 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
8970 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
8971 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
8972 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
8973 
8974 #ifndef VK_NO_PROTOTYPES
8975 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
8976     VkCommandBuffer                             commandBuffer,
8977     VkBuffer                                    buffer,
8978     VkDeviceSize                                offset,
8979     VkBuffer                                    countBuffer,
8980     VkDeviceSize                                countBufferOffset,
8981     uint32_t                                    maxDrawCount,
8982     uint32_t                                    stride);
8983 
8984 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
8985     VkCommandBuffer                             commandBuffer,
8986     VkBuffer                                    buffer,
8987     VkDeviceSize                                offset,
8988     VkBuffer                                    countBuffer,
8989     VkDeviceSize                                countBufferOffset,
8990     uint32_t                                    maxDrawCount,
8991     uint32_t                                    stride);
8992 #endif
8993 
8994 
8995 #define VK_KHR_shader_subgroup_extended_types 1
8996 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
8997 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
8998 typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
8999 
9000 
9001 
9002 #define VK_KHR_8bit_storage 1
9003 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1
9004 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
9005 typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
9006 
9007 
9008 
9009 #define VK_KHR_shader_atomic_int64 1
9010 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
9011 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
9012 typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
9013 
9014 
9015 
9016 #define VK_KHR_shader_clock 1
9017 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION  1
9018 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
9019 typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
9020     VkStructureType    sType;
9021     void*              pNext;
9022     VkBool32           shaderSubgroupClock;
9023     VkBool32           shaderDeviceClock;
9024 } VkPhysicalDeviceShaderClockFeaturesKHR;
9025 
9026 
9027 
9028 #define VK_KHR_global_priority 1
9029 #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR   16U
9030 #define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
9031 #define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
9032 
9033 typedef enum VkQueueGlobalPriorityKHR {
9034     VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128,
9035     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256,
9036     VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512,
9037     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024,
9038     VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
9039     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
9040     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
9041     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR,
9042     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 0x7FFFFFFF
9043 } VkQueueGlobalPriorityKHR;
9044 typedef struct VkDeviceQueueGlobalPriorityCreateInfoKHR {
9045     VkStructureType             sType;
9046     const void*                 pNext;
9047     VkQueueGlobalPriorityKHR    globalPriority;
9048 } VkDeviceQueueGlobalPriorityCreateInfoKHR;
9049 
9050 typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR {
9051     VkStructureType    sType;
9052     void*              pNext;
9053     VkBool32           globalPriorityQuery;
9054 } VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
9055 
9056 typedef struct VkQueueFamilyGlobalPriorityPropertiesKHR {
9057     VkStructureType             sType;
9058     void*                       pNext;
9059     uint32_t                    priorityCount;
9060     VkQueueGlobalPriorityKHR    priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR];
9061 } VkQueueFamilyGlobalPriorityPropertiesKHR;
9062 
9063 
9064 
9065 #define VK_KHR_driver_properties 1
9066 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
9067 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
9068 #define VK_MAX_DRIVER_NAME_SIZE_KHR       VK_MAX_DRIVER_NAME_SIZE
9069 #define VK_MAX_DRIVER_INFO_SIZE_KHR       VK_MAX_DRIVER_INFO_SIZE
9070 typedef VkDriverId VkDriverIdKHR;
9071 
9072 typedef VkConformanceVersion VkConformanceVersionKHR;
9073 
9074 typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
9075 
9076 
9077 
9078 #define VK_KHR_shader_float_controls 1
9079 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
9080 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
9081 typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
9082 
9083 typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
9084 
9085 
9086 
9087 #define VK_KHR_depth_stencil_resolve 1
9088 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
9089 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
9090 typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
9091 
9092 typedef VkResolveModeFlags VkResolveModeFlagsKHR;
9093 
9094 typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
9095 
9096 typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
9097 
9098 
9099 
9100 #define VK_KHR_swapchain_mutable_format 1
9101 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
9102 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
9103 
9104 
9105 #define VK_KHR_timeline_semaphore 1
9106 #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
9107 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
9108 typedef VkSemaphoreType VkSemaphoreTypeKHR;
9109 
9110 typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
9111 
9112 typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
9113 
9114 typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
9115 
9116 typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
9117 
9118 typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
9119 
9120 typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
9121 
9122 typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
9123 
9124 typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
9125 
9126 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
9127 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
9128 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
9129 
9130 #ifndef VK_NO_PROTOTYPES
9131 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
9132     VkDevice                                    device,
9133     VkSemaphore                                 semaphore,
9134     uint64_t*                                   pValue);
9135 
9136 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
9137     VkDevice                                    device,
9138     const VkSemaphoreWaitInfo*                  pWaitInfo,
9139     uint64_t                                    timeout);
9140 
9141 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
9142     VkDevice                                    device,
9143     const VkSemaphoreSignalInfo*                pSignalInfo);
9144 #endif
9145 
9146 
9147 #define VK_KHR_vulkan_memory_model 1
9148 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
9149 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
9150 typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
9151 
9152 
9153 
9154 #define VK_KHR_shader_terminate_invocation 1
9155 #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
9156 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
9157 typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
9158 
9159 
9160 
9161 #define VK_KHR_fragment_shading_rate 1
9162 #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
9163 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
9164 
9165 typedef enum VkFragmentShadingRateCombinerOpKHR {
9166     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
9167     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
9168     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
9169     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
9170     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
9171     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
9172 } VkFragmentShadingRateCombinerOpKHR;
9173 typedef struct VkFragmentShadingRateAttachmentInfoKHR {
9174     VkStructureType                  sType;
9175     const void*                      pNext;
9176     const VkAttachmentReference2*    pFragmentShadingRateAttachment;
9177     VkExtent2D                       shadingRateAttachmentTexelSize;
9178 } VkFragmentShadingRateAttachmentInfoKHR;
9179 
9180 typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
9181     VkStructureType                       sType;
9182     const void*                           pNext;
9183     VkExtent2D                            fragmentSize;
9184     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
9185 } VkPipelineFragmentShadingRateStateCreateInfoKHR;
9186 
9187 typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
9188     VkStructureType    sType;
9189     void*              pNext;
9190     VkBool32           pipelineFragmentShadingRate;
9191     VkBool32           primitiveFragmentShadingRate;
9192     VkBool32           attachmentFragmentShadingRate;
9193 } VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
9194 
9195 typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
9196     VkStructureType          sType;
9197     void*                    pNext;
9198     VkExtent2D               minFragmentShadingRateAttachmentTexelSize;
9199     VkExtent2D               maxFragmentShadingRateAttachmentTexelSize;
9200     uint32_t                 maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
9201     VkBool32                 primitiveFragmentShadingRateWithMultipleViewports;
9202     VkBool32                 layeredShadingRateAttachments;
9203     VkBool32                 fragmentShadingRateNonTrivialCombinerOps;
9204     VkExtent2D               maxFragmentSize;
9205     uint32_t                 maxFragmentSizeAspectRatio;
9206     uint32_t                 maxFragmentShadingRateCoverageSamples;
9207     VkSampleCountFlagBits    maxFragmentShadingRateRasterizationSamples;
9208     VkBool32                 fragmentShadingRateWithShaderDepthStencilWrites;
9209     VkBool32                 fragmentShadingRateWithSampleMask;
9210     VkBool32                 fragmentShadingRateWithShaderSampleMask;
9211     VkBool32                 fragmentShadingRateWithConservativeRasterization;
9212     VkBool32                 fragmentShadingRateWithFragmentShaderInterlock;
9213     VkBool32                 fragmentShadingRateWithCustomSampleLocations;
9214     VkBool32                 fragmentShadingRateStrictMultiplyCombiner;
9215 } VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
9216 
9217 typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
9218     VkStructureType       sType;
9219     void*                 pNext;
9220     VkSampleCountFlags    sampleCounts;
9221     VkExtent2D            fragmentSize;
9222 } VkPhysicalDeviceFragmentShadingRateKHR;
9223 
9224 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
9225 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer           commandBuffer, const VkExtent2D*                           pFragmentSize, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
9226 
9227 #ifndef VK_NO_PROTOTYPES
9228 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
9229     VkPhysicalDevice                            physicalDevice,
9230     uint32_t*                                   pFragmentShadingRateCount,
9231     VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates);
9232 
9233 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
9234     VkCommandBuffer                             commandBuffer,
9235     const VkExtent2D*                           pFragmentSize,
9236     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
9237 #endif
9238 
9239 
9240 #define VK_KHR_spirv_1_4 1
9241 #define VK_KHR_SPIRV_1_4_SPEC_VERSION     1
9242 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME   "VK_KHR_spirv_1_4"
9243 
9244 
9245 #define VK_KHR_surface_protected_capabilities 1
9246 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
9247 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
9248 typedef struct VkSurfaceProtectedCapabilitiesKHR {
9249     VkStructureType    sType;
9250     const void*        pNext;
9251     VkBool32           supportsProtected;
9252 } VkSurfaceProtectedCapabilitiesKHR;
9253 
9254 
9255 
9256 #define VK_KHR_separate_depth_stencil_layouts 1
9257 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
9258 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
9259 typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
9260 
9261 typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
9262 
9263 typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
9264 
9265 
9266 
9267 #define VK_KHR_present_wait 1
9268 #define VK_KHR_PRESENT_WAIT_SPEC_VERSION  1
9269 #define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
9270 typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
9271     VkStructureType    sType;
9272     void*              pNext;
9273     VkBool32           presentWait;
9274 } VkPhysicalDevicePresentWaitFeaturesKHR;
9275 
9276 typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
9277 
9278 #ifndef VK_NO_PROTOTYPES
9279 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
9280     VkDevice                                    device,
9281     VkSwapchainKHR                              swapchain,
9282     uint64_t                                    presentId,
9283     uint64_t                                    timeout);
9284 #endif
9285 
9286 
9287 #define VK_KHR_uniform_buffer_standard_layout 1
9288 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
9289 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
9290 typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
9291 
9292 
9293 
9294 #define VK_KHR_buffer_device_address 1
9295 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
9296 #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
9297 typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
9298 
9299 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
9300 
9301 typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
9302 
9303 typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
9304 
9305 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
9306 
9307 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
9308 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
9309 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
9310 
9311 #ifndef VK_NO_PROTOTYPES
9312 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
9313     VkDevice                                    device,
9314     const VkBufferDeviceAddressInfo*            pInfo);
9315 
9316 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
9317     VkDevice                                    device,
9318     const VkBufferDeviceAddressInfo*            pInfo);
9319 
9320 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
9321     VkDevice                                    device,
9322     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
9323 #endif
9324 
9325 
9326 #define VK_KHR_deferred_host_operations 1
9327 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
9328 #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
9329 #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
9330 typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
9331 typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
9332 typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
9333 typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
9334 typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
9335 
9336 #ifndef VK_NO_PROTOTYPES
9337 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
9338     VkDevice                                    device,
9339     const VkAllocationCallbacks*                pAllocator,
9340     VkDeferredOperationKHR*                     pDeferredOperation);
9341 
9342 VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
9343     VkDevice                                    device,
9344     VkDeferredOperationKHR                      operation,
9345     const VkAllocationCallbacks*                pAllocator);
9346 
9347 VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
9348     VkDevice                                    device,
9349     VkDeferredOperationKHR                      operation);
9350 
9351 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
9352     VkDevice                                    device,
9353     VkDeferredOperationKHR                      operation);
9354 
9355 VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
9356     VkDevice                                    device,
9357     VkDeferredOperationKHR                      operation);
9358 #endif
9359 
9360 
9361 #define VK_KHR_pipeline_executable_properties 1
9362 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
9363 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
9364 
9365 typedef enum VkPipelineExecutableStatisticFormatKHR {
9366     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
9367     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
9368     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
9369     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
9370     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
9371 } VkPipelineExecutableStatisticFormatKHR;
9372 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
9373     VkStructureType    sType;
9374     void*              pNext;
9375     VkBool32           pipelineExecutableInfo;
9376 } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
9377 
9378 typedef struct VkPipelineInfoKHR {
9379     VkStructureType    sType;
9380     const void*        pNext;
9381     VkPipeline         pipeline;
9382 } VkPipelineInfoKHR;
9383 
9384 typedef struct VkPipelineExecutablePropertiesKHR {
9385     VkStructureType       sType;
9386     void*                 pNext;
9387     VkShaderStageFlags    stages;
9388     char                  name[VK_MAX_DESCRIPTION_SIZE];
9389     char                  description[VK_MAX_DESCRIPTION_SIZE];
9390     uint32_t              subgroupSize;
9391 } VkPipelineExecutablePropertiesKHR;
9392 
9393 typedef struct VkPipelineExecutableInfoKHR {
9394     VkStructureType    sType;
9395     const void*        pNext;
9396     VkPipeline         pipeline;
9397     uint32_t           executableIndex;
9398 } VkPipelineExecutableInfoKHR;
9399 
9400 typedef union VkPipelineExecutableStatisticValueKHR {
9401     VkBool32    b32;
9402     int64_t     i64;
9403     uint64_t    u64;
9404     double      f64;
9405 } VkPipelineExecutableStatisticValueKHR;
9406 
9407 typedef struct VkPipelineExecutableStatisticKHR {
9408     VkStructureType                           sType;
9409     void*                                     pNext;
9410     char                                      name[VK_MAX_DESCRIPTION_SIZE];
9411     char                                      description[VK_MAX_DESCRIPTION_SIZE];
9412     VkPipelineExecutableStatisticFormatKHR    format;
9413     VkPipelineExecutableStatisticValueKHR     value;
9414 } VkPipelineExecutableStatisticKHR;
9415 
9416 typedef struct VkPipelineExecutableInternalRepresentationKHR {
9417     VkStructureType    sType;
9418     void*              pNext;
9419     char               name[VK_MAX_DESCRIPTION_SIZE];
9420     char               description[VK_MAX_DESCRIPTION_SIZE];
9421     VkBool32           isText;
9422     size_t             dataSize;
9423     void*              pData;
9424 } VkPipelineExecutableInternalRepresentationKHR;
9425 
9426 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice                        device, const VkPipelineInfoKHR*        pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
9427 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
9428 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
9429 
9430 #ifndef VK_NO_PROTOTYPES
9431 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
9432     VkDevice                                    device,
9433     const VkPipelineInfoKHR*                    pPipelineInfo,
9434     uint32_t*                                   pExecutableCount,
9435     VkPipelineExecutablePropertiesKHR*          pProperties);
9436 
9437 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
9438     VkDevice                                    device,
9439     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
9440     uint32_t*                                   pStatisticCount,
9441     VkPipelineExecutableStatisticKHR*           pStatistics);
9442 
9443 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
9444     VkDevice                                    device,
9445     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
9446     uint32_t*                                   pInternalRepresentationCount,
9447     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
9448 #endif
9449 
9450 
9451 #define VK_KHR_shader_integer_dot_product 1
9452 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
9453 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
9454 typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
9455 
9456 typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
9457 
9458 
9459 
9460 #define VK_KHR_pipeline_library 1
9461 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
9462 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
9463 typedef struct VkPipelineLibraryCreateInfoKHR {
9464     VkStructureType      sType;
9465     const void*          pNext;
9466     uint32_t             libraryCount;
9467     const VkPipeline*    pLibraries;
9468 } VkPipelineLibraryCreateInfoKHR;
9469 
9470 
9471 
9472 #define VK_KHR_shader_non_semantic_info 1
9473 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
9474 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
9475 
9476 
9477 #define VK_KHR_present_id 1
9478 #define VK_KHR_PRESENT_ID_SPEC_VERSION    1
9479 #define VK_KHR_PRESENT_ID_EXTENSION_NAME  "VK_KHR_present_id"
9480 typedef struct VkPresentIdKHR {
9481     VkStructureType    sType;
9482     const void*        pNext;
9483     uint32_t           swapchainCount;
9484     const uint64_t*    pPresentIds;
9485 } VkPresentIdKHR;
9486 
9487 typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
9488     VkStructureType    sType;
9489     void*              pNext;
9490     VkBool32           presentId;
9491 } VkPhysicalDevicePresentIdFeaturesKHR;
9492 
9493 
9494 
9495 #define VK_KHR_synchronization2 1
9496 #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
9497 #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
9498 typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
9499 
9500 typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
9501 
9502 typedef VkAccessFlags2 VkAccessFlags2KHR;
9503 
9504 typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
9505 
9506 typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
9507 
9508 typedef VkSubmitFlags VkSubmitFlagsKHR;
9509 
9510 typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
9511 
9512 typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
9513 
9514 typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
9515 
9516 typedef VkDependencyInfo VkDependencyInfoKHR;
9517 
9518 typedef VkSubmitInfo2 VkSubmitInfo2KHR;
9519 
9520 typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
9521 
9522 typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
9523 
9524 typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
9525 
9526 typedef struct VkQueueFamilyCheckpointProperties2NV {
9527     VkStructureType          sType;
9528     void*                    pNext;
9529     VkPipelineStageFlags2    checkpointExecutionStageMask;
9530 } VkQueueFamilyCheckpointProperties2NV;
9531 
9532 typedef struct VkCheckpointData2NV {
9533     VkStructureType          sType;
9534     void*                    pNext;
9535     VkPipelineStageFlags2    stage;
9536     void*                    pCheckpointMarker;
9537 } VkCheckpointData2NV;
9538 
9539 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
9540 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
9541 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
9542 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
9543 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
9544 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
9545 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkBuffer                                            dstBuffer, VkDeviceSize                                        dstOffset, uint32_t                                            marker);
9546 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
9547 
9548 #ifndef VK_NO_PROTOTYPES
9549 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
9550     VkCommandBuffer                             commandBuffer,
9551     VkEvent                                     event,
9552     const VkDependencyInfo*                     pDependencyInfo);
9553 
9554 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
9555     VkCommandBuffer                             commandBuffer,
9556     VkEvent                                     event,
9557     VkPipelineStageFlags2                       stageMask);
9558 
9559 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
9560     VkCommandBuffer                             commandBuffer,
9561     uint32_t                                    eventCount,
9562     const VkEvent*                              pEvents,
9563     const VkDependencyInfo*                     pDependencyInfos);
9564 
9565 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
9566     VkCommandBuffer                             commandBuffer,
9567     const VkDependencyInfo*                     pDependencyInfo);
9568 
9569 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
9570     VkCommandBuffer                             commandBuffer,
9571     VkPipelineStageFlags2                       stage,
9572     VkQueryPool                                 queryPool,
9573     uint32_t                                    query);
9574 
9575 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
9576     VkQueue                                     queue,
9577     uint32_t                                    submitCount,
9578     const VkSubmitInfo2*                        pSubmits,
9579     VkFence                                     fence);
9580 
9581 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
9582     VkCommandBuffer                             commandBuffer,
9583     VkPipelineStageFlags2                       stage,
9584     VkBuffer                                    dstBuffer,
9585     VkDeviceSize                                dstOffset,
9586     uint32_t                                    marker);
9587 
9588 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
9589     VkQueue                                     queue,
9590     uint32_t*                                   pCheckpointDataCount,
9591     VkCheckpointData2NV*                        pCheckpointData);
9592 #endif
9593 
9594 
9595 #define VK_KHR_fragment_shader_barycentric 1
9596 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
9597 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
9598 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
9599     VkStructureType    sType;
9600     void*              pNext;
9601     VkBool32           fragmentShaderBarycentric;
9602 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
9603 
9604 typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
9605     VkStructureType    sType;
9606     void*              pNext;
9607     VkBool32           triStripVertexOrderIndependentOfProvokingVertex;
9608 } VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
9609 
9610 
9611 
9612 #define VK_KHR_shader_subgroup_uniform_control_flow 1
9613 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
9614 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
9615 typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
9616     VkStructureType    sType;
9617     void*              pNext;
9618     VkBool32           shaderSubgroupUniformControlFlow;
9619 } VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
9620 
9621 
9622 
9623 #define VK_KHR_zero_initialize_workgroup_memory 1
9624 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
9625 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
9626 typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
9627 
9628 
9629 
9630 #define VK_KHR_workgroup_memory_explicit_layout 1
9631 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
9632 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
9633 typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
9634     VkStructureType    sType;
9635     void*              pNext;
9636     VkBool32           workgroupMemoryExplicitLayout;
9637     VkBool32           workgroupMemoryExplicitLayoutScalarBlockLayout;
9638     VkBool32           workgroupMemoryExplicitLayout8BitAccess;
9639     VkBool32           workgroupMemoryExplicitLayout16BitAccess;
9640 } VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
9641 
9642 
9643 
9644 #define VK_KHR_copy_commands2 1
9645 #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
9646 #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
9647 typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
9648 
9649 typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
9650 
9651 typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
9652 
9653 typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
9654 
9655 typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
9656 
9657 typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
9658 
9659 typedef VkBufferCopy2 VkBufferCopy2KHR;
9660 
9661 typedef VkImageCopy2 VkImageCopy2KHR;
9662 
9663 typedef VkImageBlit2 VkImageBlit2KHR;
9664 
9665 typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
9666 
9667 typedef VkImageResolve2 VkImageResolve2KHR;
9668 
9669 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
9670 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
9671 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
9672 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
9673 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
9674 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
9675 
9676 #ifndef VK_NO_PROTOTYPES
9677 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
9678     VkCommandBuffer                             commandBuffer,
9679     const VkCopyBufferInfo2*                    pCopyBufferInfo);
9680 
9681 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
9682     VkCommandBuffer                             commandBuffer,
9683     const VkCopyImageInfo2*                     pCopyImageInfo);
9684 
9685 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
9686     VkCommandBuffer                             commandBuffer,
9687     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
9688 
9689 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
9690     VkCommandBuffer                             commandBuffer,
9691     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
9692 
9693 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
9694     VkCommandBuffer                             commandBuffer,
9695     const VkBlitImageInfo2*                     pBlitImageInfo);
9696 
9697 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
9698     VkCommandBuffer                             commandBuffer,
9699     const VkResolveImageInfo2*                  pResolveImageInfo);
9700 #endif
9701 
9702 
9703 #define VK_KHR_format_feature_flags2 1
9704 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
9705 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
9706 typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
9707 
9708 typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
9709 
9710 typedef VkFormatProperties3 VkFormatProperties3KHR;
9711 
9712 
9713 
9714 #define VK_KHR_ray_tracing_maintenance1 1
9715 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
9716 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
9717 typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
9718     VkStructureType    sType;
9719     void*              pNext;
9720     VkBool32           rayTracingMaintenance1;
9721     VkBool32           rayTracingPipelineTraceRaysIndirect2;
9722 } VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
9723 
9724 typedef struct VkTraceRaysIndirectCommand2KHR {
9725     VkDeviceAddress    raygenShaderRecordAddress;
9726     VkDeviceSize       raygenShaderRecordSize;
9727     VkDeviceAddress    missShaderBindingTableAddress;
9728     VkDeviceSize       missShaderBindingTableSize;
9729     VkDeviceSize       missShaderBindingTableStride;
9730     VkDeviceAddress    hitShaderBindingTableAddress;
9731     VkDeviceSize       hitShaderBindingTableSize;
9732     VkDeviceSize       hitShaderBindingTableStride;
9733     VkDeviceAddress    callableShaderBindingTableAddress;
9734     VkDeviceSize       callableShaderBindingTableSize;
9735     VkDeviceSize       callableShaderBindingTableStride;
9736     uint32_t           width;
9737     uint32_t           height;
9738     uint32_t           depth;
9739 } VkTraceRaysIndirectCommand2KHR;
9740 
9741 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
9742 
9743 #ifndef VK_NO_PROTOTYPES
9744 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
9745     VkCommandBuffer                             commandBuffer,
9746     VkDeviceAddress                             indirectDeviceAddress);
9747 #endif
9748 
9749 
9750 #define VK_KHR_portability_enumeration 1
9751 #define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
9752 #define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
9753 
9754 
9755 #define VK_KHR_maintenance4 1
9756 #define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
9757 #define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
9758 typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
9759 
9760 typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
9761 
9762 typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
9763 
9764 typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
9765 
9766 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
9767 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
9768 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
9769 
9770 #ifndef VK_NO_PROTOTYPES
9771 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
9772     VkDevice                                    device,
9773     const VkDeviceBufferMemoryRequirements*     pInfo,
9774     VkMemoryRequirements2*                      pMemoryRequirements);
9775 
9776 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
9777     VkDevice                                    device,
9778     const VkDeviceImageMemoryRequirements*      pInfo,
9779     VkMemoryRequirements2*                      pMemoryRequirements);
9780 
9781 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
9782     VkDevice                                    device,
9783     const VkDeviceImageMemoryRequirements*      pInfo,
9784     uint32_t*                                   pSparseMemoryRequirementCount,
9785     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
9786 #endif
9787 
9788 
9789 #define VK_EXT_debug_report 1
9790 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
9791 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  10
9792 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
9793 
9794 typedef enum VkDebugReportObjectTypeEXT {
9795     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
9796     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
9797     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
9798     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
9799     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
9800     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
9801     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
9802     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
9803     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
9804     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
9805     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
9806     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
9807     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
9808     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
9809     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
9810     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
9811     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
9812     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
9813     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
9814     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
9815     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
9816     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
9817     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
9818     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
9819     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
9820     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
9821     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
9822     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
9823     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
9824     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
9825     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
9826     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
9827     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
9828     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
9829     VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
9830     VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
9831     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
9832     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
9833     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
9834     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
9835     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
9836     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
9837     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
9838     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
9839 } VkDebugReportObjectTypeEXT;
9840 
9841 typedef enum VkDebugReportFlagBitsEXT {
9842     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
9843     VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
9844     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
9845     VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
9846     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
9847     VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
9848 } VkDebugReportFlagBitsEXT;
9849 typedef VkFlags VkDebugReportFlagsEXT;
9850 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
9851     VkDebugReportFlagsEXT                       flags,
9852     VkDebugReportObjectTypeEXT                  objectType,
9853     uint64_t                                    object,
9854     size_t                                      location,
9855     int32_t                                     messageCode,
9856     const char*                                 pLayerPrefix,
9857     const char*                                 pMessage,
9858     void*                                       pUserData);
9859 
9860 typedef struct VkDebugReportCallbackCreateInfoEXT {
9861     VkStructureType                 sType;
9862     const void*                     pNext;
9863     VkDebugReportFlagsEXT           flags;
9864     PFN_vkDebugReportCallbackEXT    pfnCallback;
9865     void*                           pUserData;
9866 } VkDebugReportCallbackCreateInfoEXT;
9867 
9868 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
9869 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
9870 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);
9871 
9872 #ifndef VK_NO_PROTOTYPES
9873 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
9874     VkInstance                                  instance,
9875     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
9876     const VkAllocationCallbacks*                pAllocator,
9877     VkDebugReportCallbackEXT*                   pCallback);
9878 
9879 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
9880     VkInstance                                  instance,
9881     VkDebugReportCallbackEXT                    callback,
9882     const VkAllocationCallbacks*                pAllocator);
9883 
9884 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
9885     VkInstance                                  instance,
9886     VkDebugReportFlagsEXT                       flags,
9887     VkDebugReportObjectTypeEXT                  objectType,
9888     uint64_t                                    object,
9889     size_t                                      location,
9890     int32_t                                     messageCode,
9891     const char*                                 pLayerPrefix,
9892     const char*                                 pMessage);
9893 #endif
9894 
9895 
9896 #define VK_NV_glsl_shader 1
9897 #define VK_NV_GLSL_SHADER_SPEC_VERSION    1
9898 #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
9899 
9900 
9901 #define VK_EXT_depth_range_unrestricted 1
9902 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
9903 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
9904 
9905 
9906 #define VK_IMG_filter_cubic 1
9907 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
9908 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
9909 
9910 
9911 #define VK_AMD_rasterization_order 1
9912 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
9913 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
9914 
9915 typedef enum VkRasterizationOrderAMD {
9916     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
9917     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
9918     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
9919 } VkRasterizationOrderAMD;
9920 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
9921     VkStructureType            sType;
9922     const void*                pNext;
9923     VkRasterizationOrderAMD    rasterizationOrder;
9924 } VkPipelineRasterizationStateRasterizationOrderAMD;
9925 
9926 
9927 
9928 #define VK_AMD_shader_trinary_minmax 1
9929 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
9930 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
9931 
9932 
9933 #define VK_AMD_shader_explicit_vertex_parameter 1
9934 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
9935 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
9936 
9937 
9938 #define VK_EXT_debug_marker 1
9939 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
9940 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
9941 typedef struct VkDebugMarkerObjectNameInfoEXT {
9942     VkStructureType               sType;
9943     const void*                   pNext;
9944     VkDebugReportObjectTypeEXT    objectType;
9945     uint64_t                      object;
9946     const char*                   pObjectName;
9947 } VkDebugMarkerObjectNameInfoEXT;
9948 
9949 typedef struct VkDebugMarkerObjectTagInfoEXT {
9950     VkStructureType               sType;
9951     const void*                   pNext;
9952     VkDebugReportObjectTypeEXT    objectType;
9953     uint64_t                      object;
9954     uint64_t                      tagName;
9955     size_t                        tagSize;
9956     const void*                   pTag;
9957 } VkDebugMarkerObjectTagInfoEXT;
9958 
9959 typedef struct VkDebugMarkerMarkerInfoEXT {
9960     VkStructureType    sType;
9961     const void*        pNext;
9962     const char*        pMarkerName;
9963     float              color[4];
9964 } VkDebugMarkerMarkerInfoEXT;
9965 
9966 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
9967 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
9968 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
9969 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
9970 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
9971 
9972 #ifndef VK_NO_PROTOTYPES
9973 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
9974     VkDevice                                    device,
9975     const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
9976 
9977 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
9978     VkDevice                                    device,
9979     const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
9980 
9981 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
9982     VkCommandBuffer                             commandBuffer,
9983     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
9984 
9985 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
9986     VkCommandBuffer                             commandBuffer);
9987 
9988 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
9989     VkCommandBuffer                             commandBuffer,
9990     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
9991 #endif
9992 
9993 
9994 #define VK_AMD_gcn_shader 1
9995 #define VK_AMD_GCN_SHADER_SPEC_VERSION    1
9996 #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
9997 
9998 
9999 #define VK_NV_dedicated_allocation 1
10000 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
10001 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
10002 typedef struct VkDedicatedAllocationImageCreateInfoNV {
10003     VkStructureType    sType;
10004     const void*        pNext;
10005     VkBool32           dedicatedAllocation;
10006 } VkDedicatedAllocationImageCreateInfoNV;
10007 
10008 typedef struct VkDedicatedAllocationBufferCreateInfoNV {
10009     VkStructureType    sType;
10010     const void*        pNext;
10011     VkBool32           dedicatedAllocation;
10012 } VkDedicatedAllocationBufferCreateInfoNV;
10013 
10014 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
10015     VkStructureType    sType;
10016     const void*        pNext;
10017     VkImage            image;
10018     VkBuffer           buffer;
10019 } VkDedicatedAllocationMemoryAllocateInfoNV;
10020 
10021 
10022 
10023 #define VK_EXT_transform_feedback 1
10024 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
10025 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
10026 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
10027 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
10028     VkStructureType    sType;
10029     void*              pNext;
10030     VkBool32           transformFeedback;
10031     VkBool32           geometryStreams;
10032 } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
10033 
10034 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
10035     VkStructureType    sType;
10036     void*              pNext;
10037     uint32_t           maxTransformFeedbackStreams;
10038     uint32_t           maxTransformFeedbackBuffers;
10039     VkDeviceSize       maxTransformFeedbackBufferSize;
10040     uint32_t           maxTransformFeedbackStreamDataSize;
10041     uint32_t           maxTransformFeedbackBufferDataSize;
10042     uint32_t           maxTransformFeedbackBufferDataStride;
10043     VkBool32           transformFeedbackQueries;
10044     VkBool32           transformFeedbackStreamsLinesTriangles;
10045     VkBool32           transformFeedbackRasterizationStreamSelect;
10046     VkBool32           transformFeedbackDraw;
10047 } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
10048 
10049 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
10050     VkStructureType                                     sType;
10051     const void*                                         pNext;
10052     VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
10053     uint32_t                                            rasterizationStream;
10054 } VkPipelineRasterizationStateStreamCreateInfoEXT;
10055 
10056 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
10057 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
10058 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
10059 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
10060 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
10061 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
10062 
10063 #ifndef VK_NO_PROTOTYPES
10064 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
10065     VkCommandBuffer                             commandBuffer,
10066     uint32_t                                    firstBinding,
10067     uint32_t                                    bindingCount,
10068     const VkBuffer*                             pBuffers,
10069     const VkDeviceSize*                         pOffsets,
10070     const VkDeviceSize*                         pSizes);
10071 
10072 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
10073     VkCommandBuffer                             commandBuffer,
10074     uint32_t                                    firstCounterBuffer,
10075     uint32_t                                    counterBufferCount,
10076     const VkBuffer*                             pCounterBuffers,
10077     const VkDeviceSize*                         pCounterBufferOffsets);
10078 
10079 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
10080     VkCommandBuffer                             commandBuffer,
10081     uint32_t                                    firstCounterBuffer,
10082     uint32_t                                    counterBufferCount,
10083     const VkBuffer*                             pCounterBuffers,
10084     const VkDeviceSize*                         pCounterBufferOffsets);
10085 
10086 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
10087     VkCommandBuffer                             commandBuffer,
10088     VkQueryPool                                 queryPool,
10089     uint32_t                                    query,
10090     VkQueryControlFlags                         flags,
10091     uint32_t                                    index);
10092 
10093 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
10094     VkCommandBuffer                             commandBuffer,
10095     VkQueryPool                                 queryPool,
10096     uint32_t                                    query,
10097     uint32_t                                    index);
10098 
10099 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
10100     VkCommandBuffer                             commandBuffer,
10101     uint32_t                                    instanceCount,
10102     uint32_t                                    firstInstance,
10103     VkBuffer                                    counterBuffer,
10104     VkDeviceSize                                counterBufferOffset,
10105     uint32_t                                    counterOffset,
10106     uint32_t                                    vertexStride);
10107 #endif
10108 
10109 
10110 #define VK_NVX_binary_import 1
10111 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
10112 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
10113 #define VK_NVX_BINARY_IMPORT_SPEC_VERSION 1
10114 #define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
10115 typedef struct VkCuModuleCreateInfoNVX {
10116     VkStructureType    sType;
10117     const void*        pNext;
10118     size_t             dataSize;
10119     const void*        pData;
10120 } VkCuModuleCreateInfoNVX;
10121 
10122 typedef struct VkCuFunctionCreateInfoNVX {
10123     VkStructureType    sType;
10124     const void*        pNext;
10125     VkCuModuleNVX      module;
10126     const char*        pName;
10127 } VkCuFunctionCreateInfoNVX;
10128 
10129 typedef struct VkCuLaunchInfoNVX {
10130     VkStructureType        sType;
10131     const void*            pNext;
10132     VkCuFunctionNVX        function;
10133     uint32_t               gridDimX;
10134     uint32_t               gridDimY;
10135     uint32_t               gridDimZ;
10136     uint32_t               blockDimX;
10137     uint32_t               blockDimY;
10138     uint32_t               blockDimZ;
10139     uint32_t               sharedMemBytes;
10140     size_t                 paramCount;
10141     const void* const *    pParams;
10142     size_t                 extraCount;
10143     const void* const *    pExtras;
10144 } VkCuLaunchInfoNVX;
10145 
10146 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
10147 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
10148 typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
10149 typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
10150 typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
10151 
10152 #ifndef VK_NO_PROTOTYPES
10153 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
10154     VkDevice                                    device,
10155     const VkCuModuleCreateInfoNVX*              pCreateInfo,
10156     const VkAllocationCallbacks*                pAllocator,
10157     VkCuModuleNVX*                              pModule);
10158 
10159 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
10160     VkDevice                                    device,
10161     const VkCuFunctionCreateInfoNVX*            pCreateInfo,
10162     const VkAllocationCallbacks*                pAllocator,
10163     VkCuFunctionNVX*                            pFunction);
10164 
10165 VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
10166     VkDevice                                    device,
10167     VkCuModuleNVX                               module,
10168     const VkAllocationCallbacks*                pAllocator);
10169 
10170 VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
10171     VkDevice                                    device,
10172     VkCuFunctionNVX                             function,
10173     const VkAllocationCallbacks*                pAllocator);
10174 
10175 VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
10176     VkCommandBuffer                             commandBuffer,
10177     const VkCuLaunchInfoNVX*                    pLaunchInfo);
10178 #endif
10179 
10180 
10181 #define VK_NVX_image_view_handle 1
10182 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
10183 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
10184 typedef struct VkImageViewHandleInfoNVX {
10185     VkStructureType     sType;
10186     const void*         pNext;
10187     VkImageView         imageView;
10188     VkDescriptorType    descriptorType;
10189     VkSampler           sampler;
10190 } VkImageViewHandleInfoNVX;
10191 
10192 typedef struct VkImageViewAddressPropertiesNVX {
10193     VkStructureType    sType;
10194     void*              pNext;
10195     VkDeviceAddress    deviceAddress;
10196     VkDeviceSize       size;
10197 } VkImageViewAddressPropertiesNVX;
10198 
10199 typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
10200 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
10201 
10202 #ifndef VK_NO_PROTOTYPES
10203 VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
10204     VkDevice                                    device,
10205     const VkImageViewHandleInfoNVX*             pInfo);
10206 
10207 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
10208     VkDevice                                    device,
10209     VkImageView                                 imageView,
10210     VkImageViewAddressPropertiesNVX*            pProperties);
10211 #endif
10212 
10213 
10214 #define VK_AMD_draw_indirect_count 1
10215 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
10216 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
10217 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
10218 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
10219 
10220 #ifndef VK_NO_PROTOTYPES
10221 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
10222     VkCommandBuffer                             commandBuffer,
10223     VkBuffer                                    buffer,
10224     VkDeviceSize                                offset,
10225     VkBuffer                                    countBuffer,
10226     VkDeviceSize                                countBufferOffset,
10227     uint32_t                                    maxDrawCount,
10228     uint32_t                                    stride);
10229 
10230 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
10231     VkCommandBuffer                             commandBuffer,
10232     VkBuffer                                    buffer,
10233     VkDeviceSize                                offset,
10234     VkBuffer                                    countBuffer,
10235     VkDeviceSize                                countBufferOffset,
10236     uint32_t                                    maxDrawCount,
10237     uint32_t                                    stride);
10238 #endif
10239 
10240 
10241 #define VK_AMD_negative_viewport_height 1
10242 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
10243 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
10244 
10245 
10246 #define VK_AMD_gpu_shader_half_float 1
10247 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
10248 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
10249 
10250 
10251 #define VK_AMD_shader_ballot 1
10252 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
10253 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
10254 
10255 
10256 #define VK_AMD_texture_gather_bias_lod 1
10257 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
10258 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
10259 typedef struct VkTextureLODGatherFormatPropertiesAMD {
10260     VkStructureType    sType;
10261     void*              pNext;
10262     VkBool32           supportsTextureGatherLODBiasAMD;
10263 } VkTextureLODGatherFormatPropertiesAMD;
10264 
10265 
10266 
10267 #define VK_AMD_shader_info 1
10268 #define VK_AMD_SHADER_INFO_SPEC_VERSION   1
10269 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
10270 
10271 typedef enum VkShaderInfoTypeAMD {
10272     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
10273     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
10274     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
10275     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
10276 } VkShaderInfoTypeAMD;
10277 typedef struct VkShaderResourceUsageAMD {
10278     uint32_t    numUsedVgprs;
10279     uint32_t    numUsedSgprs;
10280     uint32_t    ldsSizePerLocalWorkGroup;
10281     size_t      ldsUsageSizeInBytes;
10282     size_t      scratchMemUsageInBytes;
10283 } VkShaderResourceUsageAMD;
10284 
10285 typedef struct VkShaderStatisticsInfoAMD {
10286     VkShaderStageFlags          shaderStageMask;
10287     VkShaderResourceUsageAMD    resourceUsage;
10288     uint32_t                    numPhysicalVgprs;
10289     uint32_t                    numPhysicalSgprs;
10290     uint32_t                    numAvailableVgprs;
10291     uint32_t                    numAvailableSgprs;
10292     uint32_t                    computeWorkGroupSize[3];
10293 } VkShaderStatisticsInfoAMD;
10294 
10295 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
10296 
10297 #ifndef VK_NO_PROTOTYPES
10298 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
10299     VkDevice                                    device,
10300     VkPipeline                                  pipeline,
10301     VkShaderStageFlagBits                       shaderStage,
10302     VkShaderInfoTypeAMD                         infoType,
10303     size_t*                                     pInfoSize,
10304     void*                                       pInfo);
10305 #endif
10306 
10307 
10308 #define VK_AMD_shader_image_load_store_lod 1
10309 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
10310 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
10311 
10312 
10313 #define VK_NV_corner_sampled_image 1
10314 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
10315 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
10316 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
10317     VkStructureType    sType;
10318     void*              pNext;
10319     VkBool32           cornerSampledImage;
10320 } VkPhysicalDeviceCornerSampledImageFeaturesNV;
10321 
10322 
10323 
10324 #define VK_IMG_format_pvrtc 1
10325 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
10326 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
10327 
10328 
10329 #define VK_NV_external_memory_capabilities 1
10330 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
10331 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
10332 
10333 typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
10334     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
10335     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
10336     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
10337     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
10338     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
10339 } VkExternalMemoryHandleTypeFlagBitsNV;
10340 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
10341 
10342 typedef enum VkExternalMemoryFeatureFlagBitsNV {
10343     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
10344     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
10345     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
10346     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
10347 } VkExternalMemoryFeatureFlagBitsNV;
10348 typedef VkFlags VkExternalMemoryFeatureFlagsNV;
10349 typedef struct VkExternalImageFormatPropertiesNV {
10350     VkImageFormatProperties              imageFormatProperties;
10351     VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
10352     VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
10353     VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
10354 } VkExternalImageFormatPropertiesNV;
10355 
10356 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
10357 
10358 #ifndef VK_NO_PROTOTYPES
10359 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
10360     VkPhysicalDevice                            physicalDevice,
10361     VkFormat                                    format,
10362     VkImageType                                 type,
10363     VkImageTiling                               tiling,
10364     VkImageUsageFlags                           usage,
10365     VkImageCreateFlags                          flags,
10366     VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
10367     VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
10368 #endif
10369 
10370 
10371 #define VK_NV_external_memory 1
10372 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
10373 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
10374 typedef struct VkExternalMemoryImageCreateInfoNV {
10375     VkStructureType                      sType;
10376     const void*                          pNext;
10377     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
10378 } VkExternalMemoryImageCreateInfoNV;
10379 
10380 typedef struct VkExportMemoryAllocateInfoNV {
10381     VkStructureType                      sType;
10382     const void*                          pNext;
10383     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
10384 } VkExportMemoryAllocateInfoNV;
10385 
10386 
10387 
10388 #define VK_EXT_validation_flags 1
10389 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2
10390 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
10391 
10392 typedef enum VkValidationCheckEXT {
10393     VK_VALIDATION_CHECK_ALL_EXT = 0,
10394     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
10395     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
10396 } VkValidationCheckEXT;
10397 typedef struct VkValidationFlagsEXT {
10398     VkStructureType                sType;
10399     const void*                    pNext;
10400     uint32_t                       disabledValidationCheckCount;
10401     const VkValidationCheckEXT*    pDisabledValidationChecks;
10402 } VkValidationFlagsEXT;
10403 
10404 
10405 
10406 #define VK_EXT_shader_subgroup_ballot 1
10407 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
10408 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
10409 
10410 
10411 #define VK_EXT_shader_subgroup_vote 1
10412 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
10413 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
10414 
10415 
10416 #define VK_EXT_texture_compression_astc_hdr 1
10417 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
10418 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
10419 typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
10420 
10421 
10422 
10423 #define VK_EXT_astc_decode_mode 1
10424 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
10425 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
10426 typedef struct VkImageViewASTCDecodeModeEXT {
10427     VkStructureType    sType;
10428     const void*        pNext;
10429     VkFormat           decodeMode;
10430 } VkImageViewASTCDecodeModeEXT;
10431 
10432 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
10433     VkStructureType    sType;
10434     void*              pNext;
10435     VkBool32           decodeModeSharedExponent;
10436 } VkPhysicalDeviceASTCDecodeFeaturesEXT;
10437 
10438 
10439 
10440 #define VK_EXT_pipeline_robustness 1
10441 #define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
10442 #define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
10443 
10444 typedef enum VkPipelineRobustnessBufferBehaviorEXT {
10445     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0,
10446     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1,
10447     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2,
10448     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3,
10449     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 0x7FFFFFFF
10450 } VkPipelineRobustnessBufferBehaviorEXT;
10451 
10452 typedef enum VkPipelineRobustnessImageBehaviorEXT {
10453     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0,
10454     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1,
10455     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2,
10456     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3,
10457     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 0x7FFFFFFF
10458 } VkPipelineRobustnessImageBehaviorEXT;
10459 typedef struct VkPhysicalDevicePipelineRobustnessFeaturesEXT {
10460     VkStructureType    sType;
10461     void*              pNext;
10462     VkBool32           pipelineRobustness;
10463 } VkPhysicalDevicePipelineRobustnessFeaturesEXT;
10464 
10465 typedef struct VkPhysicalDevicePipelineRobustnessPropertiesEXT {
10466     VkStructureType                          sType;
10467     void*                                    pNext;
10468     VkPipelineRobustnessBufferBehaviorEXT    defaultRobustnessStorageBuffers;
10469     VkPipelineRobustnessBufferBehaviorEXT    defaultRobustnessUniformBuffers;
10470     VkPipelineRobustnessBufferBehaviorEXT    defaultRobustnessVertexInputs;
10471     VkPipelineRobustnessImageBehaviorEXT     defaultRobustnessImages;
10472 } VkPhysicalDevicePipelineRobustnessPropertiesEXT;
10473 
10474 typedef struct VkPipelineRobustnessCreateInfoEXT {
10475     VkStructureType                          sType;
10476     const void*                              pNext;
10477     VkPipelineRobustnessBufferBehaviorEXT    storageBuffers;
10478     VkPipelineRobustnessBufferBehaviorEXT    uniformBuffers;
10479     VkPipelineRobustnessBufferBehaviorEXT    vertexInputs;
10480     VkPipelineRobustnessImageBehaviorEXT     images;
10481 } VkPipelineRobustnessCreateInfoEXT;
10482 
10483 
10484 
10485 #define VK_EXT_conditional_rendering 1
10486 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
10487 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
10488 
10489 typedef enum VkConditionalRenderingFlagBitsEXT {
10490     VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
10491     VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
10492 } VkConditionalRenderingFlagBitsEXT;
10493 typedef VkFlags VkConditionalRenderingFlagsEXT;
10494 typedef struct VkConditionalRenderingBeginInfoEXT {
10495     VkStructureType                   sType;
10496     const void*                       pNext;
10497     VkBuffer                          buffer;
10498     VkDeviceSize                      offset;
10499     VkConditionalRenderingFlagsEXT    flags;
10500 } VkConditionalRenderingBeginInfoEXT;
10501 
10502 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
10503     VkStructureType    sType;
10504     void*              pNext;
10505     VkBool32           conditionalRendering;
10506     VkBool32           inheritedConditionalRendering;
10507 } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
10508 
10509 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
10510     VkStructureType    sType;
10511     const void*        pNext;
10512     VkBool32           conditionalRenderingEnable;
10513 } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
10514 
10515 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
10516 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
10517 
10518 #ifndef VK_NO_PROTOTYPES
10519 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
10520     VkCommandBuffer                             commandBuffer,
10521     const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin);
10522 
10523 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
10524     VkCommandBuffer                             commandBuffer);
10525 #endif
10526 
10527 
10528 #define VK_NV_clip_space_w_scaling 1
10529 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
10530 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
10531 typedef struct VkViewportWScalingNV {
10532     float    xcoeff;
10533     float    ycoeff;
10534 } VkViewportWScalingNV;
10535 
10536 typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
10537     VkStructureType                sType;
10538     const void*                    pNext;
10539     VkBool32                       viewportWScalingEnable;
10540     uint32_t                       viewportCount;
10541     const VkViewportWScalingNV*    pViewportWScalings;
10542 } VkPipelineViewportWScalingStateCreateInfoNV;
10543 
10544 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
10545 
10546 #ifndef VK_NO_PROTOTYPES
10547 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
10548     VkCommandBuffer                             commandBuffer,
10549     uint32_t                                    firstViewport,
10550     uint32_t                                    viewportCount,
10551     const VkViewportWScalingNV*                 pViewportWScalings);
10552 #endif
10553 
10554 
10555 #define VK_EXT_direct_mode_display 1
10556 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
10557 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
10558 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
10559 
10560 #ifndef VK_NO_PROTOTYPES
10561 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
10562     VkPhysicalDevice                            physicalDevice,
10563     VkDisplayKHR                                display);
10564 #endif
10565 
10566 
10567 #define VK_EXT_display_surface_counter 1
10568 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
10569 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
10570 
10571 typedef enum VkSurfaceCounterFlagBitsEXT {
10572     VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
10573     VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
10574     VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
10575 } VkSurfaceCounterFlagBitsEXT;
10576 typedef VkFlags VkSurfaceCounterFlagsEXT;
10577 typedef struct VkSurfaceCapabilities2EXT {
10578     VkStructureType                  sType;
10579     void*                            pNext;
10580     uint32_t                         minImageCount;
10581     uint32_t                         maxImageCount;
10582     VkExtent2D                       currentExtent;
10583     VkExtent2D                       minImageExtent;
10584     VkExtent2D                       maxImageExtent;
10585     uint32_t                         maxImageArrayLayers;
10586     VkSurfaceTransformFlagsKHR       supportedTransforms;
10587     VkSurfaceTransformFlagBitsKHR    currentTransform;
10588     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
10589     VkImageUsageFlags                supportedUsageFlags;
10590     VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
10591 } VkSurfaceCapabilities2EXT;
10592 
10593 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
10594 
10595 #ifndef VK_NO_PROTOTYPES
10596 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
10597     VkPhysicalDevice                            physicalDevice,
10598     VkSurfaceKHR                                surface,
10599     VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
10600 #endif
10601 
10602 
10603 #define VK_EXT_display_control 1
10604 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
10605 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
10606 
10607 typedef enum VkDisplayPowerStateEXT {
10608     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
10609     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
10610     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
10611     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
10612 } VkDisplayPowerStateEXT;
10613 
10614 typedef enum VkDeviceEventTypeEXT {
10615     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
10616     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
10617 } VkDeviceEventTypeEXT;
10618 
10619 typedef enum VkDisplayEventTypeEXT {
10620     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
10621     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
10622 } VkDisplayEventTypeEXT;
10623 typedef struct VkDisplayPowerInfoEXT {
10624     VkStructureType           sType;
10625     const void*               pNext;
10626     VkDisplayPowerStateEXT    powerState;
10627 } VkDisplayPowerInfoEXT;
10628 
10629 typedef struct VkDeviceEventInfoEXT {
10630     VkStructureType         sType;
10631     const void*             pNext;
10632     VkDeviceEventTypeEXT    deviceEvent;
10633 } VkDeviceEventInfoEXT;
10634 
10635 typedef struct VkDisplayEventInfoEXT {
10636     VkStructureType          sType;
10637     const void*              pNext;
10638     VkDisplayEventTypeEXT    displayEvent;
10639 } VkDisplayEventInfoEXT;
10640 
10641 typedef struct VkSwapchainCounterCreateInfoEXT {
10642     VkStructureType             sType;
10643     const void*                 pNext;
10644     VkSurfaceCounterFlagsEXT    surfaceCounters;
10645 } VkSwapchainCounterCreateInfoEXT;
10646 
10647 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
10648 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
10649 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
10650 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
10651 
10652 #ifndef VK_NO_PROTOTYPES
10653 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
10654     VkDevice                                    device,
10655     VkDisplayKHR                                display,
10656     const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
10657 
10658 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
10659     VkDevice                                    device,
10660     const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
10661     const VkAllocationCallbacks*                pAllocator,
10662     VkFence*                                    pFence);
10663 
10664 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
10665     VkDevice                                    device,
10666     VkDisplayKHR                                display,
10667     const VkDisplayEventInfoEXT*                pDisplayEventInfo,
10668     const VkAllocationCallbacks*                pAllocator,
10669     VkFence*                                    pFence);
10670 
10671 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
10672     VkDevice                                    device,
10673     VkSwapchainKHR                              swapchain,
10674     VkSurfaceCounterFlagBitsEXT                 counter,
10675     uint64_t*                                   pCounterValue);
10676 #endif
10677 
10678 
10679 #define VK_GOOGLE_display_timing 1
10680 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
10681 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
10682 typedef struct VkRefreshCycleDurationGOOGLE {
10683     uint64_t    refreshDuration;
10684 } VkRefreshCycleDurationGOOGLE;
10685 
10686 typedef struct VkPastPresentationTimingGOOGLE {
10687     uint32_t    presentID;
10688     uint64_t    desiredPresentTime;
10689     uint64_t    actualPresentTime;
10690     uint64_t    earliestPresentTime;
10691     uint64_t    presentMargin;
10692 } VkPastPresentationTimingGOOGLE;
10693 
10694 typedef struct VkPresentTimeGOOGLE {
10695     uint32_t    presentID;
10696     uint64_t    desiredPresentTime;
10697 } VkPresentTimeGOOGLE;
10698 
10699 typedef struct VkPresentTimesInfoGOOGLE {
10700     VkStructureType               sType;
10701     const void*                   pNext;
10702     uint32_t                      swapchainCount;
10703     const VkPresentTimeGOOGLE*    pTimes;
10704 } VkPresentTimesInfoGOOGLE;
10705 
10706 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
10707 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
10708 
10709 #ifndef VK_NO_PROTOTYPES
10710 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
10711     VkDevice                                    device,
10712     VkSwapchainKHR                              swapchain,
10713     VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
10714 
10715 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
10716     VkDevice                                    device,
10717     VkSwapchainKHR                              swapchain,
10718     uint32_t*                                   pPresentationTimingCount,
10719     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
10720 #endif
10721 
10722 
10723 #define VK_NV_sample_mask_override_coverage 1
10724 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
10725 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
10726 
10727 
10728 #define VK_NV_geometry_shader_passthrough 1
10729 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
10730 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
10731 
10732 
10733 #define VK_NV_viewport_array2 1
10734 #define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
10735 #define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
10736 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
10737 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
10738 
10739 
10740 #define VK_NVX_multiview_per_view_attributes 1
10741 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
10742 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
10743 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
10744     VkStructureType    sType;
10745     void*              pNext;
10746     VkBool32           perViewPositionAllComponents;
10747 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
10748 
10749 
10750 
10751 #define VK_NV_viewport_swizzle 1
10752 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
10753 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
10754 
10755 typedef enum VkViewportCoordinateSwizzleNV {
10756     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
10757     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
10758     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
10759     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
10760     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
10761     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
10762     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
10763     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
10764     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
10765 } VkViewportCoordinateSwizzleNV;
10766 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
10767 typedef struct VkViewportSwizzleNV {
10768     VkViewportCoordinateSwizzleNV    x;
10769     VkViewportCoordinateSwizzleNV    y;
10770     VkViewportCoordinateSwizzleNV    z;
10771     VkViewportCoordinateSwizzleNV    w;
10772 } VkViewportSwizzleNV;
10773 
10774 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
10775     VkStructureType                                sType;
10776     const void*                                    pNext;
10777     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
10778     uint32_t                                       viewportCount;
10779     const VkViewportSwizzleNV*                     pViewportSwizzles;
10780 } VkPipelineViewportSwizzleStateCreateInfoNV;
10781 
10782 
10783 
10784 #define VK_EXT_discard_rectangles 1
10785 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
10786 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
10787 
10788 typedef enum VkDiscardRectangleModeEXT {
10789     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
10790     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
10791     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
10792 } VkDiscardRectangleModeEXT;
10793 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
10794 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
10795     VkStructureType    sType;
10796     void*              pNext;
10797     uint32_t           maxDiscardRectangles;
10798 } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
10799 
10800 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
10801     VkStructureType                                  sType;
10802     const void*                                      pNext;
10803     VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
10804     VkDiscardRectangleModeEXT                        discardRectangleMode;
10805     uint32_t                                         discardRectangleCount;
10806     const VkRect2D*                                  pDiscardRectangles;
10807 } VkPipelineDiscardRectangleStateCreateInfoEXT;
10808 
10809 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
10810 
10811 #ifndef VK_NO_PROTOTYPES
10812 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
10813     VkCommandBuffer                             commandBuffer,
10814     uint32_t                                    firstDiscardRectangle,
10815     uint32_t                                    discardRectangleCount,
10816     const VkRect2D*                             pDiscardRectangles);
10817 #endif
10818 
10819 
10820 #define VK_EXT_conservative_rasterization 1
10821 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
10822 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
10823 
10824 typedef enum VkConservativeRasterizationModeEXT {
10825     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
10826     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
10827     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
10828     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
10829 } VkConservativeRasterizationModeEXT;
10830 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
10831 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
10832     VkStructureType    sType;
10833     void*              pNext;
10834     float              primitiveOverestimationSize;
10835     float              maxExtraPrimitiveOverestimationSize;
10836     float              extraPrimitiveOverestimationSizeGranularity;
10837     VkBool32           primitiveUnderestimation;
10838     VkBool32           conservativePointAndLineRasterization;
10839     VkBool32           degenerateTrianglesRasterized;
10840     VkBool32           degenerateLinesRasterized;
10841     VkBool32           fullyCoveredFragmentShaderInputVariable;
10842     VkBool32           conservativeRasterizationPostDepthCoverage;
10843 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
10844 
10845 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
10846     VkStructureType                                           sType;
10847     const void*                                               pNext;
10848     VkPipelineRasterizationConservativeStateCreateFlagsEXT    flags;
10849     VkConservativeRasterizationModeEXT                        conservativeRasterizationMode;
10850     float                                                     extraPrimitiveOverestimationSize;
10851 } VkPipelineRasterizationConservativeStateCreateInfoEXT;
10852 
10853 
10854 
10855 #define VK_EXT_depth_clip_enable 1
10856 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
10857 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
10858 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
10859 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
10860     VkStructureType    sType;
10861     void*              pNext;
10862     VkBool32           depthClipEnable;
10863 } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
10864 
10865 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
10866     VkStructureType                                        sType;
10867     const void*                                            pNext;
10868     VkPipelineRasterizationDepthClipStateCreateFlagsEXT    flags;
10869     VkBool32                                               depthClipEnable;
10870 } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
10871 
10872 
10873 
10874 #define VK_EXT_swapchain_colorspace 1
10875 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4
10876 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
10877 
10878 
10879 #define VK_EXT_hdr_metadata 1
10880 #define VK_EXT_HDR_METADATA_SPEC_VERSION  2
10881 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
10882 typedef struct VkXYColorEXT {
10883     float    x;
10884     float    y;
10885 } VkXYColorEXT;
10886 
10887 typedef struct VkHdrMetadataEXT {
10888     VkStructureType    sType;
10889     const void*        pNext;
10890     VkXYColorEXT       displayPrimaryRed;
10891     VkXYColorEXT       displayPrimaryGreen;
10892     VkXYColorEXT       displayPrimaryBlue;
10893     VkXYColorEXT       whitePoint;
10894     float              maxLuminance;
10895     float              minLuminance;
10896     float              maxContentLightLevel;
10897     float              maxFrameAverageLightLevel;
10898 } VkHdrMetadataEXT;
10899 
10900 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
10901 
10902 #ifndef VK_NO_PROTOTYPES
10903 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
10904     VkDevice                                    device,
10905     uint32_t                                    swapchainCount,
10906     const VkSwapchainKHR*                       pSwapchains,
10907     const VkHdrMetadataEXT*                     pMetadata);
10908 #endif
10909 
10910 
10911 #define VK_EXT_external_memory_dma_buf 1
10912 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
10913 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
10914 
10915 
10916 #define VK_EXT_queue_family_foreign 1
10917 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
10918 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
10919 #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~2U)
10920 
10921 
10922 #define VK_EXT_debug_utils 1
10923 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
10924 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   2
10925 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
10926 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
10927 
10928 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
10929     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
10930     VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
10931     VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
10932     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
10933     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
10934 } VkDebugUtilsMessageSeverityFlagBitsEXT;
10935 
10936 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
10937     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
10938     VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
10939     VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
10940     VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
10941     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
10942 } VkDebugUtilsMessageTypeFlagBitsEXT;
10943 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
10944 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
10945 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
10946 typedef struct VkDebugUtilsLabelEXT {
10947     VkStructureType    sType;
10948     const void*        pNext;
10949     const char*        pLabelName;
10950     float              color[4];
10951 } VkDebugUtilsLabelEXT;
10952 
10953 typedef struct VkDebugUtilsObjectNameInfoEXT {
10954     VkStructureType    sType;
10955     const void*        pNext;
10956     VkObjectType       objectType;
10957     uint64_t           objectHandle;
10958     const char*        pObjectName;
10959 } VkDebugUtilsObjectNameInfoEXT;
10960 
10961 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
10962     VkStructureType                              sType;
10963     const void*                                  pNext;
10964     VkDebugUtilsMessengerCallbackDataFlagsEXT    flags;
10965     const char*                                  pMessageIdName;
10966     int32_t                                      messageIdNumber;
10967     const char*                                  pMessage;
10968     uint32_t                                     queueLabelCount;
10969     const VkDebugUtilsLabelEXT*                  pQueueLabels;
10970     uint32_t                                     cmdBufLabelCount;
10971     const VkDebugUtilsLabelEXT*                  pCmdBufLabels;
10972     uint32_t                                     objectCount;
10973     const VkDebugUtilsObjectNameInfoEXT*         pObjects;
10974 } VkDebugUtilsMessengerCallbackDataEXT;
10975 
10976 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
10977     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
10978     VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,
10979     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
10980     void*                                            pUserData);
10981 
10982 typedef struct VkDebugUtilsMessengerCreateInfoEXT {
10983     VkStructureType                         sType;
10984     const void*                             pNext;
10985     VkDebugUtilsMessengerCreateFlagsEXT     flags;
10986     VkDebugUtilsMessageSeverityFlagsEXT     messageSeverity;
10987     VkDebugUtilsMessageTypeFlagsEXT         messageType;
10988     PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
10989     void*                                   pUserData;
10990 } VkDebugUtilsMessengerCreateInfoEXT;
10991 
10992 typedef struct VkDebugUtilsObjectTagInfoEXT {
10993     VkStructureType    sType;
10994     const void*        pNext;
10995     VkObjectType       objectType;
10996     uint64_t           objectHandle;
10997     uint64_t           tagName;
10998     size_t             tagSize;
10999     const void*        pTag;
11000 } VkDebugUtilsObjectTagInfoEXT;
11001 
11002 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
11003 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
11004 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
11005 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
11006 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
11007 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
11008 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
11009 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
11010 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
11011 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
11012 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
11013 
11014 #ifndef VK_NO_PROTOTYPES
11015 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
11016     VkDevice                                    device,
11017     const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
11018 
11019 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
11020     VkDevice                                    device,
11021     const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
11022 
11023 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
11024     VkQueue                                     queue,
11025     const VkDebugUtilsLabelEXT*                 pLabelInfo);
11026 
11027 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
11028     VkQueue                                     queue);
11029 
11030 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
11031     VkQueue                                     queue,
11032     const VkDebugUtilsLabelEXT*                 pLabelInfo);
11033 
11034 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
11035     VkCommandBuffer                             commandBuffer,
11036     const VkDebugUtilsLabelEXT*                 pLabelInfo);
11037 
11038 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
11039     VkCommandBuffer                             commandBuffer);
11040 
11041 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
11042     VkCommandBuffer                             commandBuffer,
11043     const VkDebugUtilsLabelEXT*                 pLabelInfo);
11044 
11045 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
11046     VkInstance                                  instance,
11047     const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo,
11048     const VkAllocationCallbacks*                pAllocator,
11049     VkDebugUtilsMessengerEXT*                   pMessenger);
11050 
11051 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
11052     VkInstance                                  instance,
11053     VkDebugUtilsMessengerEXT                    messenger,
11054     const VkAllocationCallbacks*                pAllocator);
11055 
11056 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
11057     VkInstance                                  instance,
11058     VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
11059     VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
11060     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
11061 #endif
11062 
11063 
11064 #define VK_EXT_sampler_filter_minmax 1
11065 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
11066 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
11067 typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
11068 
11069 typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
11070 
11071 typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
11072 
11073 
11074 
11075 #define VK_AMD_gpu_shader_int16 1
11076 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
11077 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
11078 
11079 
11080 #define VK_AMD_mixed_attachment_samples 1
11081 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
11082 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
11083 
11084 
11085 #define VK_AMD_shader_fragment_mask 1
11086 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
11087 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
11088 
11089 
11090 #define VK_EXT_inline_uniform_block 1
11091 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
11092 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
11093 typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
11094 
11095 typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
11096 
11097 typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
11098 
11099 typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
11100 
11101 
11102 
11103 #define VK_EXT_shader_stencil_export 1
11104 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
11105 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
11106 
11107 
11108 #define VK_EXT_sample_locations 1
11109 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
11110 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
11111 typedef struct VkSampleLocationEXT {
11112     float    x;
11113     float    y;
11114 } VkSampleLocationEXT;
11115 
11116 typedef struct VkSampleLocationsInfoEXT {
11117     VkStructureType               sType;
11118     const void*                   pNext;
11119     VkSampleCountFlagBits         sampleLocationsPerPixel;
11120     VkExtent2D                    sampleLocationGridSize;
11121     uint32_t                      sampleLocationsCount;
11122     const VkSampleLocationEXT*    pSampleLocations;
11123 } VkSampleLocationsInfoEXT;
11124 
11125 typedef struct VkAttachmentSampleLocationsEXT {
11126     uint32_t                    attachmentIndex;
11127     VkSampleLocationsInfoEXT    sampleLocationsInfo;
11128 } VkAttachmentSampleLocationsEXT;
11129 
11130 typedef struct VkSubpassSampleLocationsEXT {
11131     uint32_t                    subpassIndex;
11132     VkSampleLocationsInfoEXT    sampleLocationsInfo;
11133 } VkSubpassSampleLocationsEXT;
11134 
11135 typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
11136     VkStructureType                          sType;
11137     const void*                              pNext;
11138     uint32_t                                 attachmentInitialSampleLocationsCount;
11139     const VkAttachmentSampleLocationsEXT*    pAttachmentInitialSampleLocations;
11140     uint32_t                                 postSubpassSampleLocationsCount;
11141     const VkSubpassSampleLocationsEXT*       pPostSubpassSampleLocations;
11142 } VkRenderPassSampleLocationsBeginInfoEXT;
11143 
11144 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
11145     VkStructureType             sType;
11146     const void*                 pNext;
11147     VkBool32                    sampleLocationsEnable;
11148     VkSampleLocationsInfoEXT    sampleLocationsInfo;
11149 } VkPipelineSampleLocationsStateCreateInfoEXT;
11150 
11151 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
11152     VkStructureType       sType;
11153     void*                 pNext;
11154     VkSampleCountFlags    sampleLocationSampleCounts;
11155     VkExtent2D            maxSampleLocationGridSize;
11156     float                 sampleLocationCoordinateRange[2];
11157     uint32_t              sampleLocationSubPixelBits;
11158     VkBool32              variableSampleLocations;
11159 } VkPhysicalDeviceSampleLocationsPropertiesEXT;
11160 
11161 typedef struct VkMultisamplePropertiesEXT {
11162     VkStructureType    sType;
11163     void*              pNext;
11164     VkExtent2D         maxSampleLocationGridSize;
11165 } VkMultisamplePropertiesEXT;
11166 
11167 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
11168 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
11169 
11170 #ifndef VK_NO_PROTOTYPES
11171 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
11172     VkCommandBuffer                             commandBuffer,
11173     const VkSampleLocationsInfoEXT*             pSampleLocationsInfo);
11174 
11175 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
11176     VkPhysicalDevice                            physicalDevice,
11177     VkSampleCountFlagBits                       samples,
11178     VkMultisamplePropertiesEXT*                 pMultisampleProperties);
11179 #endif
11180 
11181 
11182 #define VK_EXT_blend_operation_advanced 1
11183 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
11184 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
11185 
11186 typedef enum VkBlendOverlapEXT {
11187     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
11188     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
11189     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
11190     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
11191 } VkBlendOverlapEXT;
11192 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
11193     VkStructureType    sType;
11194     void*              pNext;
11195     VkBool32           advancedBlendCoherentOperations;
11196 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
11197 
11198 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
11199     VkStructureType    sType;
11200     void*              pNext;
11201     uint32_t           advancedBlendMaxColorAttachments;
11202     VkBool32           advancedBlendIndependentBlend;
11203     VkBool32           advancedBlendNonPremultipliedSrcColor;
11204     VkBool32           advancedBlendNonPremultipliedDstColor;
11205     VkBool32           advancedBlendCorrelatedOverlap;
11206     VkBool32           advancedBlendAllOperations;
11207 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
11208 
11209 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
11210     VkStructureType      sType;
11211     const void*          pNext;
11212     VkBool32             srcPremultiplied;
11213     VkBool32             dstPremultiplied;
11214     VkBlendOverlapEXT    blendOverlap;
11215 } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
11216 
11217 
11218 
11219 #define VK_NV_fragment_coverage_to_color 1
11220 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
11221 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
11222 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
11223 typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
11224     VkStructureType                                sType;
11225     const void*                                    pNext;
11226     VkPipelineCoverageToColorStateCreateFlagsNV    flags;
11227     VkBool32                                       coverageToColorEnable;
11228     uint32_t                                       coverageToColorLocation;
11229 } VkPipelineCoverageToColorStateCreateInfoNV;
11230 
11231 
11232 
11233 #define VK_NV_framebuffer_mixed_samples 1
11234 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
11235 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
11236 
11237 typedef enum VkCoverageModulationModeNV {
11238     VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
11239     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
11240     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
11241     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
11242     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
11243 } VkCoverageModulationModeNV;
11244 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
11245 typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
11246     VkStructureType                                   sType;
11247     const void*                                       pNext;
11248     VkPipelineCoverageModulationStateCreateFlagsNV    flags;
11249     VkCoverageModulationModeNV                        coverageModulationMode;
11250     VkBool32                                          coverageModulationTableEnable;
11251     uint32_t                                          coverageModulationTableCount;
11252     const float*                                      pCoverageModulationTable;
11253 } VkPipelineCoverageModulationStateCreateInfoNV;
11254 
11255 
11256 
11257 #define VK_NV_fill_rectangle 1
11258 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
11259 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
11260 
11261 
11262 #define VK_NV_shader_sm_builtins 1
11263 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
11264 #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
11265 typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
11266     VkStructureType    sType;
11267     void*              pNext;
11268     uint32_t           shaderSMCount;
11269     uint32_t           shaderWarpsPerSM;
11270 } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
11271 
11272 typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
11273     VkStructureType    sType;
11274     void*              pNext;
11275     VkBool32           shaderSMBuiltins;
11276 } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
11277 
11278 
11279 
11280 #define VK_EXT_post_depth_coverage 1
11281 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
11282 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
11283 
11284 
11285 #define VK_EXT_image_drm_format_modifier 1
11286 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
11287 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
11288 typedef struct VkDrmFormatModifierPropertiesEXT {
11289     uint64_t                drmFormatModifier;
11290     uint32_t                drmFormatModifierPlaneCount;
11291     VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
11292 } VkDrmFormatModifierPropertiesEXT;
11293 
11294 typedef struct VkDrmFormatModifierPropertiesListEXT {
11295     VkStructureType                      sType;
11296     void*                                pNext;
11297     uint32_t                             drmFormatModifierCount;
11298     VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties;
11299 } VkDrmFormatModifierPropertiesListEXT;
11300 
11301 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
11302     VkStructureType    sType;
11303     const void*        pNext;
11304     uint64_t           drmFormatModifier;
11305     VkSharingMode      sharingMode;
11306     uint32_t           queueFamilyIndexCount;
11307     const uint32_t*    pQueueFamilyIndices;
11308 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
11309 
11310 typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
11311     VkStructureType    sType;
11312     const void*        pNext;
11313     uint32_t           drmFormatModifierCount;
11314     const uint64_t*    pDrmFormatModifiers;
11315 } VkImageDrmFormatModifierListCreateInfoEXT;
11316 
11317 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
11318     VkStructureType               sType;
11319     const void*                   pNext;
11320     uint64_t                      drmFormatModifier;
11321     uint32_t                      drmFormatModifierPlaneCount;
11322     const VkSubresourceLayout*    pPlaneLayouts;
11323 } VkImageDrmFormatModifierExplicitCreateInfoEXT;
11324 
11325 typedef struct VkImageDrmFormatModifierPropertiesEXT {
11326     VkStructureType    sType;
11327     void*              pNext;
11328     uint64_t           drmFormatModifier;
11329 } VkImageDrmFormatModifierPropertiesEXT;
11330 
11331 typedef struct VkDrmFormatModifierProperties2EXT {
11332     uint64_t                 drmFormatModifier;
11333     uint32_t                 drmFormatModifierPlaneCount;
11334     VkFormatFeatureFlags2    drmFormatModifierTilingFeatures;
11335 } VkDrmFormatModifierProperties2EXT;
11336 
11337 typedef struct VkDrmFormatModifierPropertiesList2EXT {
11338     VkStructureType                       sType;
11339     void*                                 pNext;
11340     uint32_t                              drmFormatModifierCount;
11341     VkDrmFormatModifierProperties2EXT*    pDrmFormatModifierProperties;
11342 } VkDrmFormatModifierPropertiesList2EXT;
11343 
11344 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
11345 
11346 #ifndef VK_NO_PROTOTYPES
11347 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
11348     VkDevice                                    device,
11349     VkImage                                     image,
11350     VkImageDrmFormatModifierPropertiesEXT*      pProperties);
11351 #endif
11352 
11353 
11354 #define VK_EXT_validation_cache 1
11355 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
11356 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
11357 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
11358 
11359 typedef enum VkValidationCacheHeaderVersionEXT {
11360     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
11361     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
11362 } VkValidationCacheHeaderVersionEXT;
11363 typedef VkFlags VkValidationCacheCreateFlagsEXT;
11364 typedef struct VkValidationCacheCreateInfoEXT {
11365     VkStructureType                    sType;
11366     const void*                        pNext;
11367     VkValidationCacheCreateFlagsEXT    flags;
11368     size_t                             initialDataSize;
11369     const void*                        pInitialData;
11370 } VkValidationCacheCreateInfoEXT;
11371 
11372 typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
11373     VkStructureType         sType;
11374     const void*             pNext;
11375     VkValidationCacheEXT    validationCache;
11376 } VkShaderModuleValidationCacheCreateInfoEXT;
11377 
11378 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
11379 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
11380 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
11381 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
11382 
11383 #ifndef VK_NO_PROTOTYPES
11384 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
11385     VkDevice                                    device,
11386     const VkValidationCacheCreateInfoEXT*       pCreateInfo,
11387     const VkAllocationCallbacks*                pAllocator,
11388     VkValidationCacheEXT*                       pValidationCache);
11389 
11390 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
11391     VkDevice                                    device,
11392     VkValidationCacheEXT                        validationCache,
11393     const VkAllocationCallbacks*                pAllocator);
11394 
11395 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
11396     VkDevice                                    device,
11397     VkValidationCacheEXT                        dstCache,
11398     uint32_t                                    srcCacheCount,
11399     const VkValidationCacheEXT*                 pSrcCaches);
11400 
11401 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
11402     VkDevice                                    device,
11403     VkValidationCacheEXT                        validationCache,
11404     size_t*                                     pDataSize,
11405     void*                                       pData);
11406 #endif
11407 
11408 
11409 #define VK_EXT_descriptor_indexing 1
11410 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
11411 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
11412 typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
11413 
11414 typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
11415 
11416 typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
11417 
11418 typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
11419 
11420 typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
11421 
11422 typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
11423 
11424 typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
11425 
11426 
11427 
11428 #define VK_EXT_shader_viewport_index_layer 1
11429 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
11430 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
11431 
11432 
11433 #define VK_NV_shading_rate_image 1
11434 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
11435 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
11436 
11437 typedef enum VkShadingRatePaletteEntryNV {
11438     VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
11439     VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
11440     VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
11441     VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
11442     VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
11443     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
11444     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
11445     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
11446     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
11447     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
11448     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
11449     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
11450     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
11451 } VkShadingRatePaletteEntryNV;
11452 
11453 typedef enum VkCoarseSampleOrderTypeNV {
11454     VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
11455     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
11456     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
11457     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
11458     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
11459 } VkCoarseSampleOrderTypeNV;
11460 typedef struct VkShadingRatePaletteNV {
11461     uint32_t                              shadingRatePaletteEntryCount;
11462     const VkShadingRatePaletteEntryNV*    pShadingRatePaletteEntries;
11463 } VkShadingRatePaletteNV;
11464 
11465 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
11466     VkStructureType                  sType;
11467     const void*                      pNext;
11468     VkBool32                         shadingRateImageEnable;
11469     uint32_t                         viewportCount;
11470     const VkShadingRatePaletteNV*    pShadingRatePalettes;
11471 } VkPipelineViewportShadingRateImageStateCreateInfoNV;
11472 
11473 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
11474     VkStructureType    sType;
11475     void*              pNext;
11476     VkBool32           shadingRateImage;
11477     VkBool32           shadingRateCoarseSampleOrder;
11478 } VkPhysicalDeviceShadingRateImageFeaturesNV;
11479 
11480 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
11481     VkStructureType    sType;
11482     void*              pNext;
11483     VkExtent2D         shadingRateTexelSize;
11484     uint32_t           shadingRatePaletteSize;
11485     uint32_t           shadingRateMaxCoarseSamples;
11486 } VkPhysicalDeviceShadingRateImagePropertiesNV;
11487 
11488 typedef struct VkCoarseSampleLocationNV {
11489     uint32_t    pixelX;
11490     uint32_t    pixelY;
11491     uint32_t    sample;
11492 } VkCoarseSampleLocationNV;
11493 
11494 typedef struct VkCoarseSampleOrderCustomNV {
11495     VkShadingRatePaletteEntryNV        shadingRate;
11496     uint32_t                           sampleCount;
11497     uint32_t                           sampleLocationCount;
11498     const VkCoarseSampleLocationNV*    pSampleLocations;
11499 } VkCoarseSampleOrderCustomNV;
11500 
11501 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
11502     VkStructureType                       sType;
11503     const void*                           pNext;
11504     VkCoarseSampleOrderTypeNV             sampleOrderType;
11505     uint32_t                              customSampleOrderCount;
11506     const VkCoarseSampleOrderCustomNV*    pCustomSampleOrders;
11507 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
11508 
11509 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
11510 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
11511 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
11512 
11513 #ifndef VK_NO_PROTOTYPES
11514 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
11515     VkCommandBuffer                             commandBuffer,
11516     VkImageView                                 imageView,
11517     VkImageLayout                               imageLayout);
11518 
11519 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
11520     VkCommandBuffer                             commandBuffer,
11521     uint32_t                                    firstViewport,
11522     uint32_t                                    viewportCount,
11523     const VkShadingRatePaletteNV*               pShadingRatePalettes);
11524 
11525 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
11526     VkCommandBuffer                             commandBuffer,
11527     VkCoarseSampleOrderTypeNV                   sampleOrderType,
11528     uint32_t                                    customSampleOrderCount,
11529     const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders);
11530 #endif
11531 
11532 
11533 #define VK_NV_ray_tracing 1
11534 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
11535 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
11536 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
11537 #define VK_SHADER_UNUSED_KHR              (~0U)
11538 #define VK_SHADER_UNUSED_NV               VK_SHADER_UNUSED_KHR
11539 
11540 typedef enum VkRayTracingShaderGroupTypeKHR {
11541     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
11542     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
11543     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
11544     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
11545     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
11546     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
11547     VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
11548 } VkRayTracingShaderGroupTypeKHR;
11549 typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
11550 
11551 
11552 typedef enum VkGeometryTypeKHR {
11553     VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
11554     VK_GEOMETRY_TYPE_AABBS_KHR = 1,
11555     VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
11556     VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
11557     VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
11558     VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
11559 } VkGeometryTypeKHR;
11560 typedef VkGeometryTypeKHR VkGeometryTypeNV;
11561 
11562 
11563 typedef enum VkAccelerationStructureTypeKHR {
11564     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
11565     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
11566     VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
11567     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
11568     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
11569     VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
11570 } VkAccelerationStructureTypeKHR;
11571 typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
11572 
11573 
11574 typedef enum VkCopyAccelerationStructureModeKHR {
11575     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
11576     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
11577     VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
11578     VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
11579     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
11580     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
11581     VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
11582 } VkCopyAccelerationStructureModeKHR;
11583 typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
11584 
11585 
11586 typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
11587     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
11588     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
11589     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
11590     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
11591 } VkAccelerationStructureMemoryRequirementsTypeNV;
11592 
11593 typedef enum VkGeometryFlagBitsKHR {
11594     VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
11595     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
11596     VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
11597     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
11598     VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11599 } VkGeometryFlagBitsKHR;
11600 typedef VkFlags VkGeometryFlagsKHR;
11601 typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
11602 
11603 typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
11604 
11605 
11606 typedef enum VkGeometryInstanceFlagBitsKHR {
11607     VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
11608     VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
11609     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
11610     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
11611     VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0x00000010,
11612     VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000020,
11613     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
11614     VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
11615     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
11616     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
11617     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
11618     VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11619 } VkGeometryInstanceFlagBitsKHR;
11620 typedef VkFlags VkGeometryInstanceFlagsKHR;
11621 typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
11622 
11623 typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
11624 
11625 
11626 typedef enum VkBuildAccelerationStructureFlagBitsKHR {
11627     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
11628     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
11629     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
11630     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
11631     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
11632     VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
11633     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x00000040,
11634     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000080,
11635     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x00000100,
11636     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
11637     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
11638     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
11639     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
11640     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
11641     VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11642 } VkBuildAccelerationStructureFlagBitsKHR;
11643 typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
11644 typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
11645 
11646 typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
11647 
11648 typedef struct VkRayTracingShaderGroupCreateInfoNV {
11649     VkStructureType                   sType;
11650     const void*                       pNext;
11651     VkRayTracingShaderGroupTypeKHR    type;
11652     uint32_t                          generalShader;
11653     uint32_t                          closestHitShader;
11654     uint32_t                          anyHitShader;
11655     uint32_t                          intersectionShader;
11656 } VkRayTracingShaderGroupCreateInfoNV;
11657 
11658 typedef struct VkRayTracingPipelineCreateInfoNV {
11659     VkStructureType                               sType;
11660     const void*                                   pNext;
11661     VkPipelineCreateFlags                         flags;
11662     uint32_t                                      stageCount;
11663     const VkPipelineShaderStageCreateInfo*        pStages;
11664     uint32_t                                      groupCount;
11665     const VkRayTracingShaderGroupCreateInfoNV*    pGroups;
11666     uint32_t                                      maxRecursionDepth;
11667     VkPipelineLayout                              layout;
11668     VkPipeline                                    basePipelineHandle;
11669     int32_t                                       basePipelineIndex;
11670 } VkRayTracingPipelineCreateInfoNV;
11671 
11672 typedef struct VkGeometryTrianglesNV {
11673     VkStructureType    sType;
11674     const void*        pNext;
11675     VkBuffer           vertexData;
11676     VkDeviceSize       vertexOffset;
11677     uint32_t           vertexCount;
11678     VkDeviceSize       vertexStride;
11679     VkFormat           vertexFormat;
11680     VkBuffer           indexData;
11681     VkDeviceSize       indexOffset;
11682     uint32_t           indexCount;
11683     VkIndexType        indexType;
11684     VkBuffer           transformData;
11685     VkDeviceSize       transformOffset;
11686 } VkGeometryTrianglesNV;
11687 
11688 typedef struct VkGeometryAABBNV {
11689     VkStructureType    sType;
11690     const void*        pNext;
11691     VkBuffer           aabbData;
11692     uint32_t           numAABBs;
11693     uint32_t           stride;
11694     VkDeviceSize       offset;
11695 } VkGeometryAABBNV;
11696 
11697 typedef struct VkGeometryDataNV {
11698     VkGeometryTrianglesNV    triangles;
11699     VkGeometryAABBNV         aabbs;
11700 } VkGeometryDataNV;
11701 
11702 typedef struct VkGeometryNV {
11703     VkStructureType       sType;
11704     const void*           pNext;
11705     VkGeometryTypeKHR     geometryType;
11706     VkGeometryDataNV      geometry;
11707     VkGeometryFlagsKHR    flags;
11708 } VkGeometryNV;
11709 
11710 typedef struct VkAccelerationStructureInfoNV {
11711     VkStructureType                        sType;
11712     const void*                            pNext;
11713     VkAccelerationStructureTypeNV          type;
11714     VkBuildAccelerationStructureFlagsNV    flags;
11715     uint32_t                               instanceCount;
11716     uint32_t                               geometryCount;
11717     const VkGeometryNV*                    pGeometries;
11718 } VkAccelerationStructureInfoNV;
11719 
11720 typedef struct VkAccelerationStructureCreateInfoNV {
11721     VkStructureType                  sType;
11722     const void*                      pNext;
11723     VkDeviceSize                     compactedSize;
11724     VkAccelerationStructureInfoNV    info;
11725 } VkAccelerationStructureCreateInfoNV;
11726 
11727 typedef struct VkBindAccelerationStructureMemoryInfoNV {
11728     VkStructureType              sType;
11729     const void*                  pNext;
11730     VkAccelerationStructureNV    accelerationStructure;
11731     VkDeviceMemory               memory;
11732     VkDeviceSize                 memoryOffset;
11733     uint32_t                     deviceIndexCount;
11734     const uint32_t*              pDeviceIndices;
11735 } VkBindAccelerationStructureMemoryInfoNV;
11736 
11737 typedef struct VkWriteDescriptorSetAccelerationStructureNV {
11738     VkStructureType                     sType;
11739     const void*                         pNext;
11740     uint32_t                            accelerationStructureCount;
11741     const VkAccelerationStructureNV*    pAccelerationStructures;
11742 } VkWriteDescriptorSetAccelerationStructureNV;
11743 
11744 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
11745     VkStructureType                                    sType;
11746     const void*                                        pNext;
11747     VkAccelerationStructureMemoryRequirementsTypeNV    type;
11748     VkAccelerationStructureNV                          accelerationStructure;
11749 } VkAccelerationStructureMemoryRequirementsInfoNV;
11750 
11751 typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
11752     VkStructureType    sType;
11753     void*              pNext;
11754     uint32_t           shaderGroupHandleSize;
11755     uint32_t           maxRecursionDepth;
11756     uint32_t           maxShaderGroupStride;
11757     uint32_t           shaderGroupBaseAlignment;
11758     uint64_t           maxGeometryCount;
11759     uint64_t           maxInstanceCount;
11760     uint64_t           maxTriangleCount;
11761     uint32_t           maxDescriptorSetAccelerationStructures;
11762 } VkPhysicalDeviceRayTracingPropertiesNV;
11763 
11764 typedef struct VkTransformMatrixKHR {
11765     float    matrix[3][4];
11766 } VkTransformMatrixKHR;
11767 
11768 typedef VkTransformMatrixKHR VkTransformMatrixNV;
11769 
11770 typedef struct VkAabbPositionsKHR {
11771     float    minX;
11772     float    minY;
11773     float    minZ;
11774     float    maxX;
11775     float    maxY;
11776     float    maxZ;
11777 } VkAabbPositionsKHR;
11778 
11779 typedef VkAabbPositionsKHR VkAabbPositionsNV;
11780 
11781 typedef struct VkAccelerationStructureInstanceKHR {
11782     VkTransformMatrixKHR          transform;
11783     uint32_t                      instanceCustomIndex:24;
11784     uint32_t                      mask:8;
11785     uint32_t                      instanceShaderBindingTableRecordOffset:24;
11786     VkGeometryInstanceFlagsKHR    flags:8;
11787     uint64_t                      accelerationStructureReference;
11788 } VkAccelerationStructureInstanceKHR;
11789 
11790 typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
11791 
11792 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
11793 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
11794 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
11795 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
11796 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);
11797 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
11798 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);
11799 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
11800 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
11801 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
11802 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
11803 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
11804 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
11805 
11806 #ifndef VK_NO_PROTOTYPES
11807 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
11808     VkDevice                                    device,
11809     const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
11810     const VkAllocationCallbacks*                pAllocator,
11811     VkAccelerationStructureNV*                  pAccelerationStructure);
11812 
11813 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
11814     VkDevice                                    device,
11815     VkAccelerationStructureNV                   accelerationStructure,
11816     const VkAllocationCallbacks*                pAllocator);
11817 
11818 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
11819     VkDevice                                    device,
11820     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
11821     VkMemoryRequirements2KHR*                   pMemoryRequirements);
11822 
11823 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
11824     VkDevice                                    device,
11825     uint32_t                                    bindInfoCount,
11826     const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
11827 
11828 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
11829     VkCommandBuffer                             commandBuffer,
11830     const VkAccelerationStructureInfoNV*        pInfo,
11831     VkBuffer                                    instanceData,
11832     VkDeviceSize                                instanceOffset,
11833     VkBool32                                    update,
11834     VkAccelerationStructureNV                   dst,
11835     VkAccelerationStructureNV                   src,
11836     VkBuffer                                    scratch,
11837     VkDeviceSize                                scratchOffset);
11838 
11839 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
11840     VkCommandBuffer                             commandBuffer,
11841     VkAccelerationStructureNV                   dst,
11842     VkAccelerationStructureNV                   src,
11843     VkCopyAccelerationStructureModeKHR          mode);
11844 
11845 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
11846     VkCommandBuffer                             commandBuffer,
11847     VkBuffer                                    raygenShaderBindingTableBuffer,
11848     VkDeviceSize                                raygenShaderBindingOffset,
11849     VkBuffer                                    missShaderBindingTableBuffer,
11850     VkDeviceSize                                missShaderBindingOffset,
11851     VkDeviceSize                                missShaderBindingStride,
11852     VkBuffer                                    hitShaderBindingTableBuffer,
11853     VkDeviceSize                                hitShaderBindingOffset,
11854     VkDeviceSize                                hitShaderBindingStride,
11855     VkBuffer                                    callableShaderBindingTableBuffer,
11856     VkDeviceSize                                callableShaderBindingOffset,
11857     VkDeviceSize                                callableShaderBindingStride,
11858     uint32_t                                    width,
11859     uint32_t                                    height,
11860     uint32_t                                    depth);
11861 
11862 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
11863     VkDevice                                    device,
11864     VkPipelineCache                             pipelineCache,
11865     uint32_t                                    createInfoCount,
11866     const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
11867     const VkAllocationCallbacks*                pAllocator,
11868     VkPipeline*                                 pPipelines);
11869 
11870 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
11871     VkDevice                                    device,
11872     VkPipeline                                  pipeline,
11873     uint32_t                                    firstGroup,
11874     uint32_t                                    groupCount,
11875     size_t                                      dataSize,
11876     void*                                       pData);
11877 
11878 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
11879     VkDevice                                    device,
11880     VkPipeline                                  pipeline,
11881     uint32_t                                    firstGroup,
11882     uint32_t                                    groupCount,
11883     size_t                                      dataSize,
11884     void*                                       pData);
11885 
11886 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
11887     VkDevice                                    device,
11888     VkAccelerationStructureNV                   accelerationStructure,
11889     size_t                                      dataSize,
11890     void*                                       pData);
11891 
11892 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
11893     VkCommandBuffer                             commandBuffer,
11894     uint32_t                                    accelerationStructureCount,
11895     const VkAccelerationStructureNV*            pAccelerationStructures,
11896     VkQueryType                                 queryType,
11897     VkQueryPool                                 queryPool,
11898     uint32_t                                    firstQuery);
11899 
11900 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
11901     VkDevice                                    device,
11902     VkPipeline                                  pipeline,
11903     uint32_t                                    shader);
11904 #endif
11905 
11906 
11907 #define VK_NV_representative_fragment_test 1
11908 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
11909 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
11910 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
11911     VkStructureType    sType;
11912     void*              pNext;
11913     VkBool32           representativeFragmentTest;
11914 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
11915 
11916 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
11917     VkStructureType    sType;
11918     const void*        pNext;
11919     VkBool32           representativeFragmentTestEnable;
11920 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
11921 
11922 
11923 
11924 #define VK_EXT_filter_cubic 1
11925 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION  3
11926 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
11927 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
11928     VkStructureType    sType;
11929     void*              pNext;
11930     VkImageViewType    imageViewType;
11931 } VkPhysicalDeviceImageViewImageFormatInfoEXT;
11932 
11933 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
11934     VkStructureType    sType;
11935     void*              pNext;
11936     VkBool32           filterCubic;
11937     VkBool32           filterCubicMinmax;
11938 } VkFilterCubicImageViewImageFormatPropertiesEXT;
11939 
11940 
11941 
11942 #define VK_QCOM_render_pass_shader_resolve 1
11943 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
11944 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
11945 
11946 
11947 #define VK_EXT_global_priority 1
11948 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
11949 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
11950 typedef VkQueueGlobalPriorityKHR VkQueueGlobalPriorityEXT;
11951 
11952 typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT;
11953 
11954 
11955 
11956 #define VK_EXT_external_memory_host 1
11957 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
11958 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
11959 typedef struct VkImportMemoryHostPointerInfoEXT {
11960     VkStructureType                       sType;
11961     const void*                           pNext;
11962     VkExternalMemoryHandleTypeFlagBits    handleType;
11963     void*                                 pHostPointer;
11964 } VkImportMemoryHostPointerInfoEXT;
11965 
11966 typedef struct VkMemoryHostPointerPropertiesEXT {
11967     VkStructureType    sType;
11968     void*              pNext;
11969     uint32_t           memoryTypeBits;
11970 } VkMemoryHostPointerPropertiesEXT;
11971 
11972 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
11973     VkStructureType    sType;
11974     void*              pNext;
11975     VkDeviceSize       minImportedHostPointerAlignment;
11976 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
11977 
11978 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
11979 
11980 #ifndef VK_NO_PROTOTYPES
11981 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
11982     VkDevice                                    device,
11983     VkExternalMemoryHandleTypeFlagBits          handleType,
11984     const void*                                 pHostPointer,
11985     VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties);
11986 #endif
11987 
11988 
11989 #define VK_AMD_buffer_marker 1
11990 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
11991 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
11992 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
11993 
11994 #ifndef VK_NO_PROTOTYPES
11995 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
11996     VkCommandBuffer                             commandBuffer,
11997     VkPipelineStageFlagBits                     pipelineStage,
11998     VkBuffer                                    dstBuffer,
11999     VkDeviceSize                                dstOffset,
12000     uint32_t                                    marker);
12001 #endif
12002 
12003 
12004 #define VK_AMD_pipeline_compiler_control 1
12005 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
12006 #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
12007 
12008 typedef enum VkPipelineCompilerControlFlagBitsAMD {
12009     VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
12010 } VkPipelineCompilerControlFlagBitsAMD;
12011 typedef VkFlags VkPipelineCompilerControlFlagsAMD;
12012 typedef struct VkPipelineCompilerControlCreateInfoAMD {
12013     VkStructureType                      sType;
12014     const void*                          pNext;
12015     VkPipelineCompilerControlFlagsAMD    compilerControlFlags;
12016 } VkPipelineCompilerControlCreateInfoAMD;
12017 
12018 
12019 
12020 #define VK_EXT_calibrated_timestamps 1
12021 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
12022 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
12023 
12024 typedef enum VkTimeDomainEXT {
12025     VK_TIME_DOMAIN_DEVICE_EXT = 0,
12026     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
12027     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
12028     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
12029     VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
12030 } VkTimeDomainEXT;
12031 typedef struct VkCalibratedTimestampInfoEXT {
12032     VkStructureType    sType;
12033     const void*        pNext;
12034     VkTimeDomainEXT    timeDomain;
12035 } VkCalibratedTimestampInfoEXT;
12036 
12037 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains);
12038 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
12039 
12040 #ifndef VK_NO_PROTOTYPES
12041 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
12042     VkPhysicalDevice                            physicalDevice,
12043     uint32_t*                                   pTimeDomainCount,
12044     VkTimeDomainEXT*                            pTimeDomains);
12045 
12046 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
12047     VkDevice                                    device,
12048     uint32_t                                    timestampCount,
12049     const VkCalibratedTimestampInfoEXT*         pTimestampInfos,
12050     uint64_t*                                   pTimestamps,
12051     uint64_t*                                   pMaxDeviation);
12052 #endif
12053 
12054 
12055 #define VK_AMD_shader_core_properties 1
12056 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
12057 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
12058 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
12059     VkStructureType    sType;
12060     void*              pNext;
12061     uint32_t           shaderEngineCount;
12062     uint32_t           shaderArraysPerEngineCount;
12063     uint32_t           computeUnitsPerShaderArray;
12064     uint32_t           simdPerComputeUnit;
12065     uint32_t           wavefrontsPerSimd;
12066     uint32_t           wavefrontSize;
12067     uint32_t           sgprsPerSimd;
12068     uint32_t           minSgprAllocation;
12069     uint32_t           maxSgprAllocation;
12070     uint32_t           sgprAllocationGranularity;
12071     uint32_t           vgprsPerSimd;
12072     uint32_t           minVgprAllocation;
12073     uint32_t           maxVgprAllocation;
12074     uint32_t           vgprAllocationGranularity;
12075 } VkPhysicalDeviceShaderCorePropertiesAMD;
12076 
12077 
12078 
12079 #define VK_AMD_memory_overallocation_behavior 1
12080 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
12081 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
12082 
12083 typedef enum VkMemoryOverallocationBehaviorAMD {
12084     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
12085     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
12086     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
12087     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
12088 } VkMemoryOverallocationBehaviorAMD;
12089 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
12090     VkStructureType                      sType;
12091     const void*                          pNext;
12092     VkMemoryOverallocationBehaviorAMD    overallocationBehavior;
12093 } VkDeviceMemoryOverallocationCreateInfoAMD;
12094 
12095 
12096 
12097 #define VK_EXT_vertex_attribute_divisor 1
12098 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
12099 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
12100 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
12101     VkStructureType    sType;
12102     void*              pNext;
12103     uint32_t           maxVertexAttribDivisor;
12104 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
12105 
12106 typedef struct VkVertexInputBindingDivisorDescriptionEXT {
12107     uint32_t    binding;
12108     uint32_t    divisor;
12109 } VkVertexInputBindingDivisorDescriptionEXT;
12110 
12111 typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
12112     VkStructureType                                     sType;
12113     const void*                                         pNext;
12114     uint32_t                                            vertexBindingDivisorCount;
12115     const VkVertexInputBindingDivisorDescriptionEXT*    pVertexBindingDivisors;
12116 } VkPipelineVertexInputDivisorStateCreateInfoEXT;
12117 
12118 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
12119     VkStructureType    sType;
12120     void*              pNext;
12121     VkBool32           vertexAttributeInstanceRateDivisor;
12122     VkBool32           vertexAttributeInstanceRateZeroDivisor;
12123 } VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
12124 
12125 
12126 
12127 #define VK_EXT_pipeline_creation_feedback 1
12128 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
12129 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
12130 typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
12131 
12132 typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
12133 
12134 typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
12135 
12136 typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
12137 
12138 
12139 
12140 #define VK_NV_shader_subgroup_partitioned 1
12141 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
12142 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
12143 
12144 
12145 #define VK_NV_compute_shader_derivatives 1
12146 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
12147 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
12148 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
12149     VkStructureType    sType;
12150     void*              pNext;
12151     VkBool32           computeDerivativeGroupQuads;
12152     VkBool32           computeDerivativeGroupLinear;
12153 } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
12154 
12155 
12156 
12157 #define VK_NV_mesh_shader 1
12158 #define VK_NV_MESH_SHADER_SPEC_VERSION    1
12159 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
12160 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
12161     VkStructureType    sType;
12162     void*              pNext;
12163     VkBool32           taskShader;
12164     VkBool32           meshShader;
12165 } VkPhysicalDeviceMeshShaderFeaturesNV;
12166 
12167 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
12168     VkStructureType    sType;
12169     void*              pNext;
12170     uint32_t           maxDrawMeshTasksCount;
12171     uint32_t           maxTaskWorkGroupInvocations;
12172     uint32_t           maxTaskWorkGroupSize[3];
12173     uint32_t           maxTaskTotalMemorySize;
12174     uint32_t           maxTaskOutputCount;
12175     uint32_t           maxMeshWorkGroupInvocations;
12176     uint32_t           maxMeshWorkGroupSize[3];
12177     uint32_t           maxMeshTotalMemorySize;
12178     uint32_t           maxMeshOutputVertices;
12179     uint32_t           maxMeshOutputPrimitives;
12180     uint32_t           maxMeshMultiviewViewCount;
12181     uint32_t           meshOutputPerVertexGranularity;
12182     uint32_t           meshOutputPerPrimitiveGranularity;
12183 } VkPhysicalDeviceMeshShaderPropertiesNV;
12184 
12185 typedef struct VkDrawMeshTasksIndirectCommandNV {
12186     uint32_t    taskCount;
12187     uint32_t    firstTask;
12188 } VkDrawMeshTasksIndirectCommandNV;
12189 
12190 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
12191 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
12192 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
12193 
12194 #ifndef VK_NO_PROTOTYPES
12195 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
12196     VkCommandBuffer                             commandBuffer,
12197     uint32_t                                    taskCount,
12198     uint32_t                                    firstTask);
12199 
12200 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
12201     VkCommandBuffer                             commandBuffer,
12202     VkBuffer                                    buffer,
12203     VkDeviceSize                                offset,
12204     uint32_t                                    drawCount,
12205     uint32_t                                    stride);
12206 
12207 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
12208     VkCommandBuffer                             commandBuffer,
12209     VkBuffer                                    buffer,
12210     VkDeviceSize                                offset,
12211     VkBuffer                                    countBuffer,
12212     VkDeviceSize                                countBufferOffset,
12213     uint32_t                                    maxDrawCount,
12214     uint32_t                                    stride);
12215 #endif
12216 
12217 
12218 #define VK_NV_fragment_shader_barycentric 1
12219 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
12220 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
12221 typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
12222 
12223 
12224 
12225 #define VK_NV_shader_image_footprint 1
12226 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
12227 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
12228 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
12229     VkStructureType    sType;
12230     void*              pNext;
12231     VkBool32           imageFootprint;
12232 } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
12233 
12234 
12235 
12236 #define VK_NV_scissor_exclusive 1
12237 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
12238 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
12239 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
12240     VkStructureType    sType;
12241     const void*        pNext;
12242     uint32_t           exclusiveScissorCount;
12243     const VkRect2D*    pExclusiveScissors;
12244 } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
12245 
12246 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
12247     VkStructureType    sType;
12248     void*              pNext;
12249     VkBool32           exclusiveScissor;
12250 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
12251 
12252 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
12253 
12254 #ifndef VK_NO_PROTOTYPES
12255 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
12256     VkCommandBuffer                             commandBuffer,
12257     uint32_t                                    firstExclusiveScissor,
12258     uint32_t                                    exclusiveScissorCount,
12259     const VkRect2D*                             pExclusiveScissors);
12260 #endif
12261 
12262 
12263 #define VK_NV_device_diagnostic_checkpoints 1
12264 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
12265 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
12266 typedef struct VkQueueFamilyCheckpointPropertiesNV {
12267     VkStructureType         sType;
12268     void*                   pNext;
12269     VkPipelineStageFlags    checkpointExecutionStageMask;
12270 } VkQueueFamilyCheckpointPropertiesNV;
12271 
12272 typedef struct VkCheckpointDataNV {
12273     VkStructureType            sType;
12274     void*                      pNext;
12275     VkPipelineStageFlagBits    stage;
12276     void*                      pCheckpointMarker;
12277 } VkCheckpointDataNV;
12278 
12279 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
12280 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
12281 
12282 #ifndef VK_NO_PROTOTYPES
12283 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
12284     VkCommandBuffer                             commandBuffer,
12285     const void*                                 pCheckpointMarker);
12286 
12287 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
12288     VkQueue                                     queue,
12289     uint32_t*                                   pCheckpointDataCount,
12290     VkCheckpointDataNV*                         pCheckpointData);
12291 #endif
12292 
12293 
12294 #define VK_INTEL_shader_integer_functions2 1
12295 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
12296 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
12297 typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
12298     VkStructureType    sType;
12299     void*              pNext;
12300     VkBool32           shaderIntegerFunctions2;
12301 } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
12302 
12303 
12304 
12305 #define VK_INTEL_performance_query 1
12306 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
12307 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
12308 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
12309 
12310 typedef enum VkPerformanceConfigurationTypeINTEL {
12311     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
12312     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
12313 } VkPerformanceConfigurationTypeINTEL;
12314 
12315 typedef enum VkQueryPoolSamplingModeINTEL {
12316     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
12317     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
12318 } VkQueryPoolSamplingModeINTEL;
12319 
12320 typedef enum VkPerformanceOverrideTypeINTEL {
12321     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
12322     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
12323     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
12324 } VkPerformanceOverrideTypeINTEL;
12325 
12326 typedef enum VkPerformanceParameterTypeINTEL {
12327     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
12328     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
12329     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
12330 } VkPerformanceParameterTypeINTEL;
12331 
12332 typedef enum VkPerformanceValueTypeINTEL {
12333     VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
12334     VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
12335     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
12336     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
12337     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
12338     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
12339 } VkPerformanceValueTypeINTEL;
12340 typedef union VkPerformanceValueDataINTEL {
12341     uint32_t       value32;
12342     uint64_t       value64;
12343     float          valueFloat;
12344     VkBool32       valueBool;
12345     const char*    valueString;
12346 } VkPerformanceValueDataINTEL;
12347 
12348 typedef struct VkPerformanceValueINTEL {
12349     VkPerformanceValueTypeINTEL    type;
12350     VkPerformanceValueDataINTEL    data;
12351 } VkPerformanceValueINTEL;
12352 
12353 typedef struct VkInitializePerformanceApiInfoINTEL {
12354     VkStructureType    sType;
12355     const void*        pNext;
12356     void*              pUserData;
12357 } VkInitializePerformanceApiInfoINTEL;
12358 
12359 typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
12360     VkStructureType                 sType;
12361     const void*                     pNext;
12362     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
12363 } VkQueryPoolPerformanceQueryCreateInfoINTEL;
12364 
12365 typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
12366 
12367 typedef struct VkPerformanceMarkerInfoINTEL {
12368     VkStructureType    sType;
12369     const void*        pNext;
12370     uint64_t           marker;
12371 } VkPerformanceMarkerInfoINTEL;
12372 
12373 typedef struct VkPerformanceStreamMarkerInfoINTEL {
12374     VkStructureType    sType;
12375     const void*        pNext;
12376     uint32_t           marker;
12377 } VkPerformanceStreamMarkerInfoINTEL;
12378 
12379 typedef struct VkPerformanceOverrideInfoINTEL {
12380     VkStructureType                   sType;
12381     const void*                       pNext;
12382     VkPerformanceOverrideTypeINTEL    type;
12383     VkBool32                          enable;
12384     uint64_t                          parameter;
12385 } VkPerformanceOverrideInfoINTEL;
12386 
12387 typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
12388     VkStructureType                        sType;
12389     const void*                            pNext;
12390     VkPerformanceConfigurationTypeINTEL    type;
12391 } VkPerformanceConfigurationAcquireInfoINTEL;
12392 
12393 typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
12394 typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
12395 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
12396 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
12397 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
12398 typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
12399 typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
12400 typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
12401 typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
12402 
12403 #ifndef VK_NO_PROTOTYPES
12404 VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
12405     VkDevice                                    device,
12406     const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo);
12407 
12408 VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
12409     VkDevice                                    device);
12410 
12411 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
12412     VkCommandBuffer                             commandBuffer,
12413     const VkPerformanceMarkerInfoINTEL*         pMarkerInfo);
12414 
12415 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
12416     VkCommandBuffer                             commandBuffer,
12417     const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo);
12418 
12419 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
12420     VkCommandBuffer                             commandBuffer,
12421     const VkPerformanceOverrideInfoINTEL*       pOverrideInfo);
12422 
12423 VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
12424     VkDevice                                    device,
12425     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
12426     VkPerformanceConfigurationINTEL*            pConfiguration);
12427 
12428 VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
12429     VkDevice                                    device,
12430     VkPerformanceConfigurationINTEL             configuration);
12431 
12432 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
12433     VkQueue                                     queue,
12434     VkPerformanceConfigurationINTEL             configuration);
12435 
12436 VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
12437     VkDevice                                    device,
12438     VkPerformanceParameterTypeINTEL             parameter,
12439     VkPerformanceValueINTEL*                    pValue);
12440 #endif
12441 
12442 
12443 #define VK_EXT_pci_bus_info 1
12444 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  2
12445 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
12446 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
12447     VkStructureType    sType;
12448     void*              pNext;
12449     uint32_t           pciDomain;
12450     uint32_t           pciBus;
12451     uint32_t           pciDevice;
12452     uint32_t           pciFunction;
12453 } VkPhysicalDevicePCIBusInfoPropertiesEXT;
12454 
12455 
12456 
12457 #define VK_AMD_display_native_hdr 1
12458 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
12459 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
12460 typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
12461     VkStructureType    sType;
12462     void*              pNext;
12463     VkBool32           localDimmingSupport;
12464 } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
12465 
12466 typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
12467     VkStructureType    sType;
12468     const void*        pNext;
12469     VkBool32           localDimmingEnable;
12470 } VkSwapchainDisplayNativeHdrCreateInfoAMD;
12471 
12472 typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
12473 
12474 #ifndef VK_NO_PROTOTYPES
12475 VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
12476     VkDevice                                    device,
12477     VkSwapchainKHR                              swapChain,
12478     VkBool32                                    localDimmingEnable);
12479 #endif
12480 
12481 
12482 #define VK_EXT_fragment_density_map 1
12483 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
12484 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
12485 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
12486     VkStructureType    sType;
12487     void*              pNext;
12488     VkBool32           fragmentDensityMap;
12489     VkBool32           fragmentDensityMapDynamic;
12490     VkBool32           fragmentDensityMapNonSubsampledImages;
12491 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
12492 
12493 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
12494     VkStructureType    sType;
12495     void*              pNext;
12496     VkExtent2D         minFragmentDensityTexelSize;
12497     VkExtent2D         maxFragmentDensityTexelSize;
12498     VkBool32           fragmentDensityInvocations;
12499 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
12500 
12501 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
12502     VkStructureType          sType;
12503     const void*              pNext;
12504     VkAttachmentReference    fragmentDensityMapAttachment;
12505 } VkRenderPassFragmentDensityMapCreateInfoEXT;
12506 
12507 
12508 
12509 #define VK_EXT_scalar_block_layout 1
12510 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
12511 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
12512 typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
12513 
12514 
12515 
12516 #define VK_GOOGLE_hlsl_functionality1 1
12517 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
12518 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
12519 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
12520 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
12521 
12522 
12523 #define VK_GOOGLE_decorate_string 1
12524 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
12525 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
12526 
12527 
12528 #define VK_EXT_subgroup_size_control 1
12529 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
12530 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
12531 typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
12532 
12533 typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
12534 
12535 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
12536 
12537 
12538 
12539 #define VK_AMD_shader_core_properties2 1
12540 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
12541 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
12542 
12543 typedef enum VkShaderCorePropertiesFlagBitsAMD {
12544     VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
12545 } VkShaderCorePropertiesFlagBitsAMD;
12546 typedef VkFlags VkShaderCorePropertiesFlagsAMD;
12547 typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
12548     VkStructureType                   sType;
12549     void*                             pNext;
12550     VkShaderCorePropertiesFlagsAMD    shaderCoreFeatures;
12551     uint32_t                          activeComputeUnitCount;
12552 } VkPhysicalDeviceShaderCoreProperties2AMD;
12553 
12554 
12555 
12556 #define VK_AMD_device_coherent_memory 1
12557 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
12558 #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
12559 typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
12560     VkStructureType    sType;
12561     void*              pNext;
12562     VkBool32           deviceCoherentMemory;
12563 } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
12564 
12565 
12566 
12567 #define VK_EXT_shader_image_atomic_int64 1
12568 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
12569 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
12570 typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
12571     VkStructureType    sType;
12572     void*              pNext;
12573     VkBool32           shaderImageInt64Atomics;
12574     VkBool32           sparseImageInt64Atomics;
12575 } VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
12576 
12577 
12578 
12579 #define VK_EXT_memory_budget 1
12580 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
12581 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
12582 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
12583     VkStructureType    sType;
12584     void*              pNext;
12585     VkDeviceSize       heapBudget[VK_MAX_MEMORY_HEAPS];
12586     VkDeviceSize       heapUsage[VK_MAX_MEMORY_HEAPS];
12587 } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
12588 
12589 
12590 
12591 #define VK_EXT_memory_priority 1
12592 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
12593 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
12594 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
12595     VkStructureType    sType;
12596     void*              pNext;
12597     VkBool32           memoryPriority;
12598 } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
12599 
12600 typedef struct VkMemoryPriorityAllocateInfoEXT {
12601     VkStructureType    sType;
12602     const void*        pNext;
12603     float              priority;
12604 } VkMemoryPriorityAllocateInfoEXT;
12605 
12606 
12607 
12608 #define VK_NV_dedicated_allocation_image_aliasing 1
12609 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
12610 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
12611 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
12612     VkStructureType    sType;
12613     void*              pNext;
12614     VkBool32           dedicatedAllocationImageAliasing;
12615 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
12616 
12617 
12618 
12619 #define VK_EXT_buffer_device_address 1
12620 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
12621 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
12622 typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
12623     VkStructureType    sType;
12624     void*              pNext;
12625     VkBool32           bufferDeviceAddress;
12626     VkBool32           bufferDeviceAddressCaptureReplay;
12627     VkBool32           bufferDeviceAddressMultiDevice;
12628 } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
12629 
12630 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
12631 
12632 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
12633 
12634 typedef struct VkBufferDeviceAddressCreateInfoEXT {
12635     VkStructureType    sType;
12636     const void*        pNext;
12637     VkDeviceAddress    deviceAddress;
12638 } VkBufferDeviceAddressCreateInfoEXT;
12639 
12640 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
12641 
12642 #ifndef VK_NO_PROTOTYPES
12643 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
12644     VkDevice                                    device,
12645     const VkBufferDeviceAddressInfo*            pInfo);
12646 #endif
12647 
12648 
12649 #define VK_EXT_tooling_info 1
12650 #define VK_EXT_TOOLING_INFO_SPEC_VERSION  1
12651 #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
12652 typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
12653 
12654 typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
12655 
12656 typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
12657 
12658 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
12659 
12660 #ifndef VK_NO_PROTOTYPES
12661 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
12662     VkPhysicalDevice                            physicalDevice,
12663     uint32_t*                                   pToolCount,
12664     VkPhysicalDeviceToolProperties*             pToolProperties);
12665 #endif
12666 
12667 
12668 #define VK_EXT_separate_stencil_usage 1
12669 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
12670 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
12671 typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
12672 
12673 
12674 
12675 #define VK_EXT_validation_features 1
12676 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 5
12677 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
12678 
12679 typedef enum VkValidationFeatureEnableEXT {
12680     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
12681     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
12682     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
12683     VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
12684     VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
12685     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
12686 } VkValidationFeatureEnableEXT;
12687 
12688 typedef enum VkValidationFeatureDisableEXT {
12689     VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
12690     VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
12691     VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
12692     VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
12693     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
12694     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
12695     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
12696     VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
12697     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
12698 } VkValidationFeatureDisableEXT;
12699 typedef struct VkValidationFeaturesEXT {
12700     VkStructureType                         sType;
12701     const void*                             pNext;
12702     uint32_t                                enabledValidationFeatureCount;
12703     const VkValidationFeatureEnableEXT*     pEnabledValidationFeatures;
12704     uint32_t                                disabledValidationFeatureCount;
12705     const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
12706 } VkValidationFeaturesEXT;
12707 
12708 
12709 
12710 #define VK_NV_cooperative_matrix 1
12711 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
12712 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
12713 
12714 typedef enum VkComponentTypeNV {
12715     VK_COMPONENT_TYPE_FLOAT16_NV = 0,
12716     VK_COMPONENT_TYPE_FLOAT32_NV = 1,
12717     VK_COMPONENT_TYPE_FLOAT64_NV = 2,
12718     VK_COMPONENT_TYPE_SINT8_NV = 3,
12719     VK_COMPONENT_TYPE_SINT16_NV = 4,
12720     VK_COMPONENT_TYPE_SINT32_NV = 5,
12721     VK_COMPONENT_TYPE_SINT64_NV = 6,
12722     VK_COMPONENT_TYPE_UINT8_NV = 7,
12723     VK_COMPONENT_TYPE_UINT16_NV = 8,
12724     VK_COMPONENT_TYPE_UINT32_NV = 9,
12725     VK_COMPONENT_TYPE_UINT64_NV = 10,
12726     VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
12727 } VkComponentTypeNV;
12728 
12729 typedef enum VkScopeNV {
12730     VK_SCOPE_DEVICE_NV = 1,
12731     VK_SCOPE_WORKGROUP_NV = 2,
12732     VK_SCOPE_SUBGROUP_NV = 3,
12733     VK_SCOPE_QUEUE_FAMILY_NV = 5,
12734     VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF
12735 } VkScopeNV;
12736 typedef struct VkCooperativeMatrixPropertiesNV {
12737     VkStructureType      sType;
12738     void*                pNext;
12739     uint32_t             MSize;
12740     uint32_t             NSize;
12741     uint32_t             KSize;
12742     VkComponentTypeNV    AType;
12743     VkComponentTypeNV    BType;
12744     VkComponentTypeNV    CType;
12745     VkComponentTypeNV    DType;
12746     VkScopeNV            scope;
12747 } VkCooperativeMatrixPropertiesNV;
12748 
12749 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
12750     VkStructureType    sType;
12751     void*              pNext;
12752     VkBool32           cooperativeMatrix;
12753     VkBool32           cooperativeMatrixRobustBufferAccess;
12754 } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
12755 
12756 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
12757     VkStructureType       sType;
12758     void*                 pNext;
12759     VkShaderStageFlags    cooperativeMatrixSupportedStages;
12760 } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
12761 
12762 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
12763 
12764 #ifndef VK_NO_PROTOTYPES
12765 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
12766     VkPhysicalDevice                            physicalDevice,
12767     uint32_t*                                   pPropertyCount,
12768     VkCooperativeMatrixPropertiesNV*            pProperties);
12769 #endif
12770 
12771 
12772 #define VK_NV_coverage_reduction_mode 1
12773 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
12774 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
12775 
12776 typedef enum VkCoverageReductionModeNV {
12777     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
12778     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
12779     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
12780 } VkCoverageReductionModeNV;
12781 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
12782 typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
12783     VkStructureType    sType;
12784     void*              pNext;
12785     VkBool32           coverageReductionMode;
12786 } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
12787 
12788 typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
12789     VkStructureType                                  sType;
12790     const void*                                      pNext;
12791     VkPipelineCoverageReductionStateCreateFlagsNV    flags;
12792     VkCoverageReductionModeNV                        coverageReductionMode;
12793 } VkPipelineCoverageReductionStateCreateInfoNV;
12794 
12795 typedef struct VkFramebufferMixedSamplesCombinationNV {
12796     VkStructureType              sType;
12797     void*                        pNext;
12798     VkCoverageReductionModeNV    coverageReductionMode;
12799     VkSampleCountFlagBits        rasterizationSamples;
12800     VkSampleCountFlags           depthStencilSamples;
12801     VkSampleCountFlags           colorSamples;
12802 } VkFramebufferMixedSamplesCombinationNV;
12803 
12804 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
12805 
12806 #ifndef VK_NO_PROTOTYPES
12807 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
12808     VkPhysicalDevice                            physicalDevice,
12809     uint32_t*                                   pCombinationCount,
12810     VkFramebufferMixedSamplesCombinationNV*     pCombinations);
12811 #endif
12812 
12813 
12814 #define VK_EXT_fragment_shader_interlock 1
12815 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
12816 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
12817 typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
12818     VkStructureType    sType;
12819     void*              pNext;
12820     VkBool32           fragmentShaderSampleInterlock;
12821     VkBool32           fragmentShaderPixelInterlock;
12822     VkBool32           fragmentShaderShadingRateInterlock;
12823 } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
12824 
12825 
12826 
12827 #define VK_EXT_ycbcr_image_arrays 1
12828 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
12829 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
12830 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
12831     VkStructureType    sType;
12832     void*              pNext;
12833     VkBool32           ycbcrImageArrays;
12834 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
12835 
12836 
12837 
12838 #define VK_EXT_provoking_vertex 1
12839 #define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
12840 #define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
12841 
12842 typedef enum VkProvokingVertexModeEXT {
12843     VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
12844     VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
12845     VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
12846 } VkProvokingVertexModeEXT;
12847 typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
12848     VkStructureType    sType;
12849     void*              pNext;
12850     VkBool32           provokingVertexLast;
12851     VkBool32           transformFeedbackPreservesProvokingVertex;
12852 } VkPhysicalDeviceProvokingVertexFeaturesEXT;
12853 
12854 typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
12855     VkStructureType    sType;
12856     void*              pNext;
12857     VkBool32           provokingVertexModePerPipeline;
12858     VkBool32           transformFeedbackPreservesTriangleFanProvokingVertex;
12859 } VkPhysicalDeviceProvokingVertexPropertiesEXT;
12860 
12861 typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
12862     VkStructureType             sType;
12863     const void*                 pNext;
12864     VkProvokingVertexModeEXT    provokingVertexMode;
12865 } VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
12866 
12867 
12868 
12869 #define VK_EXT_headless_surface 1
12870 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
12871 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
12872 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
12873 typedef struct VkHeadlessSurfaceCreateInfoEXT {
12874     VkStructureType                    sType;
12875     const void*                        pNext;
12876     VkHeadlessSurfaceCreateFlagsEXT    flags;
12877 } VkHeadlessSurfaceCreateInfoEXT;
12878 
12879 typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
12880 
12881 #ifndef VK_NO_PROTOTYPES
12882 VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
12883     VkInstance                                  instance,
12884     const VkHeadlessSurfaceCreateInfoEXT*       pCreateInfo,
12885     const VkAllocationCallbacks*                pAllocator,
12886     VkSurfaceKHR*                               pSurface);
12887 #endif
12888 
12889 
12890 #define VK_EXT_line_rasterization 1
12891 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
12892 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
12893 
12894 typedef enum VkLineRasterizationModeEXT {
12895     VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0,
12896     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1,
12897     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2,
12898     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3,
12899     VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
12900 } VkLineRasterizationModeEXT;
12901 typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT {
12902     VkStructureType    sType;
12903     void*              pNext;
12904     VkBool32           rectangularLines;
12905     VkBool32           bresenhamLines;
12906     VkBool32           smoothLines;
12907     VkBool32           stippledRectangularLines;
12908     VkBool32           stippledBresenhamLines;
12909     VkBool32           stippledSmoothLines;
12910 } VkPhysicalDeviceLineRasterizationFeaturesEXT;
12911 
12912 typedef struct VkPhysicalDeviceLineRasterizationPropertiesEXT {
12913     VkStructureType    sType;
12914     void*              pNext;
12915     uint32_t           lineSubPixelPrecisionBits;
12916 } VkPhysicalDeviceLineRasterizationPropertiesEXT;
12917 
12918 typedef struct VkPipelineRasterizationLineStateCreateInfoEXT {
12919     VkStructureType               sType;
12920     const void*                   pNext;
12921     VkLineRasterizationModeEXT    lineRasterizationMode;
12922     VkBool32                      stippledLineEnable;
12923     uint32_t                      lineStippleFactor;
12924     uint16_t                      lineStipplePattern;
12925 } VkPipelineRasterizationLineStateCreateInfoEXT;
12926 
12927 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
12928 
12929 #ifndef VK_NO_PROTOTYPES
12930 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
12931     VkCommandBuffer                             commandBuffer,
12932     uint32_t                                    lineStippleFactor,
12933     uint16_t                                    lineStipplePattern);
12934 #endif
12935 
12936 
12937 #define VK_EXT_shader_atomic_float 1
12938 #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
12939 #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
12940 typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
12941     VkStructureType    sType;
12942     void*              pNext;
12943     VkBool32           shaderBufferFloat32Atomics;
12944     VkBool32           shaderBufferFloat32AtomicAdd;
12945     VkBool32           shaderBufferFloat64Atomics;
12946     VkBool32           shaderBufferFloat64AtomicAdd;
12947     VkBool32           shaderSharedFloat32Atomics;
12948     VkBool32           shaderSharedFloat32AtomicAdd;
12949     VkBool32           shaderSharedFloat64Atomics;
12950     VkBool32           shaderSharedFloat64AtomicAdd;
12951     VkBool32           shaderImageFloat32Atomics;
12952     VkBool32           shaderImageFloat32AtomicAdd;
12953     VkBool32           sparseImageFloat32Atomics;
12954     VkBool32           sparseImageFloat32AtomicAdd;
12955 } VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
12956 
12957 
12958 
12959 #define VK_EXT_host_query_reset 1
12960 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
12961 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
12962 typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
12963 
12964 typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
12965 
12966 #ifndef VK_NO_PROTOTYPES
12967 VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
12968     VkDevice                                    device,
12969     VkQueryPool                                 queryPool,
12970     uint32_t                                    firstQuery,
12971     uint32_t                                    queryCount);
12972 #endif
12973 
12974 
12975 #define VK_EXT_index_type_uint8 1
12976 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
12977 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
12978 typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT {
12979     VkStructureType    sType;
12980     void*              pNext;
12981     VkBool32           indexTypeUint8;
12982 } VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
12983 
12984 
12985 
12986 #define VK_EXT_extended_dynamic_state 1
12987 #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
12988 #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
12989 typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
12990     VkStructureType    sType;
12991     void*              pNext;
12992     VkBool32           extendedDynamicState;
12993 } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
12994 
12995 typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
12996 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
12997 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
12998 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
12999 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
13000 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
13001 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
13002 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
13003 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
13004 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
13005 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
13006 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
13007 
13008 #ifndef VK_NO_PROTOTYPES
13009 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
13010     VkCommandBuffer                             commandBuffer,
13011     VkCullModeFlags                             cullMode);
13012 
13013 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
13014     VkCommandBuffer                             commandBuffer,
13015     VkFrontFace                                 frontFace);
13016 
13017 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
13018     VkCommandBuffer                             commandBuffer,
13019     VkPrimitiveTopology                         primitiveTopology);
13020 
13021 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
13022     VkCommandBuffer                             commandBuffer,
13023     uint32_t                                    viewportCount,
13024     const VkViewport*                           pViewports);
13025 
13026 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
13027     VkCommandBuffer                             commandBuffer,
13028     uint32_t                                    scissorCount,
13029     const VkRect2D*                             pScissors);
13030 
13031 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
13032     VkCommandBuffer                             commandBuffer,
13033     uint32_t                                    firstBinding,
13034     uint32_t                                    bindingCount,
13035     const VkBuffer*                             pBuffers,
13036     const VkDeviceSize*                         pOffsets,
13037     const VkDeviceSize*                         pSizes,
13038     const VkDeviceSize*                         pStrides);
13039 
13040 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
13041     VkCommandBuffer                             commandBuffer,
13042     VkBool32                                    depthTestEnable);
13043 
13044 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
13045     VkCommandBuffer                             commandBuffer,
13046     VkBool32                                    depthWriteEnable);
13047 
13048 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
13049     VkCommandBuffer                             commandBuffer,
13050     VkCompareOp                                 depthCompareOp);
13051 
13052 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
13053     VkCommandBuffer                             commandBuffer,
13054     VkBool32                                    depthBoundsTestEnable);
13055 
13056 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
13057     VkCommandBuffer                             commandBuffer,
13058     VkBool32                                    stencilTestEnable);
13059 
13060 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
13061     VkCommandBuffer                             commandBuffer,
13062     VkStencilFaceFlags                          faceMask,
13063     VkStencilOp                                 failOp,
13064     VkStencilOp                                 passOp,
13065     VkStencilOp                                 depthFailOp,
13066     VkCompareOp                                 compareOp);
13067 #endif
13068 
13069 
13070 #define VK_EXT_shader_atomic_float2 1
13071 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
13072 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
13073 typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
13074     VkStructureType    sType;
13075     void*              pNext;
13076     VkBool32           shaderBufferFloat16Atomics;
13077     VkBool32           shaderBufferFloat16AtomicAdd;
13078     VkBool32           shaderBufferFloat16AtomicMinMax;
13079     VkBool32           shaderBufferFloat32AtomicMinMax;
13080     VkBool32           shaderBufferFloat64AtomicMinMax;
13081     VkBool32           shaderSharedFloat16Atomics;
13082     VkBool32           shaderSharedFloat16AtomicAdd;
13083     VkBool32           shaderSharedFloat16AtomicMinMax;
13084     VkBool32           shaderSharedFloat32AtomicMinMax;
13085     VkBool32           shaderSharedFloat64AtomicMinMax;
13086     VkBool32           shaderImageFloat32AtomicMinMax;
13087     VkBool32           sparseImageFloat32AtomicMinMax;
13088 } VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
13089 
13090 
13091 
13092 #define VK_EXT_shader_demote_to_helper_invocation 1
13093 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
13094 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
13095 typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
13096 
13097 
13098 
13099 #define VK_NV_device_generated_commands 1
13100 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
13101 #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
13102 #define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
13103 
13104 typedef enum VkIndirectCommandsTokenTypeNV {
13105     VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
13106     VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
13107     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
13108     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
13109     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
13110     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
13111     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
13112     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
13113     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
13114     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
13115 } VkIndirectCommandsTokenTypeNV;
13116 
13117 typedef enum VkIndirectStateFlagBitsNV {
13118     VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
13119     VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
13120 } VkIndirectStateFlagBitsNV;
13121 typedef VkFlags VkIndirectStateFlagsNV;
13122 
13123 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
13124     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
13125     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
13126     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
13127     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
13128 } VkIndirectCommandsLayoutUsageFlagBitsNV;
13129 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
13130 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
13131     VkStructureType    sType;
13132     void*              pNext;
13133     uint32_t           maxGraphicsShaderGroupCount;
13134     uint32_t           maxIndirectSequenceCount;
13135     uint32_t           maxIndirectCommandsTokenCount;
13136     uint32_t           maxIndirectCommandsStreamCount;
13137     uint32_t           maxIndirectCommandsTokenOffset;
13138     uint32_t           maxIndirectCommandsStreamStride;
13139     uint32_t           minSequencesCountBufferOffsetAlignment;
13140     uint32_t           minSequencesIndexBufferOffsetAlignment;
13141     uint32_t           minIndirectCommandsBufferOffsetAlignment;
13142 } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
13143 
13144 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
13145     VkStructureType    sType;
13146     void*              pNext;
13147     VkBool32           deviceGeneratedCommands;
13148 } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
13149 
13150 typedef struct VkGraphicsShaderGroupCreateInfoNV {
13151     VkStructureType                                 sType;
13152     const void*                                     pNext;
13153     uint32_t                                        stageCount;
13154     const VkPipelineShaderStageCreateInfo*          pStages;
13155     const VkPipelineVertexInputStateCreateInfo*     pVertexInputState;
13156     const VkPipelineTessellationStateCreateInfo*    pTessellationState;
13157 } VkGraphicsShaderGroupCreateInfoNV;
13158 
13159 typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
13160     VkStructureType                             sType;
13161     const void*                                 pNext;
13162     uint32_t                                    groupCount;
13163     const VkGraphicsShaderGroupCreateInfoNV*    pGroups;
13164     uint32_t                                    pipelineCount;
13165     const VkPipeline*                           pPipelines;
13166 } VkGraphicsPipelineShaderGroupsCreateInfoNV;
13167 
13168 typedef struct VkBindShaderGroupIndirectCommandNV {
13169     uint32_t    groupIndex;
13170 } VkBindShaderGroupIndirectCommandNV;
13171 
13172 typedef struct VkBindIndexBufferIndirectCommandNV {
13173     VkDeviceAddress    bufferAddress;
13174     uint32_t           size;
13175     VkIndexType        indexType;
13176 } VkBindIndexBufferIndirectCommandNV;
13177 
13178 typedef struct VkBindVertexBufferIndirectCommandNV {
13179     VkDeviceAddress    bufferAddress;
13180     uint32_t           size;
13181     uint32_t           stride;
13182 } VkBindVertexBufferIndirectCommandNV;
13183 
13184 typedef struct VkSetStateFlagsIndirectCommandNV {
13185     uint32_t    data;
13186 } VkSetStateFlagsIndirectCommandNV;
13187 
13188 typedef struct VkIndirectCommandsStreamNV {
13189     VkBuffer        buffer;
13190     VkDeviceSize    offset;
13191 } VkIndirectCommandsStreamNV;
13192 
13193 typedef struct VkIndirectCommandsLayoutTokenNV {
13194     VkStructureType                  sType;
13195     const void*                      pNext;
13196     VkIndirectCommandsTokenTypeNV    tokenType;
13197     uint32_t                         stream;
13198     uint32_t                         offset;
13199     uint32_t                         vertexBindingUnit;
13200     VkBool32                         vertexDynamicStride;
13201     VkPipelineLayout                 pushconstantPipelineLayout;
13202     VkShaderStageFlags               pushconstantShaderStageFlags;
13203     uint32_t                         pushconstantOffset;
13204     uint32_t                         pushconstantSize;
13205     VkIndirectStateFlagsNV           indirectStateFlags;
13206     uint32_t                         indexTypeCount;
13207     const VkIndexType*               pIndexTypes;
13208     const uint32_t*                  pIndexTypeValues;
13209 } VkIndirectCommandsLayoutTokenNV;
13210 
13211 typedef struct VkIndirectCommandsLayoutCreateInfoNV {
13212     VkStructureType                           sType;
13213     const void*                               pNext;
13214     VkIndirectCommandsLayoutUsageFlagsNV      flags;
13215     VkPipelineBindPoint                       pipelineBindPoint;
13216     uint32_t                                  tokenCount;
13217     const VkIndirectCommandsLayoutTokenNV*    pTokens;
13218     uint32_t                                  streamCount;
13219     const uint32_t*                           pStreamStrides;
13220 } VkIndirectCommandsLayoutCreateInfoNV;
13221 
13222 typedef struct VkGeneratedCommandsInfoNV {
13223     VkStructureType                      sType;
13224     const void*                          pNext;
13225     VkPipelineBindPoint                  pipelineBindPoint;
13226     VkPipeline                           pipeline;
13227     VkIndirectCommandsLayoutNV           indirectCommandsLayout;
13228     uint32_t                             streamCount;
13229     const VkIndirectCommandsStreamNV*    pStreams;
13230     uint32_t                             sequencesCount;
13231     VkBuffer                             preprocessBuffer;
13232     VkDeviceSize                         preprocessOffset;
13233     VkDeviceSize                         preprocessSize;
13234     VkBuffer                             sequencesCountBuffer;
13235     VkDeviceSize                         sequencesCountOffset;
13236     VkBuffer                             sequencesIndexBuffer;
13237     VkDeviceSize                         sequencesIndexOffset;
13238 } VkGeneratedCommandsInfoNV;
13239 
13240 typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
13241     VkStructureType               sType;
13242     const void*                   pNext;
13243     VkPipelineBindPoint           pipelineBindPoint;
13244     VkPipeline                    pipeline;
13245     VkIndirectCommandsLayoutNV    indirectCommandsLayout;
13246     uint32_t                      maxSequencesCount;
13247 } VkGeneratedCommandsMemoryRequirementsInfoNV;
13248 
13249 typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
13250 typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
13251 typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
13252 typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
13253 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
13254 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
13255 
13256 #ifndef VK_NO_PROTOTYPES
13257 VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
13258     VkDevice                                    device,
13259     const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
13260     VkMemoryRequirements2*                      pMemoryRequirements);
13261 
13262 VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
13263     VkCommandBuffer                             commandBuffer,
13264     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
13265 
13266 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
13267     VkCommandBuffer                             commandBuffer,
13268     VkBool32                                    isPreprocessed,
13269     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
13270 
13271 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
13272     VkCommandBuffer                             commandBuffer,
13273     VkPipelineBindPoint                         pipelineBindPoint,
13274     VkPipeline                                  pipeline,
13275     uint32_t                                    groupIndex);
13276 
13277 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
13278     VkDevice                                    device,
13279     const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
13280     const VkAllocationCallbacks*                pAllocator,
13281     VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout);
13282 
13283 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
13284     VkDevice                                    device,
13285     VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
13286     const VkAllocationCallbacks*                pAllocator);
13287 #endif
13288 
13289 
13290 #define VK_NV_inherited_viewport_scissor 1
13291 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
13292 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
13293 typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
13294     VkStructureType    sType;
13295     void*              pNext;
13296     VkBool32           inheritedViewportScissor2D;
13297 } VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
13298 
13299 typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
13300     VkStructureType      sType;
13301     const void*          pNext;
13302     VkBool32             viewportScissor2D;
13303     uint32_t             viewportDepthCount;
13304     const VkViewport*    pViewportDepths;
13305 } VkCommandBufferInheritanceViewportScissorInfoNV;
13306 
13307 
13308 
13309 #define VK_EXT_texel_buffer_alignment 1
13310 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
13311 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
13312 typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
13313     VkStructureType    sType;
13314     void*              pNext;
13315     VkBool32           texelBufferAlignment;
13316 } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
13317 
13318 typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
13319 
13320 
13321 
13322 #define VK_QCOM_render_pass_transform 1
13323 #define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 3
13324 #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
13325 typedef struct VkRenderPassTransformBeginInfoQCOM {
13326     VkStructureType                  sType;
13327     void*                            pNext;
13328     VkSurfaceTransformFlagBitsKHR    transform;
13329 } VkRenderPassTransformBeginInfoQCOM;
13330 
13331 typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
13332     VkStructureType                  sType;
13333     void*                            pNext;
13334     VkSurfaceTransformFlagBitsKHR    transform;
13335     VkRect2D                         renderArea;
13336 } VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
13337 
13338 
13339 
13340 #define VK_EXT_device_memory_report 1
13341 #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
13342 #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
13343 
13344 typedef enum VkDeviceMemoryReportEventTypeEXT {
13345     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
13346     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
13347     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
13348     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
13349     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
13350     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
13351 } VkDeviceMemoryReportEventTypeEXT;
13352 typedef VkFlags VkDeviceMemoryReportFlagsEXT;
13353 typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
13354     VkStructureType    sType;
13355     void*              pNext;
13356     VkBool32           deviceMemoryReport;
13357 } VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
13358 
13359 typedef struct VkDeviceMemoryReportCallbackDataEXT {
13360     VkStructureType                     sType;
13361     void*                               pNext;
13362     VkDeviceMemoryReportFlagsEXT        flags;
13363     VkDeviceMemoryReportEventTypeEXT    type;
13364     uint64_t                            memoryObjectId;
13365     VkDeviceSize                        size;
13366     VkObjectType                        objectType;
13367     uint64_t                            objectHandle;
13368     uint32_t                            heapIndex;
13369 } VkDeviceMemoryReportCallbackDataEXT;
13370 
13371 typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
13372     const VkDeviceMemoryReportCallbackDataEXT*  pCallbackData,
13373     void*                                       pUserData);
13374 
13375 typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
13376     VkStructureType                        sType;
13377     const void*                            pNext;
13378     VkDeviceMemoryReportFlagsEXT           flags;
13379     PFN_vkDeviceMemoryReportCallbackEXT    pfnUserCallback;
13380     void*                                  pUserData;
13381 } VkDeviceDeviceMemoryReportCreateInfoEXT;
13382 
13383 
13384 
13385 #define VK_EXT_acquire_drm_display 1
13386 #define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
13387 #define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
13388 typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
13389 typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
13390 
13391 #ifndef VK_NO_PROTOTYPES
13392 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
13393     VkPhysicalDevice                            physicalDevice,
13394     int32_t                                     drmFd,
13395     VkDisplayKHR                                display);
13396 
13397 VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
13398     VkPhysicalDevice                            physicalDevice,
13399     int32_t                                     drmFd,
13400     uint32_t                                    connectorId,
13401     VkDisplayKHR*                               display);
13402 #endif
13403 
13404 
13405 #define VK_EXT_robustness2 1
13406 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION  1
13407 #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
13408 typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
13409     VkStructureType    sType;
13410     void*              pNext;
13411     VkBool32           robustBufferAccess2;
13412     VkBool32           robustImageAccess2;
13413     VkBool32           nullDescriptor;
13414 } VkPhysicalDeviceRobustness2FeaturesEXT;
13415 
13416 typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
13417     VkStructureType    sType;
13418     void*              pNext;
13419     VkDeviceSize       robustStorageBufferAccessSizeAlignment;
13420     VkDeviceSize       robustUniformBufferAccessSizeAlignment;
13421 } VkPhysicalDeviceRobustness2PropertiesEXT;
13422 
13423 
13424 
13425 #define VK_EXT_custom_border_color 1
13426 #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
13427 #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
13428 typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
13429     VkStructureType      sType;
13430     const void*          pNext;
13431     VkClearColorValue    customBorderColor;
13432     VkFormat             format;
13433 } VkSamplerCustomBorderColorCreateInfoEXT;
13434 
13435 typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
13436     VkStructureType    sType;
13437     void*              pNext;
13438     uint32_t           maxCustomBorderColorSamplers;
13439 } VkPhysicalDeviceCustomBorderColorPropertiesEXT;
13440 
13441 typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
13442     VkStructureType    sType;
13443     void*              pNext;
13444     VkBool32           customBorderColors;
13445     VkBool32           customBorderColorWithoutFormat;
13446 } VkPhysicalDeviceCustomBorderColorFeaturesEXT;
13447 
13448 
13449 
13450 #define VK_GOOGLE_user_type 1
13451 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
13452 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
13453 
13454 
13455 #define VK_NV_present_barrier 1
13456 #define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
13457 #define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
13458 typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
13459     VkStructureType    sType;
13460     void*              pNext;
13461     VkBool32           presentBarrier;
13462 } VkPhysicalDevicePresentBarrierFeaturesNV;
13463 
13464 typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
13465     VkStructureType    sType;
13466     void*              pNext;
13467     VkBool32           presentBarrierSupported;
13468 } VkSurfaceCapabilitiesPresentBarrierNV;
13469 
13470 typedef struct VkSwapchainPresentBarrierCreateInfoNV {
13471     VkStructureType    sType;
13472     void*              pNext;
13473     VkBool32           presentBarrierEnable;
13474 } VkSwapchainPresentBarrierCreateInfoNV;
13475 
13476 
13477 
13478 #define VK_EXT_private_data 1
13479 typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
13480 
13481 #define VK_EXT_PRIVATE_DATA_SPEC_VERSION  1
13482 #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
13483 typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
13484 
13485 typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
13486 
13487 typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
13488 
13489 typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
13490 
13491 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
13492 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
13493 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
13494 typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
13495 
13496 #ifndef VK_NO_PROTOTYPES
13497 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
13498     VkDevice                                    device,
13499     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
13500     const VkAllocationCallbacks*                pAllocator,
13501     VkPrivateDataSlot*                          pPrivateDataSlot);
13502 
13503 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
13504     VkDevice                                    device,
13505     VkPrivateDataSlot                           privateDataSlot,
13506     const VkAllocationCallbacks*                pAllocator);
13507 
13508 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
13509     VkDevice                                    device,
13510     VkObjectType                                objectType,
13511     uint64_t                                    objectHandle,
13512     VkPrivateDataSlot                           privateDataSlot,
13513     uint64_t                                    data);
13514 
13515 VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
13516     VkDevice                                    device,
13517     VkObjectType                                objectType,
13518     uint64_t                                    objectHandle,
13519     VkPrivateDataSlot                           privateDataSlot,
13520     uint64_t*                                   pData);
13521 #endif
13522 
13523 
13524 #define VK_EXT_pipeline_creation_cache_control 1
13525 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
13526 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
13527 typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
13528 
13529 
13530 
13531 #define VK_NV_device_diagnostics_config 1
13532 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
13533 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
13534 
13535 typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
13536     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
13537     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
13538     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
13539     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
13540     VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
13541 } VkDeviceDiagnosticsConfigFlagBitsNV;
13542 typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
13543 typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
13544     VkStructureType    sType;
13545     void*              pNext;
13546     VkBool32           diagnosticsConfig;
13547 } VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
13548 
13549 typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
13550     VkStructureType                     sType;
13551     const void*                         pNext;
13552     VkDeviceDiagnosticsConfigFlagsNV    flags;
13553 } VkDeviceDiagnosticsConfigCreateInfoNV;
13554 
13555 
13556 
13557 #define VK_QCOM_render_pass_store_ops 1
13558 #define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
13559 #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
13560 
13561 
13562 #define VK_EXT_graphics_pipeline_library 1
13563 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
13564 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
13565 
13566 typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
13567     VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
13568     VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
13569     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
13570     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
13571     VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13572 } VkGraphicsPipelineLibraryFlagBitsEXT;
13573 typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
13574 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
13575     VkStructureType    sType;
13576     void*              pNext;
13577     VkBool32           graphicsPipelineLibrary;
13578 } VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
13579 
13580 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
13581     VkStructureType    sType;
13582     void*              pNext;
13583     VkBool32           graphicsPipelineLibraryFastLinking;
13584     VkBool32           graphicsPipelineLibraryIndependentInterpolationDecoration;
13585 } VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
13586 
13587 typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
13588     VkStructureType                      sType;
13589     void*                                pNext;
13590     VkGraphicsPipelineLibraryFlagsEXT    flags;
13591 } VkGraphicsPipelineLibraryCreateInfoEXT;
13592 
13593 
13594 
13595 #define VK_AMD_shader_early_and_late_fragment_tests 1
13596 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
13597 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
13598 typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
13599     VkStructureType    sType;
13600     void*              pNext;
13601     VkBool32           shaderEarlyAndLateFragmentTests;
13602 } VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
13603 
13604 
13605 
13606 #define VK_NV_fragment_shading_rate_enums 1
13607 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
13608 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
13609 
13610 typedef enum VkFragmentShadingRateTypeNV {
13611     VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
13612     VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
13613     VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
13614 } VkFragmentShadingRateTypeNV;
13615 
13616 typedef enum VkFragmentShadingRateNV {
13617     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
13618     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
13619     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
13620     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
13621     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
13622     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
13623     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
13624     VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
13625     VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
13626     VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
13627     VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
13628     VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
13629     VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
13630 } VkFragmentShadingRateNV;
13631 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
13632     VkStructureType    sType;
13633     void*              pNext;
13634     VkBool32           fragmentShadingRateEnums;
13635     VkBool32           supersampleFragmentShadingRates;
13636     VkBool32           noInvocationFragmentShadingRates;
13637 } VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
13638 
13639 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
13640     VkStructureType          sType;
13641     void*                    pNext;
13642     VkSampleCountFlagBits    maxFragmentShadingRateInvocationCount;
13643 } VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
13644 
13645 typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
13646     VkStructureType                       sType;
13647     const void*                           pNext;
13648     VkFragmentShadingRateTypeNV           shadingRateType;
13649     VkFragmentShadingRateNV               shadingRate;
13650     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
13651 } VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
13652 
13653 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer           commandBuffer, VkFragmentShadingRateNV                     shadingRate, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
13654 
13655 #ifndef VK_NO_PROTOTYPES
13656 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
13657     VkCommandBuffer                             commandBuffer,
13658     VkFragmentShadingRateNV                     shadingRate,
13659     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
13660 #endif
13661 
13662 
13663 #define VK_NV_ray_tracing_motion_blur 1
13664 #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
13665 #define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
13666 
13667 typedef enum VkAccelerationStructureMotionInstanceTypeNV {
13668     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
13669     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
13670     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
13671     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
13672 } VkAccelerationStructureMotionInstanceTypeNV;
13673 typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
13674 typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
13675 typedef union VkDeviceOrHostAddressConstKHR {
13676     VkDeviceAddress    deviceAddress;
13677     const void*        hostAddress;
13678 } VkDeviceOrHostAddressConstKHR;
13679 
13680 typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
13681     VkStructureType                  sType;
13682     const void*                      pNext;
13683     VkDeviceOrHostAddressConstKHR    vertexData;
13684 } VkAccelerationStructureGeometryMotionTrianglesDataNV;
13685 
13686 typedef struct VkAccelerationStructureMotionInfoNV {
13687     VkStructureType                             sType;
13688     const void*                                 pNext;
13689     uint32_t                                    maxInstances;
13690     VkAccelerationStructureMotionInfoFlagsNV    flags;
13691 } VkAccelerationStructureMotionInfoNV;
13692 
13693 typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
13694     VkTransformMatrixKHR          transformT0;
13695     VkTransformMatrixKHR          transformT1;
13696     uint32_t                      instanceCustomIndex:24;
13697     uint32_t                      mask:8;
13698     uint32_t                      instanceShaderBindingTableRecordOffset:24;
13699     VkGeometryInstanceFlagsKHR    flags:8;
13700     uint64_t                      accelerationStructureReference;
13701 } VkAccelerationStructureMatrixMotionInstanceNV;
13702 
13703 typedef struct VkSRTDataNV {
13704     float    sx;
13705     float    a;
13706     float    b;
13707     float    pvx;
13708     float    sy;
13709     float    c;
13710     float    pvy;
13711     float    sz;
13712     float    pvz;
13713     float    qx;
13714     float    qy;
13715     float    qz;
13716     float    qw;
13717     float    tx;
13718     float    ty;
13719     float    tz;
13720 } VkSRTDataNV;
13721 
13722 typedef struct VkAccelerationStructureSRTMotionInstanceNV {
13723     VkSRTDataNV                   transformT0;
13724     VkSRTDataNV                   transformT1;
13725     uint32_t                      instanceCustomIndex:24;
13726     uint32_t                      mask:8;
13727     uint32_t                      instanceShaderBindingTableRecordOffset:24;
13728     VkGeometryInstanceFlagsKHR    flags:8;
13729     uint64_t                      accelerationStructureReference;
13730 } VkAccelerationStructureSRTMotionInstanceNV;
13731 
13732 typedef union VkAccelerationStructureMotionInstanceDataNV {
13733     VkAccelerationStructureInstanceKHR               staticInstance;
13734     VkAccelerationStructureMatrixMotionInstanceNV    matrixMotionInstance;
13735     VkAccelerationStructureSRTMotionInstanceNV       srtMotionInstance;
13736 } VkAccelerationStructureMotionInstanceDataNV;
13737 
13738 typedef struct VkAccelerationStructureMotionInstanceNV {
13739     VkAccelerationStructureMotionInstanceTypeNV     type;
13740     VkAccelerationStructureMotionInstanceFlagsNV    flags;
13741     VkAccelerationStructureMotionInstanceDataNV     data;
13742 } VkAccelerationStructureMotionInstanceNV;
13743 
13744 typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
13745     VkStructureType    sType;
13746     void*              pNext;
13747     VkBool32           rayTracingMotionBlur;
13748     VkBool32           rayTracingMotionBlurPipelineTraceRaysIndirect;
13749 } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
13750 
13751 
13752 
13753 #define VK_EXT_ycbcr_2plane_444_formats 1
13754 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
13755 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
13756 typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
13757     VkStructureType    sType;
13758     void*              pNext;
13759     VkBool32           ycbcr2plane444Formats;
13760 } VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
13761 
13762 
13763 
13764 #define VK_EXT_fragment_density_map2 1
13765 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
13766 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
13767 typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
13768     VkStructureType    sType;
13769     void*              pNext;
13770     VkBool32           fragmentDensityMapDeferred;
13771 } VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
13772 
13773 typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
13774     VkStructureType    sType;
13775     void*              pNext;
13776     VkBool32           subsampledLoads;
13777     VkBool32           subsampledCoarseReconstructionEarlyAccess;
13778     uint32_t           maxSubsampledArrayLayers;
13779     uint32_t           maxDescriptorSetSubsampledSamplers;
13780 } VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
13781 
13782 
13783 
13784 #define VK_QCOM_rotated_copy_commands 1
13785 #define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 1
13786 #define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
13787 typedef struct VkCopyCommandTransformInfoQCOM {
13788     VkStructureType                  sType;
13789     const void*                      pNext;
13790     VkSurfaceTransformFlagBitsKHR    transform;
13791 } VkCopyCommandTransformInfoQCOM;
13792 
13793 
13794 
13795 #define VK_EXT_image_robustness 1
13796 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
13797 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
13798 typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
13799 
13800 
13801 
13802 #define VK_EXT_image_compression_control 1
13803 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
13804 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
13805 
13806 typedef enum VkImageCompressionFlagBitsEXT {
13807     VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
13808     VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
13809     VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
13810     VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
13811     VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13812 } VkImageCompressionFlagBitsEXT;
13813 typedef VkFlags VkImageCompressionFlagsEXT;
13814 
13815 typedef enum VkImageCompressionFixedRateFlagBitsEXT {
13816     VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
13817     VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
13818     VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
13819     VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
13820     VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
13821     VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
13822     VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
13823     VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
13824     VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
13825     VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
13826     VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
13827     VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
13828     VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
13829     VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
13830     VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
13831     VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
13832     VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
13833     VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
13834     VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
13835     VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
13836     VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
13837     VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
13838     VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
13839     VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
13840     VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
13841     VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13842 } VkImageCompressionFixedRateFlagBitsEXT;
13843 typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
13844 typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
13845     VkStructureType    sType;
13846     void*              pNext;
13847     VkBool32           imageCompressionControl;
13848 } VkPhysicalDeviceImageCompressionControlFeaturesEXT;
13849 
13850 typedef struct VkImageCompressionControlEXT {
13851     VkStructureType                         sType;
13852     const void*                             pNext;
13853     VkImageCompressionFlagsEXT              flags;
13854     uint32_t                                compressionControlPlaneCount;
13855     VkImageCompressionFixedRateFlagsEXT*    pFixedRateFlags;
13856 } VkImageCompressionControlEXT;
13857 
13858 typedef struct VkSubresourceLayout2EXT {
13859     VkStructureType        sType;
13860     void*                  pNext;
13861     VkSubresourceLayout    subresourceLayout;
13862 } VkSubresourceLayout2EXT;
13863 
13864 typedef struct VkImageSubresource2EXT {
13865     VkStructureType       sType;
13866     void*                 pNext;
13867     VkImageSubresource    imageSubresource;
13868 } VkImageSubresource2EXT;
13869 
13870 typedef struct VkImageCompressionPropertiesEXT {
13871     VkStructureType                        sType;
13872     void*                                  pNext;
13873     VkImageCompressionFlagsEXT             imageCompressionFlags;
13874     VkImageCompressionFixedRateFlagsEXT    imageCompressionFixedRateFlags;
13875 } VkImageCompressionPropertiesEXT;
13876 
13877 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout);
13878 
13879 #ifndef VK_NO_PROTOTYPES
13880 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
13881     VkDevice                                    device,
13882     VkImage                                     image,
13883     const VkImageSubresource2EXT*               pSubresource,
13884     VkSubresourceLayout2EXT*                    pLayout);
13885 #endif
13886 
13887 
13888 #define VK_EXT_attachment_feedback_loop_layout 1
13889 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
13890 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
13891 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
13892     VkStructureType    sType;
13893     void*              pNext;
13894     VkBool32           attachmentFeedbackLoopLayout;
13895 } VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
13896 
13897 
13898 
13899 #define VK_EXT_4444_formats 1
13900 #define VK_EXT_4444_FORMATS_SPEC_VERSION  1
13901 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
13902 typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
13903     VkStructureType    sType;
13904     void*              pNext;
13905     VkBool32           formatA4R4G4B4;
13906     VkBool32           formatA4B4G4R4;
13907 } VkPhysicalDevice4444FormatsFeaturesEXT;
13908 
13909 
13910 
13911 #define VK_EXT_device_fault 1
13912 #define VK_EXT_DEVICE_FAULT_SPEC_VERSION  1
13913 #define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
13914 
13915 typedef enum VkDeviceFaultAddressTypeEXT {
13916     VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
13917     VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
13918     VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
13919     VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
13920     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
13921     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
13922     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
13923     VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
13924 } VkDeviceFaultAddressTypeEXT;
13925 
13926 typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
13927     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
13928     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
13929 } VkDeviceFaultVendorBinaryHeaderVersionEXT;
13930 typedef struct VkPhysicalDeviceFaultFeaturesEXT {
13931     VkStructureType    sType;
13932     void*              pNext;
13933     VkBool32           deviceFault;
13934     VkBool32           deviceFaultVendorBinary;
13935 } VkPhysicalDeviceFaultFeaturesEXT;
13936 
13937 typedef struct VkDeviceFaultCountsEXT {
13938     VkStructureType    sType;
13939     void*              pNext;
13940     uint32_t           addressInfoCount;
13941     uint32_t           vendorInfoCount;
13942     VkDeviceSize       vendorBinarySize;
13943 } VkDeviceFaultCountsEXT;
13944 
13945 typedef struct VkDeviceFaultAddressInfoEXT {
13946     VkDeviceFaultAddressTypeEXT    addressType;
13947     VkDeviceAddress                reportedAddress;
13948     VkDeviceSize                   addressPrecision;
13949 } VkDeviceFaultAddressInfoEXT;
13950 
13951 typedef struct VkDeviceFaultVendorInfoEXT {
13952     char        description[VK_MAX_DESCRIPTION_SIZE];
13953     uint64_t    vendorFaultCode;
13954     uint64_t    vendorFaultData;
13955 } VkDeviceFaultVendorInfoEXT;
13956 
13957 typedef struct VkDeviceFaultInfoEXT {
13958     VkStructureType                 sType;
13959     void*                           pNext;
13960     char                            description[VK_MAX_DESCRIPTION_SIZE];
13961     VkDeviceFaultAddressInfoEXT*    pAddressInfos;
13962     VkDeviceFaultVendorInfoEXT*     pVendorInfos;
13963     void*                           pVendorBinaryData;
13964 } VkDeviceFaultInfoEXT;
13965 
13966 typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
13967     uint32_t                                     headerSize;
13968     VkDeviceFaultVendorBinaryHeaderVersionEXT    headerVersion;
13969     uint32_t                                     vendorID;
13970     uint32_t                                     deviceID;
13971     uint32_t                                     driverVersion;
13972     uint8_t                                      pipelineCacheUUID[VK_UUID_SIZE];
13973     uint32_t                                     applicationNameOffset;
13974     uint32_t                                     applicationVersion;
13975     uint32_t                                     engineNameOffset;
13976 } VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
13977 
13978 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
13979 
13980 #ifndef VK_NO_PROTOTYPES
13981 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
13982     VkDevice                                    device,
13983     VkDeviceFaultCountsEXT*                     pFaultCounts,
13984     VkDeviceFaultInfoEXT*                       pFaultInfo);
13985 #endif
13986 
13987 
13988 #define VK_ARM_rasterization_order_attachment_access 1
13989 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
13990 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
13991 typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
13992     VkStructureType    sType;
13993     void*              pNext;
13994     VkBool32           rasterizationOrderColorAttachmentAccess;
13995     VkBool32           rasterizationOrderDepthAttachmentAccess;
13996     VkBool32           rasterizationOrderStencilAttachmentAccess;
13997 } VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
13998 
13999 typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
14000 
14001 
14002 
14003 #define VK_EXT_rgba10x6_formats 1
14004 #define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
14005 #define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
14006 typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
14007     VkStructureType    sType;
14008     void*              pNext;
14009     VkBool32           formatRgba10x6WithoutYCbCrSampler;
14010 } VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
14011 
14012 
14013 
14014 #define VK_NV_acquire_winrt_display 1
14015 #define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1
14016 #define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display"
14017 typedef VkResult (VKAPI_PTR *PFN_vkAcquireWinrtDisplayNV)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
14018 typedef VkResult (VKAPI_PTR *PFN_vkGetWinrtDisplayNV)(VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay);
14019 
14020 #ifndef VK_NO_PROTOTYPES
14021 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireWinrtDisplayNV(
14022     VkPhysicalDevice                            physicalDevice,
14023     VkDisplayKHR                                display);
14024 
14025 VKAPI_ATTR VkResult VKAPI_CALL vkGetWinrtDisplayNV(
14026     VkPhysicalDevice                            physicalDevice,
14027     uint32_t                                    deviceRelativeId,
14028     VkDisplayKHR*                               pDisplay);
14029 #endif
14030 
14031 
14032 #define VK_VALVE_mutable_descriptor_type 1
14033 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
14034 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
14035 typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
14036     VkStructureType    sType;
14037     void*              pNext;
14038     VkBool32           mutableDescriptorType;
14039 } VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
14040 
14041 typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
14042 
14043 typedef struct VkMutableDescriptorTypeListEXT {
14044     uint32_t                   descriptorTypeCount;
14045     const VkDescriptorType*    pDescriptorTypes;
14046 } VkMutableDescriptorTypeListEXT;
14047 
14048 typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
14049 
14050 typedef struct VkMutableDescriptorTypeCreateInfoEXT {
14051     VkStructureType                          sType;
14052     const void*                              pNext;
14053     uint32_t                                 mutableDescriptorTypeListCount;
14054     const VkMutableDescriptorTypeListEXT*    pMutableDescriptorTypeLists;
14055 } VkMutableDescriptorTypeCreateInfoEXT;
14056 
14057 typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
14058 
14059 
14060 
14061 #define VK_EXT_vertex_input_dynamic_state 1
14062 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
14063 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
14064 typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
14065     VkStructureType    sType;
14066     void*              pNext;
14067     VkBool32           vertexInputDynamicState;
14068 } VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
14069 
14070 typedef struct VkVertexInputBindingDescription2EXT {
14071     VkStructureType      sType;
14072     void*                pNext;
14073     uint32_t             binding;
14074     uint32_t             stride;
14075     VkVertexInputRate    inputRate;
14076     uint32_t             divisor;
14077 } VkVertexInputBindingDescription2EXT;
14078 
14079 typedef struct VkVertexInputAttributeDescription2EXT {
14080     VkStructureType    sType;
14081     void*              pNext;
14082     uint32_t           location;
14083     uint32_t           binding;
14084     VkFormat           format;
14085     uint32_t           offset;
14086 } VkVertexInputAttributeDescription2EXT;
14087 
14088 typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
14089 
14090 #ifndef VK_NO_PROTOTYPES
14091 VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
14092     VkCommandBuffer                             commandBuffer,
14093     uint32_t                                    vertexBindingDescriptionCount,
14094     const VkVertexInputBindingDescription2EXT*  pVertexBindingDescriptions,
14095     uint32_t                                    vertexAttributeDescriptionCount,
14096     const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
14097 #endif
14098 
14099 
14100 #define VK_EXT_physical_device_drm 1
14101 #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
14102 #define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
14103 typedef struct VkPhysicalDeviceDrmPropertiesEXT {
14104     VkStructureType    sType;
14105     void*              pNext;
14106     VkBool32           hasPrimary;
14107     VkBool32           hasRender;
14108     int64_t            primaryMajor;
14109     int64_t            primaryMinor;
14110     int64_t            renderMajor;
14111     int64_t            renderMinor;
14112 } VkPhysicalDeviceDrmPropertiesEXT;
14113 
14114 
14115 
14116 #define VK_EXT_device_address_binding_report 1
14117 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
14118 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
14119 
14120 typedef enum VkDeviceAddressBindingTypeEXT {
14121     VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
14122     VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
14123     VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
14124 } VkDeviceAddressBindingTypeEXT;
14125 
14126 typedef enum VkDeviceAddressBindingFlagBitsEXT {
14127     VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
14128     VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14129 } VkDeviceAddressBindingFlagBitsEXT;
14130 typedef VkFlags VkDeviceAddressBindingFlagsEXT;
14131 typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
14132     VkStructureType    sType;
14133     void*              pNext;
14134     VkBool32           reportAddressBinding;
14135 } VkPhysicalDeviceAddressBindingReportFeaturesEXT;
14136 
14137 typedef struct VkDeviceAddressBindingCallbackDataEXT {
14138     VkStructureType                   sType;
14139     void*                             pNext;
14140     VkDeviceAddressBindingFlagsEXT    flags;
14141     VkDeviceAddress                   baseAddress;
14142     VkDeviceSize                      size;
14143     VkDeviceAddressBindingTypeEXT     bindingType;
14144 } VkDeviceAddressBindingCallbackDataEXT;
14145 
14146 
14147 
14148 #define VK_EXT_depth_clip_control 1
14149 #define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
14150 #define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
14151 typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
14152     VkStructureType    sType;
14153     void*              pNext;
14154     VkBool32           depthClipControl;
14155 } VkPhysicalDeviceDepthClipControlFeaturesEXT;
14156 
14157 typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
14158     VkStructureType    sType;
14159     const void*        pNext;
14160     VkBool32           negativeOneToOne;
14161 } VkPipelineViewportDepthClipControlCreateInfoEXT;
14162 
14163 
14164 
14165 #define VK_EXT_primitive_topology_list_restart 1
14166 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
14167 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
14168 typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
14169     VkStructureType    sType;
14170     void*              pNext;
14171     VkBool32           primitiveTopologyListRestart;
14172     VkBool32           primitiveTopologyPatchListRestart;
14173 } VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
14174 
14175 
14176 
14177 #define VK_HUAWEI_subpass_shading 1
14178 #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2
14179 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
14180 typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
14181     VkStructureType    sType;
14182     void*              pNext;
14183     VkRenderPass       renderPass;
14184     uint32_t           subpass;
14185 } VkSubpassShadingPipelineCreateInfoHUAWEI;
14186 
14187 typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
14188     VkStructureType    sType;
14189     void*              pNext;
14190     VkBool32           subpassShading;
14191 } VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
14192 
14193 typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
14194     VkStructureType    sType;
14195     void*              pNext;
14196     uint32_t           maxSubpassShadingWorkgroupSizeAspectRatio;
14197 } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
14198 
14199 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
14200 typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
14201 
14202 #ifndef VK_NO_PROTOTYPES
14203 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
14204     VkDevice                                    device,
14205     VkRenderPass                                renderpass,
14206     VkExtent2D*                                 pMaxWorkgroupSize);
14207 
14208 VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
14209     VkCommandBuffer                             commandBuffer);
14210 #endif
14211 
14212 
14213 #define VK_HUAWEI_invocation_mask 1
14214 #define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
14215 #define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
14216 typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
14217     VkStructureType    sType;
14218     void*              pNext;
14219     VkBool32           invocationMask;
14220 } VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
14221 
14222 typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
14223 
14224 #ifndef VK_NO_PROTOTYPES
14225 VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
14226     VkCommandBuffer                             commandBuffer,
14227     VkImageView                                 imageView,
14228     VkImageLayout                               imageLayout);
14229 #endif
14230 
14231 
14232 #define VK_NV_external_memory_rdma 1
14233 typedef void* VkRemoteAddressNV;
14234 #define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
14235 #define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
14236 typedef struct VkMemoryGetRemoteAddressInfoNV {
14237     VkStructureType                       sType;
14238     const void*                           pNext;
14239     VkDeviceMemory                        memory;
14240     VkExternalMemoryHandleTypeFlagBits    handleType;
14241 } VkMemoryGetRemoteAddressInfoNV;
14242 
14243 typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
14244     VkStructureType    sType;
14245     void*              pNext;
14246     VkBool32           externalMemoryRDMA;
14247 } VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
14248 
14249 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
14250 
14251 #ifndef VK_NO_PROTOTYPES
14252 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
14253     VkDevice                                    device,
14254     const VkMemoryGetRemoteAddressInfoNV*       pMemoryGetRemoteAddressInfo,
14255     VkRemoteAddressNV*                          pAddress);
14256 #endif
14257 
14258 
14259 #define VK_EXT_pipeline_properties 1
14260 #define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
14261 #define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
14262 typedef VkPipelineInfoKHR VkPipelineInfoEXT;
14263 
14264 typedef struct VkPipelinePropertiesIdentifierEXT {
14265     VkStructureType    sType;
14266     void*              pNext;
14267     uint8_t            pipelineIdentifier[VK_UUID_SIZE];
14268 } VkPipelinePropertiesIdentifierEXT;
14269 
14270 typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
14271     VkStructureType    sType;
14272     void*              pNext;
14273     VkBool32           pipelinePropertiesIdentifier;
14274 } VkPhysicalDevicePipelinePropertiesFeaturesEXT;
14275 
14276 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
14277 
14278 #ifndef VK_NO_PROTOTYPES
14279 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
14280     VkDevice                                    device,
14281     const VkPipelineInfoEXT*                    pPipelineInfo,
14282     VkBaseOutStructure*                         pPipelineProperties);
14283 #endif
14284 
14285 
14286 #define VK_EXT_multisampled_render_to_single_sampled 1
14287 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
14288 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
14289 typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
14290     VkStructureType    sType;
14291     void*              pNext;
14292     VkBool32           multisampledRenderToSingleSampled;
14293 } VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
14294 
14295 typedef struct VkSubpassResolvePerformanceQueryEXT {
14296     VkStructureType    sType;
14297     void*              pNext;
14298     VkBool32           optimal;
14299 } VkSubpassResolvePerformanceQueryEXT;
14300 
14301 typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
14302     VkStructureType          sType;
14303     const void*              pNext;
14304     VkBool32                 multisampledRenderToSingleSampledEnable;
14305     VkSampleCountFlagBits    rasterizationSamples;
14306 } VkMultisampledRenderToSingleSampledInfoEXT;
14307 
14308 
14309 
14310 #define VK_EXT_extended_dynamic_state2 1
14311 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
14312 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
14313 typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
14314     VkStructureType    sType;
14315     void*              pNext;
14316     VkBool32           extendedDynamicState2;
14317     VkBool32           extendedDynamicState2LogicOp;
14318     VkBool32           extendedDynamicState2PatchControlPoints;
14319 } VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
14320 
14321 typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
14322 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
14323 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
14324 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
14325 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
14326 
14327 #ifndef VK_NO_PROTOTYPES
14328 VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
14329     VkCommandBuffer                             commandBuffer,
14330     uint32_t                                    patchControlPoints);
14331 
14332 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
14333     VkCommandBuffer                             commandBuffer,
14334     VkBool32                                    rasterizerDiscardEnable);
14335 
14336 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
14337     VkCommandBuffer                             commandBuffer,
14338     VkBool32                                    depthBiasEnable);
14339 
14340 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
14341     VkCommandBuffer                             commandBuffer,
14342     VkLogicOp                                   logicOp);
14343 
14344 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
14345     VkCommandBuffer                             commandBuffer,
14346     VkBool32                                    primitiveRestartEnable);
14347 #endif
14348 
14349 
14350 #define VK_EXT_color_write_enable 1
14351 #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
14352 #define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
14353 typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
14354     VkStructureType    sType;
14355     void*              pNext;
14356     VkBool32           colorWriteEnable;
14357 } VkPhysicalDeviceColorWriteEnableFeaturesEXT;
14358 
14359 typedef struct VkPipelineColorWriteCreateInfoEXT {
14360     VkStructureType    sType;
14361     const void*        pNext;
14362     uint32_t           attachmentCount;
14363     const VkBool32*    pColorWriteEnables;
14364 } VkPipelineColorWriteCreateInfoEXT;
14365 
14366 typedef void                                    (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer       commandBuffer, uint32_t                                attachmentCount, const VkBool32*   pColorWriteEnables);
14367 
14368 #ifndef VK_NO_PROTOTYPES
14369 VKAPI_ATTR void                                    VKAPI_CALL vkCmdSetColorWriteEnableEXT(
14370     VkCommandBuffer                             commandBuffer,
14371     uint32_t                                    attachmentCount,
14372     const VkBool32*                             pColorWriteEnables);
14373 #endif
14374 
14375 
14376 #define VK_EXT_primitives_generated_query 1
14377 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
14378 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
14379 typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
14380     VkStructureType    sType;
14381     void*              pNext;
14382     VkBool32           primitivesGeneratedQuery;
14383     VkBool32           primitivesGeneratedQueryWithRasterizerDiscard;
14384     VkBool32           primitivesGeneratedQueryWithNonZeroStreams;
14385 } VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
14386 
14387 
14388 
14389 #define VK_EXT_global_priority_query 1
14390 #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
14391 #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
14392 #define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT   VK_MAX_GLOBAL_PRIORITY_SIZE_KHR
14393 typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
14394 
14395 typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT;
14396 
14397 
14398 
14399 #define VK_EXT_image_view_min_lod 1
14400 #define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
14401 #define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
14402 typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
14403     VkStructureType    sType;
14404     void*              pNext;
14405     VkBool32           minLod;
14406 } VkPhysicalDeviceImageViewMinLodFeaturesEXT;
14407 
14408 typedef struct VkImageViewMinLodCreateInfoEXT {
14409     VkStructureType    sType;
14410     const void*        pNext;
14411     float              minLod;
14412 } VkImageViewMinLodCreateInfoEXT;
14413 
14414 
14415 
14416 #define VK_EXT_multi_draw 1
14417 #define VK_EXT_MULTI_DRAW_SPEC_VERSION    1
14418 #define VK_EXT_MULTI_DRAW_EXTENSION_NAME  "VK_EXT_multi_draw"
14419 typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
14420     VkStructureType    sType;
14421     void*              pNext;
14422     VkBool32           multiDraw;
14423 } VkPhysicalDeviceMultiDrawFeaturesEXT;
14424 
14425 typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
14426     VkStructureType    sType;
14427     void*              pNext;
14428     uint32_t           maxMultiDrawCount;
14429 } VkPhysicalDeviceMultiDrawPropertiesEXT;
14430 
14431 typedef struct VkMultiDrawInfoEXT {
14432     uint32_t    firstVertex;
14433     uint32_t    vertexCount;
14434 } VkMultiDrawInfoEXT;
14435 
14436 typedef struct VkMultiDrawIndexedInfoEXT {
14437     uint32_t    firstIndex;
14438     uint32_t    indexCount;
14439     int32_t     vertexOffset;
14440 } VkMultiDrawIndexedInfoEXT;
14441 
14442 typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
14443 typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiIndexedEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset);
14444 
14445 #ifndef VK_NO_PROTOTYPES
14446 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
14447     VkCommandBuffer                             commandBuffer,
14448     uint32_t                                    drawCount,
14449     const VkMultiDrawInfoEXT*                   pVertexInfo,
14450     uint32_t                                    instanceCount,
14451     uint32_t                                    firstInstance,
14452     uint32_t                                    stride);
14453 
14454 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
14455     VkCommandBuffer                             commandBuffer,
14456     uint32_t                                    drawCount,
14457     const VkMultiDrawIndexedInfoEXT*            pIndexInfo,
14458     uint32_t                                    instanceCount,
14459     uint32_t                                    firstInstance,
14460     uint32_t                                    stride,
14461     const int32_t*                              pVertexOffset);
14462 #endif
14463 
14464 
14465 #define VK_EXT_image_2d_view_of_3d 1
14466 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
14467 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
14468 typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
14469     VkStructureType    sType;
14470     void*              pNext;
14471     VkBool32           image2DViewOf3D;
14472     VkBool32           sampler2DViewOf3D;
14473 } VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
14474 
14475 
14476 
14477 #define VK_EXT_opacity_micromap 1
14478 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
14479 #define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
14480 #define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
14481 
14482 typedef enum VkMicromapTypeEXT {
14483     VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
14484     VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
14485 } VkMicromapTypeEXT;
14486 
14487 typedef enum VkBuildMicromapModeEXT {
14488     VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
14489     VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
14490 } VkBuildMicromapModeEXT;
14491 
14492 typedef enum VkCopyMicromapModeEXT {
14493     VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
14494     VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
14495     VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
14496     VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
14497     VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
14498 } VkCopyMicromapModeEXT;
14499 
14500 typedef enum VkOpacityMicromapFormatEXT {
14501     VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
14502     VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
14503     VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
14504 } VkOpacityMicromapFormatEXT;
14505 
14506 typedef enum VkOpacityMicromapSpecialIndexEXT {
14507     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
14508     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
14509     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
14510     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
14511     VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
14512 } VkOpacityMicromapSpecialIndexEXT;
14513 
14514 typedef enum VkAccelerationStructureCompatibilityKHR {
14515     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
14516     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
14517     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
14518 } VkAccelerationStructureCompatibilityKHR;
14519 
14520 typedef enum VkAccelerationStructureBuildTypeKHR {
14521     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
14522     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
14523     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
14524     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14525 } VkAccelerationStructureBuildTypeKHR;
14526 
14527 typedef enum VkBuildMicromapFlagBitsEXT {
14528     VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
14529     VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
14530     VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
14531     VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14532 } VkBuildMicromapFlagBitsEXT;
14533 typedef VkFlags VkBuildMicromapFlagsEXT;
14534 
14535 typedef enum VkMicromapCreateFlagBitsEXT {
14536     VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
14537     VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14538 } VkMicromapCreateFlagBitsEXT;
14539 typedef VkFlags VkMicromapCreateFlagsEXT;
14540 typedef struct VkMicromapUsageEXT {
14541     uint32_t    count;
14542     uint32_t    subdivisionLevel;
14543     uint32_t    format;
14544 } VkMicromapUsageEXT;
14545 
14546 typedef union VkDeviceOrHostAddressKHR {
14547     VkDeviceAddress    deviceAddress;
14548     void*              hostAddress;
14549 } VkDeviceOrHostAddressKHR;
14550 
14551 typedef struct VkMicromapBuildInfoEXT {
14552     VkStructureType                     sType;
14553     const void*                         pNext;
14554     VkMicromapTypeEXT                   type;
14555     VkBuildMicromapFlagsEXT             flags;
14556     VkBuildMicromapModeEXT              mode;
14557     VkMicromapEXT                       dstMicromap;
14558     uint32_t                            usageCountsCount;
14559     const VkMicromapUsageEXT*           pUsageCounts;
14560     const VkMicromapUsageEXT* const*    ppUsageCounts;
14561     VkDeviceOrHostAddressConstKHR       data;
14562     VkDeviceOrHostAddressKHR            scratchData;
14563     VkDeviceOrHostAddressConstKHR       triangleArray;
14564     VkDeviceSize                        triangleArrayStride;
14565 } VkMicromapBuildInfoEXT;
14566 
14567 typedef struct VkMicromapCreateInfoEXT {
14568     VkStructureType             sType;
14569     const void*                 pNext;
14570     VkMicromapCreateFlagsEXT    createFlags;
14571     VkBuffer                    buffer;
14572     VkDeviceSize                offset;
14573     VkDeviceSize                size;
14574     VkMicromapTypeEXT           type;
14575     VkDeviceAddress             deviceAddress;
14576 } VkMicromapCreateInfoEXT;
14577 
14578 typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
14579     VkStructureType    sType;
14580     void*              pNext;
14581     VkBool32           micromap;
14582     VkBool32           micromapCaptureReplay;
14583     VkBool32           micromapHostCommands;
14584 } VkPhysicalDeviceOpacityMicromapFeaturesEXT;
14585 
14586 typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
14587     VkStructureType    sType;
14588     void*              pNext;
14589     uint32_t           maxOpacity2StateSubdivisionLevel;
14590     uint32_t           maxOpacity4StateSubdivisionLevel;
14591 } VkPhysicalDeviceOpacityMicromapPropertiesEXT;
14592 
14593 typedef struct VkMicromapVersionInfoEXT {
14594     VkStructureType    sType;
14595     const void*        pNext;
14596     const uint8_t*     pVersionData;
14597 } VkMicromapVersionInfoEXT;
14598 
14599 typedef struct VkCopyMicromapToMemoryInfoEXT {
14600     VkStructureType             sType;
14601     const void*                 pNext;
14602     VkMicromapEXT               src;
14603     VkDeviceOrHostAddressKHR    dst;
14604     VkCopyMicromapModeEXT       mode;
14605 } VkCopyMicromapToMemoryInfoEXT;
14606 
14607 typedef struct VkCopyMemoryToMicromapInfoEXT {
14608     VkStructureType                  sType;
14609     const void*                      pNext;
14610     VkDeviceOrHostAddressConstKHR    src;
14611     VkMicromapEXT                    dst;
14612     VkCopyMicromapModeEXT            mode;
14613 } VkCopyMemoryToMicromapInfoEXT;
14614 
14615 typedef struct VkCopyMicromapInfoEXT {
14616     VkStructureType          sType;
14617     const void*              pNext;
14618     VkMicromapEXT            src;
14619     VkMicromapEXT            dst;
14620     VkCopyMicromapModeEXT    mode;
14621 } VkCopyMicromapInfoEXT;
14622 
14623 typedef struct VkMicromapBuildSizesInfoEXT {
14624     VkStructureType    sType;
14625     const void*        pNext;
14626     VkDeviceSize       micromapSize;
14627     VkDeviceSize       buildScratchSize;
14628     VkBool32           discardable;
14629 } VkMicromapBuildSizesInfoEXT;
14630 
14631 typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
14632     VkStructureType                     sType;
14633     void*                               pNext;
14634     VkIndexType                         indexType;
14635     VkDeviceOrHostAddressConstKHR       indexBuffer;
14636     VkDeviceSize                        indexStride;
14637     uint32_t                            baseTriangle;
14638     uint32_t                            usageCountsCount;
14639     const VkMicromapUsageEXT*           pUsageCounts;
14640     const VkMicromapUsageEXT* const*    ppUsageCounts;
14641     VkMicromapEXT                       micromap;
14642 } VkAccelerationStructureTrianglesOpacityMicromapEXT;
14643 
14644 typedef struct VkMicromapTriangleEXT {
14645     uint32_t    dataOffset;
14646     uint16_t    subdivisionLevel;
14647     uint16_t    format;
14648 } VkMicromapTriangleEXT;
14649 
14650 typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice                                           device, const VkMicromapCreateInfoEXT*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkMicromapEXT*                        pMicromap);
14651 typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
14652 typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
14653 typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
14654 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
14655 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
14656 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
14657 typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
14658 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
14659 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
14660 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
14661 typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
14662 typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
14663 typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkMicromapBuildInfoEXT*  pBuildInfo, VkMicromapBuildSizesInfoEXT*           pSizeInfo);
14664 
14665 #ifndef VK_NO_PROTOTYPES
14666 VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
14667     VkDevice                                    device,
14668     const VkMicromapCreateInfoEXT*              pCreateInfo,
14669     const VkAllocationCallbacks*                pAllocator,
14670     VkMicromapEXT*                              pMicromap);
14671 
14672 VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
14673     VkDevice                                    device,
14674     VkMicromapEXT                               micromap,
14675     const VkAllocationCallbacks*                pAllocator);
14676 
14677 VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
14678     VkCommandBuffer                             commandBuffer,
14679     uint32_t                                    infoCount,
14680     const VkMicromapBuildInfoEXT*               pInfos);
14681 
14682 VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
14683     VkDevice                                    device,
14684     VkDeferredOperationKHR                      deferredOperation,
14685     uint32_t                                    infoCount,
14686     const VkMicromapBuildInfoEXT*               pInfos);
14687 
14688 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
14689     VkDevice                                    device,
14690     VkDeferredOperationKHR                      deferredOperation,
14691     const VkCopyMicromapInfoEXT*                pInfo);
14692 
14693 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
14694     VkDevice                                    device,
14695     VkDeferredOperationKHR                      deferredOperation,
14696     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
14697 
14698 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
14699     VkDevice                                    device,
14700     VkDeferredOperationKHR                      deferredOperation,
14701     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
14702 
14703 VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
14704     VkDevice                                    device,
14705     uint32_t                                    micromapCount,
14706     const VkMicromapEXT*                        pMicromaps,
14707     VkQueryType                                 queryType,
14708     size_t                                      dataSize,
14709     void*                                       pData,
14710     size_t                                      stride);
14711 
14712 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
14713     VkCommandBuffer                             commandBuffer,
14714     const VkCopyMicromapInfoEXT*                pInfo);
14715 
14716 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
14717     VkCommandBuffer                             commandBuffer,
14718     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
14719 
14720 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
14721     VkCommandBuffer                             commandBuffer,
14722     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
14723 
14724 VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
14725     VkCommandBuffer                             commandBuffer,
14726     uint32_t                                    micromapCount,
14727     const VkMicromapEXT*                        pMicromaps,
14728     VkQueryType                                 queryType,
14729     VkQueryPool                                 queryPool,
14730     uint32_t                                    firstQuery);
14731 
14732 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
14733     VkDevice                                    device,
14734     const VkMicromapVersionInfoEXT*             pVersionInfo,
14735     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
14736 
14737 VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
14738     VkDevice                                    device,
14739     VkAccelerationStructureBuildTypeKHR         buildType,
14740     const VkMicromapBuildInfoEXT*               pBuildInfo,
14741     VkMicromapBuildSizesInfoEXT*                pSizeInfo);
14742 #endif
14743 
14744 
14745 #define VK_EXT_load_store_op_none 1
14746 #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
14747 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
14748 
14749 
14750 #define VK_EXT_border_color_swizzle 1
14751 #define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
14752 #define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
14753 typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
14754     VkStructureType    sType;
14755     void*              pNext;
14756     VkBool32           borderColorSwizzle;
14757     VkBool32           borderColorSwizzleFromImage;
14758 } VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
14759 
14760 typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
14761     VkStructureType       sType;
14762     const void*           pNext;
14763     VkComponentMapping    components;
14764     VkBool32              srgb;
14765 } VkSamplerBorderColorComponentMappingCreateInfoEXT;
14766 
14767 
14768 
14769 #define VK_EXT_pageable_device_local_memory 1
14770 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
14771 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
14772 typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
14773     VkStructureType    sType;
14774     void*              pNext;
14775     VkBool32           pageableDeviceLocalMemory;
14776 } VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
14777 
14778 typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice       device, VkDeviceMemory memory, float          priority);
14779 
14780 #ifndef VK_NO_PROTOTYPES
14781 VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
14782     VkDevice                                    device,
14783     VkDeviceMemory                              memory,
14784     float                                       priority);
14785 #endif
14786 
14787 
14788 #define VK_VALVE_descriptor_set_host_mapping 1
14789 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
14790 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
14791 typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
14792     VkStructureType    sType;
14793     void*              pNext;
14794     VkBool32           descriptorSetHostMapping;
14795 } VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
14796 
14797 typedef struct VkDescriptorSetBindingReferenceVALVE {
14798     VkStructureType          sType;
14799     const void*              pNext;
14800     VkDescriptorSetLayout    descriptorSetLayout;
14801     uint32_t                 binding;
14802 } VkDescriptorSetBindingReferenceVALVE;
14803 
14804 typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
14805     VkStructureType    sType;
14806     void*              pNext;
14807     size_t             descriptorOffset;
14808     uint32_t           descriptorSize;
14809 } VkDescriptorSetLayoutHostMappingInfoVALVE;
14810 
14811 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
14812 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
14813 
14814 #ifndef VK_NO_PROTOTYPES
14815 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
14816     VkDevice                                    device,
14817     const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
14818     VkDescriptorSetLayoutHostMappingInfoVALVE*  pHostMapping);
14819 
14820 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
14821     VkDevice                                    device,
14822     VkDescriptorSet                             descriptorSet,
14823     void**                                      ppData);
14824 #endif
14825 
14826 
14827 #define VK_EXT_depth_clamp_zero_one 1
14828 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
14829 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
14830 typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT {
14831     VkStructureType    sType;
14832     void*              pNext;
14833     VkBool32           depthClampZeroOne;
14834 } VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
14835 
14836 
14837 
14838 #define VK_EXT_non_seamless_cube_map 1
14839 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
14840 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
14841 typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
14842     VkStructureType    sType;
14843     void*              pNext;
14844     VkBool32           nonSeamlessCubeMap;
14845 } VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
14846 
14847 
14848 
14849 #define VK_QCOM_fragment_density_map_offset 1
14850 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
14851 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
14852 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
14853     VkStructureType    sType;
14854     void*              pNext;
14855     VkBool32           fragmentDensityMapOffset;
14856 } VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
14857 
14858 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
14859     VkStructureType    sType;
14860     void*              pNext;
14861     VkExtent2D         fragmentDensityOffsetGranularity;
14862 } VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
14863 
14864 typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM {
14865     VkStructureType      sType;
14866     const void*          pNext;
14867     uint32_t             fragmentDensityOffsetCount;
14868     const VkOffset2D*    pFragmentDensityOffsets;
14869 } VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
14870 
14871 
14872 
14873 #define VK_NV_linear_color_attachment 1
14874 #define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
14875 #define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
14876 typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
14877     VkStructureType    sType;
14878     void*              pNext;
14879     VkBool32           linearColorAttachment;
14880 } VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
14881 
14882 
14883 
14884 #define VK_GOOGLE_surfaceless_query 1
14885 #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
14886 #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
14887 
14888 
14889 #define VK_EXT_image_compression_control_swapchain 1
14890 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
14891 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
14892 typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
14893     VkStructureType    sType;
14894     void*              pNext;
14895     VkBool32           imageCompressionControlSwapchain;
14896 } VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
14897 
14898 
14899 
14900 #define VK_QCOM_image_processing 1
14901 #define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
14902 #define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
14903 typedef struct VkImageViewSampleWeightCreateInfoQCOM {
14904     VkStructureType    sType;
14905     const void*        pNext;
14906     VkOffset2D         filterCenter;
14907     VkExtent2D         filterSize;
14908     uint32_t           numPhases;
14909 } VkImageViewSampleWeightCreateInfoQCOM;
14910 
14911 typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
14912     VkStructureType    sType;
14913     void*              pNext;
14914     VkBool32           textureSampleWeighted;
14915     VkBool32           textureBoxFilter;
14916     VkBool32           textureBlockMatch;
14917 } VkPhysicalDeviceImageProcessingFeaturesQCOM;
14918 
14919 typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
14920     VkStructureType    sType;
14921     void*              pNext;
14922     uint32_t           maxWeightFilterPhases;
14923     VkExtent2D         maxWeightFilterDimension;
14924     VkExtent2D         maxBlockMatchRegion;
14925     VkExtent2D         maxBoxFilterBlockSize;
14926 } VkPhysicalDeviceImageProcessingPropertiesQCOM;
14927 
14928 
14929 
14930 #define VK_EXT_extended_dynamic_state3 1
14931 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
14932 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
14933 typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
14934     VkStructureType    sType;
14935     void*              pNext;
14936     VkBool32           extendedDynamicState3TessellationDomainOrigin;
14937     VkBool32           extendedDynamicState3DepthClampEnable;
14938     VkBool32           extendedDynamicState3PolygonMode;
14939     VkBool32           extendedDynamicState3RasterizationSamples;
14940     VkBool32           extendedDynamicState3SampleMask;
14941     VkBool32           extendedDynamicState3AlphaToCoverageEnable;
14942     VkBool32           extendedDynamicState3AlphaToOneEnable;
14943     VkBool32           extendedDynamicState3LogicOpEnable;
14944     VkBool32           extendedDynamicState3ColorBlendEnable;
14945     VkBool32           extendedDynamicState3ColorBlendEquation;
14946     VkBool32           extendedDynamicState3ColorWriteMask;
14947     VkBool32           extendedDynamicState3RasterizationStream;
14948     VkBool32           extendedDynamicState3ConservativeRasterizationMode;
14949     VkBool32           extendedDynamicState3ExtraPrimitiveOverestimationSize;
14950     VkBool32           extendedDynamicState3DepthClipEnable;
14951     VkBool32           extendedDynamicState3SampleLocationsEnable;
14952     VkBool32           extendedDynamicState3ColorBlendAdvanced;
14953     VkBool32           extendedDynamicState3ProvokingVertexMode;
14954     VkBool32           extendedDynamicState3LineRasterizationMode;
14955     VkBool32           extendedDynamicState3LineStippleEnable;
14956     VkBool32           extendedDynamicState3DepthClipNegativeOneToOne;
14957     VkBool32           extendedDynamicState3ViewportWScalingEnable;
14958     VkBool32           extendedDynamicState3ViewportSwizzle;
14959     VkBool32           extendedDynamicState3CoverageToColorEnable;
14960     VkBool32           extendedDynamicState3CoverageToColorLocation;
14961     VkBool32           extendedDynamicState3CoverageModulationMode;
14962     VkBool32           extendedDynamicState3CoverageModulationTableEnable;
14963     VkBool32           extendedDynamicState3CoverageModulationTable;
14964     VkBool32           extendedDynamicState3CoverageReductionMode;
14965     VkBool32           extendedDynamicState3RepresentativeFragmentTestEnable;
14966     VkBool32           extendedDynamicState3ShadingRateImageEnable;
14967 } VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
14968 
14969 typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
14970     VkStructureType    sType;
14971     void*              pNext;
14972     VkBool32           dynamicPrimitiveTopologyUnrestricted;
14973 } VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
14974 
14975 typedef struct VkColorBlendEquationEXT {
14976     VkBlendFactor    srcColorBlendFactor;
14977     VkBlendFactor    dstColorBlendFactor;
14978     VkBlendOp        colorBlendOp;
14979     VkBlendFactor    srcAlphaBlendFactor;
14980     VkBlendFactor    dstAlphaBlendFactor;
14981     VkBlendOp        alphaBlendOp;
14982 } VkColorBlendEquationEXT;
14983 
14984 typedef struct VkColorBlendAdvancedEXT {
14985     VkBlendOp            advancedBlendOp;
14986     VkBool32             srcPremultiplied;
14987     VkBool32             dstPremultiplied;
14988     VkBlendOverlapEXT    blendOverlap;
14989     VkBool32             clampResults;
14990 } VkColorBlendAdvancedEXT;
14991 
14992 typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
14993 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
14994 typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
14995 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  rasterizationSamples);
14996 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  samples, const VkSampleMask*    pSampleMask);
14997 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
14998 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
14999 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
15000 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
15001 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
15002 typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
15003 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
15004 typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
15005 typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
15006 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
15007 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
15008 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
15009 typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
15010 typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
15011 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
15012 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
15013 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
15014 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
15015 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
15016 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
15017 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
15018 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
15019 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
15020 typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
15021 typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
15022 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
15023 
15024 #ifndef VK_NO_PROTOTYPES
15025 VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
15026     VkCommandBuffer                             commandBuffer,
15027     VkTessellationDomainOrigin                  domainOrigin);
15028 
15029 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
15030     VkCommandBuffer                             commandBuffer,
15031     VkBool32                                    depthClampEnable);
15032 
15033 VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
15034     VkCommandBuffer                             commandBuffer,
15035     VkPolygonMode                               polygonMode);
15036 
15037 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
15038     VkCommandBuffer                             commandBuffer,
15039     VkSampleCountFlagBits                       rasterizationSamples);
15040 
15041 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
15042     VkCommandBuffer                             commandBuffer,
15043     VkSampleCountFlagBits                       samples,
15044     const VkSampleMask*                         pSampleMask);
15045 
15046 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
15047     VkCommandBuffer                             commandBuffer,
15048     VkBool32                                    alphaToCoverageEnable);
15049 
15050 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
15051     VkCommandBuffer                             commandBuffer,
15052     VkBool32                                    alphaToOneEnable);
15053 
15054 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
15055     VkCommandBuffer                             commandBuffer,
15056     VkBool32                                    logicOpEnable);
15057 
15058 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
15059     VkCommandBuffer                             commandBuffer,
15060     uint32_t                                    firstAttachment,
15061     uint32_t                                    attachmentCount,
15062     const VkBool32*                             pColorBlendEnables);
15063 
15064 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
15065     VkCommandBuffer                             commandBuffer,
15066     uint32_t                                    firstAttachment,
15067     uint32_t                                    attachmentCount,
15068     const VkColorBlendEquationEXT*              pColorBlendEquations);
15069 
15070 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
15071     VkCommandBuffer                             commandBuffer,
15072     uint32_t                                    firstAttachment,
15073     uint32_t                                    attachmentCount,
15074     const VkColorComponentFlags*                pColorWriteMasks);
15075 
15076 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
15077     VkCommandBuffer                             commandBuffer,
15078     uint32_t                                    rasterizationStream);
15079 
15080 VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
15081     VkCommandBuffer                             commandBuffer,
15082     VkConservativeRasterizationModeEXT          conservativeRasterizationMode);
15083 
15084 VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
15085     VkCommandBuffer                             commandBuffer,
15086     float                                       extraPrimitiveOverestimationSize);
15087 
15088 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
15089     VkCommandBuffer                             commandBuffer,
15090     VkBool32                                    depthClipEnable);
15091 
15092 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
15093     VkCommandBuffer                             commandBuffer,
15094     VkBool32                                    sampleLocationsEnable);
15095 
15096 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
15097     VkCommandBuffer                             commandBuffer,
15098     uint32_t                                    firstAttachment,
15099     uint32_t                                    attachmentCount,
15100     const VkColorBlendAdvancedEXT*              pColorBlendAdvanced);
15101 
15102 VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
15103     VkCommandBuffer                             commandBuffer,
15104     VkProvokingVertexModeEXT                    provokingVertexMode);
15105 
15106 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
15107     VkCommandBuffer                             commandBuffer,
15108     VkLineRasterizationModeEXT                  lineRasterizationMode);
15109 
15110 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
15111     VkCommandBuffer                             commandBuffer,
15112     VkBool32                                    stippledLineEnable);
15113 
15114 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
15115     VkCommandBuffer                             commandBuffer,
15116     VkBool32                                    negativeOneToOne);
15117 
15118 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
15119     VkCommandBuffer                             commandBuffer,
15120     VkBool32                                    viewportWScalingEnable);
15121 
15122 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
15123     VkCommandBuffer                             commandBuffer,
15124     uint32_t                                    firstViewport,
15125     uint32_t                                    viewportCount,
15126     const VkViewportSwizzleNV*                  pViewportSwizzles);
15127 
15128 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
15129     VkCommandBuffer                             commandBuffer,
15130     VkBool32                                    coverageToColorEnable);
15131 
15132 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
15133     VkCommandBuffer                             commandBuffer,
15134     uint32_t                                    coverageToColorLocation);
15135 
15136 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
15137     VkCommandBuffer                             commandBuffer,
15138     VkCoverageModulationModeNV                  coverageModulationMode);
15139 
15140 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
15141     VkCommandBuffer                             commandBuffer,
15142     VkBool32                                    coverageModulationTableEnable);
15143 
15144 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
15145     VkCommandBuffer                             commandBuffer,
15146     uint32_t                                    coverageModulationTableCount,
15147     const float*                                pCoverageModulationTable);
15148 
15149 VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
15150     VkCommandBuffer                             commandBuffer,
15151     VkBool32                                    shadingRateImageEnable);
15152 
15153 VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
15154     VkCommandBuffer                             commandBuffer,
15155     VkBool32                                    representativeFragmentTestEnable);
15156 
15157 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
15158     VkCommandBuffer                             commandBuffer,
15159     VkCoverageReductionModeNV                   coverageReductionMode);
15160 #endif
15161 
15162 
15163 #define VK_EXT_subpass_merge_feedback 1
15164 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
15165 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
15166 
15167 typedef enum VkSubpassMergeStatusEXT {
15168     VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
15169     VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
15170     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
15171     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
15172     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
15173     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
15174     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
15175     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
15176     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
15177     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
15178     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
15179     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
15180     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
15181     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
15182     VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
15183 } VkSubpassMergeStatusEXT;
15184 typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
15185     VkStructureType    sType;
15186     void*              pNext;
15187     VkBool32           subpassMergeFeedback;
15188 } VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
15189 
15190 typedef struct VkRenderPassCreationControlEXT {
15191     VkStructureType    sType;
15192     const void*        pNext;
15193     VkBool32           disallowMerging;
15194 } VkRenderPassCreationControlEXT;
15195 
15196 typedef struct VkRenderPassCreationFeedbackInfoEXT {
15197     uint32_t    postMergeSubpassCount;
15198 } VkRenderPassCreationFeedbackInfoEXT;
15199 
15200 typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
15201     VkStructureType                         sType;
15202     const void*                             pNext;
15203     VkRenderPassCreationFeedbackInfoEXT*    pRenderPassFeedback;
15204 } VkRenderPassCreationFeedbackCreateInfoEXT;
15205 
15206 typedef struct VkRenderPassSubpassFeedbackInfoEXT {
15207     VkSubpassMergeStatusEXT    subpassMergeStatus;
15208     char                       description[VK_MAX_DESCRIPTION_SIZE];
15209     uint32_t                   postMergeIndex;
15210 } VkRenderPassSubpassFeedbackInfoEXT;
15211 
15212 typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
15213     VkStructureType                        sType;
15214     const void*                            pNext;
15215     VkRenderPassSubpassFeedbackInfoEXT*    pSubpassFeedback;
15216 } VkRenderPassSubpassFeedbackCreateInfoEXT;
15217 
15218 
15219 
15220 #define VK_EXT_shader_module_identifier 1
15221 #define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
15222 #define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
15223 #define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
15224 typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
15225     VkStructureType    sType;
15226     void*              pNext;
15227     VkBool32           shaderModuleIdentifier;
15228 } VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
15229 
15230 typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
15231     VkStructureType    sType;
15232     void*              pNext;
15233     uint8_t            shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
15234 } VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
15235 
15236 typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
15237     VkStructureType    sType;
15238     const void*        pNext;
15239     uint32_t           identifierSize;
15240     const uint8_t*     pIdentifier;
15241 } VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
15242 
15243 typedef struct VkShaderModuleIdentifierEXT {
15244     VkStructureType    sType;
15245     void*              pNext;
15246     uint32_t           identifierSize;
15247     uint8_t            identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
15248 } VkShaderModuleIdentifierEXT;
15249 
15250 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
15251 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
15252 
15253 #ifndef VK_NO_PROTOTYPES
15254 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
15255     VkDevice                                    device,
15256     VkShaderModule                              shaderModule,
15257     VkShaderModuleIdentifierEXT*                pIdentifier);
15258 
15259 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
15260     VkDevice                                    device,
15261     const VkShaderModuleCreateInfo*             pCreateInfo,
15262     VkShaderModuleIdentifierEXT*                pIdentifier);
15263 #endif
15264 
15265 
15266 #define VK_EXT_rasterization_order_attachment_access 1
15267 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
15268 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
15269 
15270 
15271 #define VK_NV_optical_flow 1
15272 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
15273 #define VK_NV_OPTICAL_FLOW_SPEC_VERSION   1
15274 #define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
15275 
15276 typedef enum VkOpticalFlowPerformanceLevelNV {
15277     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
15278     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
15279     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
15280     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
15281     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
15282 } VkOpticalFlowPerformanceLevelNV;
15283 
15284 typedef enum VkOpticalFlowSessionBindingPointNV {
15285     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
15286     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
15287     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
15288     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
15289     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
15290     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
15291     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
15292     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
15293     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
15294     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
15295 } VkOpticalFlowSessionBindingPointNV;
15296 
15297 typedef enum VkOpticalFlowGridSizeFlagBitsNV {
15298     VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
15299     VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
15300     VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
15301     VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
15302     VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
15303     VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15304 } VkOpticalFlowGridSizeFlagBitsNV;
15305 typedef VkFlags   VkOpticalFlowGridSizeFlagsNV;
15306 
15307 typedef enum VkOpticalFlowUsageFlagBitsNV {
15308     VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
15309     VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
15310     VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
15311     VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
15312     VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
15313     VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
15314     VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15315 } VkOpticalFlowUsageFlagBitsNV;
15316 typedef VkFlags   VkOpticalFlowUsageFlagsNV;
15317 
15318 typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
15319     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
15320     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
15321     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
15322     VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
15323     VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
15324     VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15325 } VkOpticalFlowSessionCreateFlagBitsNV;
15326 typedef VkFlags   VkOpticalFlowSessionCreateFlagsNV;
15327 
15328 typedef enum VkOpticalFlowExecuteFlagBitsNV {
15329     VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
15330     VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15331 } VkOpticalFlowExecuteFlagBitsNV;
15332 typedef VkFlags   VkOpticalFlowExecuteFlagsNV;
15333 typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
15334     VkStructureType    sType;
15335     void*              pNext;
15336     VkBool32           opticalFlow;
15337 } VkPhysicalDeviceOpticalFlowFeaturesNV;
15338 
15339 typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
15340     VkStructureType                 sType;
15341     void*                           pNext;
15342     VkOpticalFlowGridSizeFlagsNV    supportedOutputGridSizes;
15343     VkOpticalFlowGridSizeFlagsNV    supportedHintGridSizes;
15344     VkBool32                        hintSupported;
15345     VkBool32                        costSupported;
15346     VkBool32                        bidirectionalFlowSupported;
15347     VkBool32                        globalFlowSupported;
15348     uint32_t                        minWidth;
15349     uint32_t                        minHeight;
15350     uint32_t                        maxWidth;
15351     uint32_t                        maxHeight;
15352     uint32_t                        maxNumRegionsOfInterest;
15353 } VkPhysicalDeviceOpticalFlowPropertiesNV;
15354 
15355 typedef struct VkOpticalFlowImageFormatInfoNV {
15356     VkStructureType              sType;
15357     const void*                  pNext;
15358     VkOpticalFlowUsageFlagsNV    usage;
15359 } VkOpticalFlowImageFormatInfoNV;
15360 
15361 typedef struct VkOpticalFlowImageFormatPropertiesNV {
15362     VkStructureType    sType;
15363     const void*        pNext;
15364     VkFormat           format;
15365 } VkOpticalFlowImageFormatPropertiesNV;
15366 
15367 typedef struct VkOpticalFlowSessionCreateInfoNV {
15368     VkStructureType                      sType;
15369     void*                                pNext;
15370     uint32_t                             width;
15371     uint32_t                             height;
15372     VkFormat                             imageFormat;
15373     VkFormat                             flowVectorFormat;
15374     VkFormat                             costFormat;
15375     VkOpticalFlowGridSizeFlagsNV         outputGridSize;
15376     VkOpticalFlowGridSizeFlagsNV         hintGridSize;
15377     VkOpticalFlowPerformanceLevelNV      performanceLevel;
15378     VkOpticalFlowSessionCreateFlagsNV    flags;
15379 } VkOpticalFlowSessionCreateInfoNV;
15380 
15381 typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
15382     VkStructureType    sType;
15383     void*              pNext;
15384     uint32_t           id;
15385     uint32_t           size;
15386     const void*        pPrivateData;
15387 } VkOpticalFlowSessionCreatePrivateDataInfoNV;
15388 
15389 typedef struct VkOpticalFlowExecuteInfoNV {
15390     VkStructureType                sType;
15391     void*                          pNext;
15392     VkOpticalFlowExecuteFlagsNV    flags;
15393     uint32_t                       regionCount;
15394     const VkRect2D*                pRegions;
15395 } VkOpticalFlowExecuteInfoNV;
15396 
15397 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
15398 typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
15399 typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
15400 typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
15401 typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
15402 
15403 #ifndef VK_NO_PROTOTYPES
15404 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
15405     VkPhysicalDevice                            physicalDevice,
15406     const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
15407     uint32_t*                                   pFormatCount,
15408     VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties);
15409 
15410 VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
15411     VkDevice                                    device,
15412     const VkOpticalFlowSessionCreateInfoNV*     pCreateInfo,
15413     const VkAllocationCallbacks*                pAllocator,
15414     VkOpticalFlowSessionNV*                     pSession);
15415 
15416 VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
15417     VkDevice                                    device,
15418     VkOpticalFlowSessionNV                      session,
15419     const VkAllocationCallbacks*                pAllocator);
15420 
15421 VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
15422     VkDevice                                    device,
15423     VkOpticalFlowSessionNV                      session,
15424     VkOpticalFlowSessionBindingPointNV          bindingPoint,
15425     VkImageView                                 view,
15426     VkImageLayout                               layout);
15427 
15428 VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
15429     VkCommandBuffer                             commandBuffer,
15430     VkOpticalFlowSessionNV                      session,
15431     const VkOpticalFlowExecuteInfoNV*           pExecuteInfo);
15432 #endif
15433 
15434 
15435 #define VK_EXT_legacy_dithering 1
15436 #define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 1
15437 #define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
15438 typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
15439     VkStructureType    sType;
15440     void*              pNext;
15441     VkBool32           legacyDithering;
15442 } VkPhysicalDeviceLegacyDitheringFeaturesEXT;
15443 
15444 
15445 
15446 #define VK_EXT_pipeline_protected_access 1
15447 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
15448 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
15449 typedef struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT {
15450     VkStructureType    sType;
15451     void*              pNext;
15452     VkBool32           pipelineProtectedAccess;
15453 } VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
15454 
15455 
15456 
15457 #define VK_QCOM_tile_properties 1
15458 #define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
15459 #define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
15460 typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
15461     VkStructureType    sType;
15462     void*              pNext;
15463     VkBool32           tileProperties;
15464 } VkPhysicalDeviceTilePropertiesFeaturesQCOM;
15465 
15466 typedef struct VkTilePropertiesQCOM {
15467     VkStructureType    sType;
15468     void*              pNext;
15469     VkExtent3D         tileSize;
15470     VkExtent2D         apronSize;
15471     VkOffset2D         origin;
15472 } VkTilePropertiesQCOM;
15473 
15474 typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
15475 typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
15476 
15477 #ifndef VK_NO_PROTOTYPES
15478 VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
15479     VkDevice                                    device,
15480     VkFramebuffer                               framebuffer,
15481     uint32_t*                                   pPropertiesCount,
15482     VkTilePropertiesQCOM*                       pProperties);
15483 
15484 VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
15485     VkDevice                                    device,
15486     const VkRenderingInfo*                      pRenderingInfo,
15487     VkTilePropertiesQCOM*                       pProperties);
15488 #endif
15489 
15490 
15491 #define VK_SEC_amigo_profiling 1
15492 #define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
15493 #define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
15494 typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
15495     VkStructureType    sType;
15496     void*              pNext;
15497     VkBool32           amigoProfiling;
15498 } VkPhysicalDeviceAmigoProfilingFeaturesSEC;
15499 
15500 typedef struct VkAmigoProfilingSubmitInfoSEC {
15501     VkStructureType    sType;
15502     const void*        pNext;
15503     uint64_t           firstDrawTimestamp;
15504     uint64_t           swapBufferTimestamp;
15505 } VkAmigoProfilingSubmitInfoSEC;
15506 
15507 
15508 
15509 #define VK_EXT_mutable_descriptor_type 1
15510 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
15511 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
15512 
15513 
15514 #define VK_ARM_shader_core_builtins 1
15515 #define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 1
15516 #define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
15517 typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
15518     VkStructureType    sType;
15519     void*              pNext;
15520     VkBool32           shaderCoreBuiltins;
15521 } VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
15522 
15523 typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
15524     VkStructureType    sType;
15525     void*              pNext;
15526     uint32_t           shaderCoreCount;
15527     uint32_t           shaderWarpsPerCore;
15528 } VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
15529 
15530 
15531 
15532 #define VK_KHR_acceleration_structure 1
15533 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
15534 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
15535 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
15536 
15537 typedef enum VkBuildAccelerationStructureModeKHR {
15538     VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
15539     VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
15540     VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
15541 } VkBuildAccelerationStructureModeKHR;
15542 
15543 typedef enum VkAccelerationStructureCreateFlagBitsKHR {
15544     VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
15545     VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
15546     VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
15547 } VkAccelerationStructureCreateFlagBitsKHR;
15548 typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
15549 typedef struct VkAccelerationStructureBuildRangeInfoKHR {
15550     uint32_t    primitiveCount;
15551     uint32_t    primitiveOffset;
15552     uint32_t    firstVertex;
15553     uint32_t    transformOffset;
15554 } VkAccelerationStructureBuildRangeInfoKHR;
15555 
15556 typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
15557     VkStructureType                  sType;
15558     const void*                      pNext;
15559     VkFormat                         vertexFormat;
15560     VkDeviceOrHostAddressConstKHR    vertexData;
15561     VkDeviceSize                     vertexStride;
15562     uint32_t                         maxVertex;
15563     VkIndexType                      indexType;
15564     VkDeviceOrHostAddressConstKHR    indexData;
15565     VkDeviceOrHostAddressConstKHR    transformData;
15566 } VkAccelerationStructureGeometryTrianglesDataKHR;
15567 
15568 typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
15569     VkStructureType                  sType;
15570     const void*                      pNext;
15571     VkDeviceOrHostAddressConstKHR    data;
15572     VkDeviceSize                     stride;
15573 } VkAccelerationStructureGeometryAabbsDataKHR;
15574 
15575 typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
15576     VkStructureType                  sType;
15577     const void*                      pNext;
15578     VkBool32                         arrayOfPointers;
15579     VkDeviceOrHostAddressConstKHR    data;
15580 } VkAccelerationStructureGeometryInstancesDataKHR;
15581 
15582 typedef union VkAccelerationStructureGeometryDataKHR {
15583     VkAccelerationStructureGeometryTrianglesDataKHR    triangles;
15584     VkAccelerationStructureGeometryAabbsDataKHR        aabbs;
15585     VkAccelerationStructureGeometryInstancesDataKHR    instances;
15586 } VkAccelerationStructureGeometryDataKHR;
15587 
15588 typedef struct VkAccelerationStructureGeometryKHR {
15589     VkStructureType                           sType;
15590     const void*                               pNext;
15591     VkGeometryTypeKHR                         geometryType;
15592     VkAccelerationStructureGeometryDataKHR    geometry;
15593     VkGeometryFlagsKHR                        flags;
15594 } VkAccelerationStructureGeometryKHR;
15595 
15596 typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
15597     VkStructureType                                     sType;
15598     const void*                                         pNext;
15599     VkAccelerationStructureTypeKHR                      type;
15600     VkBuildAccelerationStructureFlagsKHR                flags;
15601     VkBuildAccelerationStructureModeKHR                 mode;
15602     VkAccelerationStructureKHR                          srcAccelerationStructure;
15603     VkAccelerationStructureKHR                          dstAccelerationStructure;
15604     uint32_t                                            geometryCount;
15605     const VkAccelerationStructureGeometryKHR*           pGeometries;
15606     const VkAccelerationStructureGeometryKHR* const*    ppGeometries;
15607     VkDeviceOrHostAddressKHR                            scratchData;
15608 } VkAccelerationStructureBuildGeometryInfoKHR;
15609 
15610 typedef struct VkAccelerationStructureCreateInfoKHR {
15611     VkStructureType                          sType;
15612     const void*                              pNext;
15613     VkAccelerationStructureCreateFlagsKHR    createFlags;
15614     VkBuffer                                 buffer;
15615     VkDeviceSize                             offset;
15616     VkDeviceSize                             size;
15617     VkAccelerationStructureTypeKHR           type;
15618     VkDeviceAddress                          deviceAddress;
15619 } VkAccelerationStructureCreateInfoKHR;
15620 
15621 typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
15622     VkStructureType                      sType;
15623     const void*                          pNext;
15624     uint32_t                             accelerationStructureCount;
15625     const VkAccelerationStructureKHR*    pAccelerationStructures;
15626 } VkWriteDescriptorSetAccelerationStructureKHR;
15627 
15628 typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
15629     VkStructureType    sType;
15630     void*              pNext;
15631     VkBool32           accelerationStructure;
15632     VkBool32           accelerationStructureCaptureReplay;
15633     VkBool32           accelerationStructureIndirectBuild;
15634     VkBool32           accelerationStructureHostCommands;
15635     VkBool32           descriptorBindingAccelerationStructureUpdateAfterBind;
15636 } VkPhysicalDeviceAccelerationStructureFeaturesKHR;
15637 
15638 typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
15639     VkStructureType    sType;
15640     void*              pNext;
15641     uint64_t           maxGeometryCount;
15642     uint64_t           maxInstanceCount;
15643     uint64_t           maxPrimitiveCount;
15644     uint32_t           maxPerStageDescriptorAccelerationStructures;
15645     uint32_t           maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
15646     uint32_t           maxDescriptorSetAccelerationStructures;
15647     uint32_t           maxDescriptorSetUpdateAfterBindAccelerationStructures;
15648     uint32_t           minAccelerationStructureScratchOffsetAlignment;
15649 } VkPhysicalDeviceAccelerationStructurePropertiesKHR;
15650 
15651 typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
15652     VkStructureType               sType;
15653     const void*                   pNext;
15654     VkAccelerationStructureKHR    accelerationStructure;
15655 } VkAccelerationStructureDeviceAddressInfoKHR;
15656 
15657 typedef struct VkAccelerationStructureVersionInfoKHR {
15658     VkStructureType    sType;
15659     const void*        pNext;
15660     const uint8_t*     pVersionData;
15661 } VkAccelerationStructureVersionInfoKHR;
15662 
15663 typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
15664     VkStructureType                       sType;
15665     const void*                           pNext;
15666     VkAccelerationStructureKHR            src;
15667     VkDeviceOrHostAddressKHR              dst;
15668     VkCopyAccelerationStructureModeKHR    mode;
15669 } VkCopyAccelerationStructureToMemoryInfoKHR;
15670 
15671 typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
15672     VkStructureType                       sType;
15673     const void*                           pNext;
15674     VkDeviceOrHostAddressConstKHR         src;
15675     VkAccelerationStructureKHR            dst;
15676     VkCopyAccelerationStructureModeKHR    mode;
15677 } VkCopyMemoryToAccelerationStructureInfoKHR;
15678 
15679 typedef struct VkCopyAccelerationStructureInfoKHR {
15680     VkStructureType                       sType;
15681     const void*                           pNext;
15682     VkAccelerationStructureKHR            src;
15683     VkAccelerationStructureKHR            dst;
15684     VkCopyAccelerationStructureModeKHR    mode;
15685 } VkCopyAccelerationStructureInfoKHR;
15686 
15687 typedef struct VkAccelerationStructureBuildSizesInfoKHR {
15688     VkStructureType    sType;
15689     const void*        pNext;
15690     VkDeviceSize       accelerationStructureSize;
15691     VkDeviceSize       updateScratchSize;
15692     VkDeviceSize       buildScratchSize;
15693 } VkAccelerationStructureBuildSizesInfoKHR;
15694 
15695 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure);
15696 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
15697 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
15698 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer                  commandBuffer, uint32_t                                           infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress*             pIndirectDeviceAddresses, const uint32_t*                    pIndirectStrides, const uint32_t* const*             ppMaxPrimitiveCounts);
15699 typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
15700 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
15701 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
15702 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
15703 typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
15704 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
15705 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
15706 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
15707 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
15708 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
15709 typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
15710 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkAccelerationStructureBuildGeometryInfoKHR*  pBuildInfo, const uint32_t*  pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR*           pSizeInfo);
15711 
15712 #ifndef VK_NO_PROTOTYPES
15713 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
15714     VkDevice                                    device,
15715     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
15716     const VkAllocationCallbacks*                pAllocator,
15717     VkAccelerationStructureKHR*                 pAccelerationStructure);
15718 
15719 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
15720     VkDevice                                    device,
15721     VkAccelerationStructureKHR                  accelerationStructure,
15722     const VkAllocationCallbacks*                pAllocator);
15723 
15724 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
15725     VkCommandBuffer                             commandBuffer,
15726     uint32_t                                    infoCount,
15727     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
15728     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
15729 
15730 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
15731     VkCommandBuffer                             commandBuffer,
15732     uint32_t                                    infoCount,
15733     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
15734     const VkDeviceAddress*                      pIndirectDeviceAddresses,
15735     const uint32_t*                             pIndirectStrides,
15736     const uint32_t* const*                      ppMaxPrimitiveCounts);
15737 
15738 VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
15739     VkDevice                                    device,
15740     VkDeferredOperationKHR                      deferredOperation,
15741     uint32_t                                    infoCount,
15742     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
15743     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
15744 
15745 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
15746     VkDevice                                    device,
15747     VkDeferredOperationKHR                      deferredOperation,
15748     const VkCopyAccelerationStructureInfoKHR*   pInfo);
15749 
15750 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
15751     VkDevice                                    device,
15752     VkDeferredOperationKHR                      deferredOperation,
15753     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
15754 
15755 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
15756     VkDevice                                    device,
15757     VkDeferredOperationKHR                      deferredOperation,
15758     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
15759 
15760 VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
15761     VkDevice                                    device,
15762     uint32_t                                    accelerationStructureCount,
15763     const VkAccelerationStructureKHR*           pAccelerationStructures,
15764     VkQueryType                                 queryType,
15765     size_t                                      dataSize,
15766     void*                                       pData,
15767     size_t                                      stride);
15768 
15769 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
15770     VkCommandBuffer                             commandBuffer,
15771     const VkCopyAccelerationStructureInfoKHR*   pInfo);
15772 
15773 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
15774     VkCommandBuffer                             commandBuffer,
15775     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
15776 
15777 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
15778     VkCommandBuffer                             commandBuffer,
15779     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
15780 
15781 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
15782     VkDevice                                    device,
15783     const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
15784 
15785 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
15786     VkCommandBuffer                             commandBuffer,
15787     uint32_t                                    accelerationStructureCount,
15788     const VkAccelerationStructureKHR*           pAccelerationStructures,
15789     VkQueryType                                 queryType,
15790     VkQueryPool                                 queryPool,
15791     uint32_t                                    firstQuery);
15792 
15793 VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
15794     VkDevice                                    device,
15795     const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
15796     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
15797 
15798 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
15799     VkDevice                                    device,
15800     VkAccelerationStructureBuildTypeKHR         buildType,
15801     const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
15802     const uint32_t*                             pMaxPrimitiveCounts,
15803     VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo);
15804 #endif
15805 
15806 
15807 #define VK_KHR_ray_tracing_pipeline 1
15808 #define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
15809 #define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
15810 
15811 typedef enum VkShaderGroupShaderKHR {
15812     VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
15813     VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
15814     VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
15815     VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
15816     VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
15817 } VkShaderGroupShaderKHR;
15818 typedef struct VkRayTracingShaderGroupCreateInfoKHR {
15819     VkStructureType                   sType;
15820     const void*                       pNext;
15821     VkRayTracingShaderGroupTypeKHR    type;
15822     uint32_t                          generalShader;
15823     uint32_t                          closestHitShader;
15824     uint32_t                          anyHitShader;
15825     uint32_t                          intersectionShader;
15826     const void*                       pShaderGroupCaptureReplayHandle;
15827 } VkRayTracingShaderGroupCreateInfoKHR;
15828 
15829 typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
15830     VkStructureType    sType;
15831     const void*        pNext;
15832     uint32_t           maxPipelineRayPayloadSize;
15833     uint32_t           maxPipelineRayHitAttributeSize;
15834 } VkRayTracingPipelineInterfaceCreateInfoKHR;
15835 
15836 typedef struct VkRayTracingPipelineCreateInfoKHR {
15837     VkStructureType                                      sType;
15838     const void*                                          pNext;
15839     VkPipelineCreateFlags                                flags;
15840     uint32_t                                             stageCount;
15841     const VkPipelineShaderStageCreateInfo*               pStages;
15842     uint32_t                                             groupCount;
15843     const VkRayTracingShaderGroupCreateInfoKHR*          pGroups;
15844     uint32_t                                             maxPipelineRayRecursionDepth;
15845     const VkPipelineLibraryCreateInfoKHR*                pLibraryInfo;
15846     const VkRayTracingPipelineInterfaceCreateInfoKHR*    pLibraryInterface;
15847     const VkPipelineDynamicStateCreateInfo*              pDynamicState;
15848     VkPipelineLayout                                     layout;
15849     VkPipeline                                           basePipelineHandle;
15850     int32_t                                              basePipelineIndex;
15851 } VkRayTracingPipelineCreateInfoKHR;
15852 
15853 typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
15854     VkStructureType    sType;
15855     void*              pNext;
15856     VkBool32           rayTracingPipeline;
15857     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplay;
15858     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
15859     VkBool32           rayTracingPipelineTraceRaysIndirect;
15860     VkBool32           rayTraversalPrimitiveCulling;
15861 } VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
15862 
15863 typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
15864     VkStructureType    sType;
15865     void*              pNext;
15866     uint32_t           shaderGroupHandleSize;
15867     uint32_t           maxRayRecursionDepth;
15868     uint32_t           maxShaderGroupStride;
15869     uint32_t           shaderGroupBaseAlignment;
15870     uint32_t           shaderGroupHandleCaptureReplaySize;
15871     uint32_t           maxRayDispatchInvocationCount;
15872     uint32_t           shaderGroupHandleAlignment;
15873     uint32_t           maxRayHitAttributeSize;
15874 } VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
15875 
15876 typedef struct VkStridedDeviceAddressRegionKHR {
15877     VkDeviceAddress    deviceAddress;
15878     VkDeviceSize       stride;
15879     VkDeviceSize       size;
15880 } VkStridedDeviceAddressRegionKHR;
15881 
15882 typedef struct VkTraceRaysIndirectCommandKHR {
15883     uint32_t    width;
15884     uint32_t    height;
15885     uint32_t    depth;
15886 } VkTraceRaysIndirectCommandKHR;
15887 
15888 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth);
15889 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
15890 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
15891 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
15892 typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
15893 typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
15894 
15895 #ifndef VK_NO_PROTOTYPES
15896 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
15897     VkCommandBuffer                             commandBuffer,
15898     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
15899     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
15900     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
15901     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
15902     uint32_t                                    width,
15903     uint32_t                                    height,
15904     uint32_t                                    depth);
15905 
15906 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
15907     VkDevice                                    device,
15908     VkDeferredOperationKHR                      deferredOperation,
15909     VkPipelineCache                             pipelineCache,
15910     uint32_t                                    createInfoCount,
15911     const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
15912     const VkAllocationCallbacks*                pAllocator,
15913     VkPipeline*                                 pPipelines);
15914 
15915 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
15916     VkDevice                                    device,
15917     VkPipeline                                  pipeline,
15918     uint32_t                                    firstGroup,
15919     uint32_t                                    groupCount,
15920     size_t                                      dataSize,
15921     void*                                       pData);
15922 
15923 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
15924     VkCommandBuffer                             commandBuffer,
15925     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
15926     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
15927     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
15928     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
15929     VkDeviceAddress                             indirectDeviceAddress);
15930 
15931 VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
15932     VkDevice                                    device,
15933     VkPipeline                                  pipeline,
15934     uint32_t                                    group,
15935     VkShaderGroupShaderKHR                      groupShader);
15936 
15937 VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
15938     VkCommandBuffer                             commandBuffer,
15939     uint32_t                                    pipelineStackSize);
15940 #endif
15941 
15942 
15943 #define VK_KHR_ray_query 1
15944 #define VK_KHR_RAY_QUERY_SPEC_VERSION     1
15945 #define VK_KHR_RAY_QUERY_EXTENSION_NAME   "VK_KHR_ray_query"
15946 typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
15947     VkStructureType    sType;
15948     void*              pNext;
15949     VkBool32           rayQuery;
15950 } VkPhysicalDeviceRayQueryFeaturesKHR;
15951 
15952 
15953 
15954 #define VK_EXT_mesh_shader 1
15955 #define VK_EXT_MESH_SHADER_SPEC_VERSION   1
15956 #define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
15957 typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
15958     VkStructureType    sType;
15959     void*              pNext;
15960     VkBool32           taskShader;
15961     VkBool32           meshShader;
15962     VkBool32           multiviewMeshShader;
15963     VkBool32           primitiveFragmentShadingRateMeshShader;
15964     VkBool32           meshShaderQueries;
15965 } VkPhysicalDeviceMeshShaderFeaturesEXT;
15966 
15967 typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
15968     VkStructureType    sType;
15969     void*              pNext;
15970     uint32_t           maxTaskWorkGroupTotalCount;
15971     uint32_t           maxTaskWorkGroupCount[3];
15972     uint32_t           maxTaskWorkGroupInvocations;
15973     uint32_t           maxTaskWorkGroupSize[3];
15974     uint32_t           maxTaskPayloadSize;
15975     uint32_t           maxTaskSharedMemorySize;
15976     uint32_t           maxTaskPayloadAndSharedMemorySize;
15977     uint32_t           maxMeshWorkGroupTotalCount;
15978     uint32_t           maxMeshWorkGroupCount[3];
15979     uint32_t           maxMeshWorkGroupInvocations;
15980     uint32_t           maxMeshWorkGroupSize[3];
15981     uint32_t           maxMeshSharedMemorySize;
15982     uint32_t           maxMeshPayloadAndSharedMemorySize;
15983     uint32_t           maxMeshOutputMemorySize;
15984     uint32_t           maxMeshPayloadAndOutputMemorySize;
15985     uint32_t           maxMeshOutputComponents;
15986     uint32_t           maxMeshOutputVertices;
15987     uint32_t           maxMeshOutputPrimitives;
15988     uint32_t           maxMeshOutputLayers;
15989     uint32_t           maxMeshMultiviewViewCount;
15990     uint32_t           meshOutputPerVertexGranularity;
15991     uint32_t           meshOutputPerPrimitiveGranularity;
15992     uint32_t           maxPreferredTaskWorkGroupInvocations;
15993     uint32_t           maxPreferredMeshWorkGroupInvocations;
15994     VkBool32           prefersLocalInvocationVertexOutput;
15995     VkBool32           prefersLocalInvocationPrimitiveOutput;
15996     VkBool32           prefersCompactVertexOutput;
15997     VkBool32           prefersCompactPrimitiveOutput;
15998 } VkPhysicalDeviceMeshShaderPropertiesEXT;
15999 
16000 typedef struct VkDrawMeshTasksIndirectCommandEXT {
16001     uint32_t    groupCountX;
16002     uint32_t    groupCountY;
16003     uint32_t    groupCountZ;
16004 } VkDrawMeshTasksIndirectCommandEXT;
16005 
16006 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
16007 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
16008 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
16009 
16010 #ifndef VK_NO_PROTOTYPES
16011 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
16012     VkCommandBuffer                             commandBuffer,
16013     uint32_t                                    groupCountX,
16014     uint32_t                                    groupCountY,
16015     uint32_t                                    groupCountZ);
16016 
16017 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
16018     VkCommandBuffer                             commandBuffer,
16019     VkBuffer                                    buffer,
16020     VkDeviceSize                                offset,
16021     uint32_t                                    drawCount,
16022     uint32_t                                    stride);
16023 
16024 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
16025     VkCommandBuffer                             commandBuffer,
16026     VkBuffer                                    buffer,
16027     VkDeviceSize                                offset,
16028     VkBuffer                                    countBuffer,
16029     VkDeviceSize                                countBufferOffset,
16030     uint32_t                                    maxDrawCount,
16031     uint32_t                                    stride);
16032 #endif
16033 
16034 #ifdef __cplusplus
16035 }
16036 #endif
16037 
16038 #endif
16039