xref: /aosp_15_r20/external/swiftshader/include/vulkan/vulkan_core.h (revision 03ce13f70fcc45d86ee91b7ee4cab1936a95046e)
1 #ifndef VULKAN_CORE_H_
2 #define VULKAN_CORE_H_ 1
3 
4 /*
5 ** Copyright 2015-2024 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 // VK_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
23 #define VK_VERSION_1_0 1
24 #include "vk_platform.h"
25 
26 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
27 
28 
29 #ifndef VK_USE_64_BIT_PTR_DEFINES
30     #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
31         #define VK_USE_64_BIT_PTR_DEFINES 1
32     #else
33         #define VK_USE_64_BIT_PTR_DEFINES 0
34     #endif
35 #endif
36 
37 
38 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
39     #if (VK_USE_64_BIT_PTR_DEFINES==1)
40         #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
41             #define VK_NULL_HANDLE nullptr
42         #else
43             #define VK_NULL_HANDLE ((void*)0)
44         #endif
45     #else
46         #define VK_NULL_HANDLE 0ULL
47     #endif
48 #endif
49 #ifndef VK_NULL_HANDLE
50     #define VK_NULL_HANDLE 0
51 #endif
52 
53 
54 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
55     #if (VK_USE_64_BIT_PTR_DEFINES==1)
56         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
57     #else
58         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
59     #endif
60 #endif
61 
62 #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
63     ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((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_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
67 
68 // Vulkan 1.0 version number
69 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
70 
71 // Version of this file
72 #define VK_HEADER_VERSION 286
73 
74 // Complete version of this file
75 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
76 
77 // DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
78 #define VK_MAKE_VERSION(major, minor, patch) \
79     ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
80 
81 // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
82 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U)
83 
84 // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
85 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
86 
87 // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
88 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
89 
90 #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
91 #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
92 #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
93 #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
94 typedef uint32_t VkBool32;
95 typedef uint64_t VkDeviceAddress;
96 typedef uint64_t VkDeviceSize;
97 typedef uint32_t VkFlags;
98 typedef uint32_t VkSampleMask;
99 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
100 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
101 VK_DEFINE_HANDLE(VkInstance)
102 VK_DEFINE_HANDLE(VkPhysicalDevice)
103 VK_DEFINE_HANDLE(VkDevice)
104 VK_DEFINE_HANDLE(VkQueue)
105 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
106 VK_DEFINE_HANDLE(VkCommandBuffer)
107 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
108 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
109 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
110 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
111 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
112 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
113 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
114 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
115 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
116 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
117 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
118 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
119 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
120 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
121 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
122 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
123 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
124 #define VK_ATTACHMENT_UNUSED              (~0U)
125 #define VK_FALSE                          0U
126 #define VK_LOD_CLAMP_NONE                 1000.0F
127 #define VK_QUEUE_FAMILY_IGNORED           (~0U)
128 #define VK_REMAINING_ARRAY_LAYERS         (~0U)
129 #define VK_REMAINING_MIP_LEVELS           (~0U)
130 #define VK_SUBPASS_EXTERNAL               (~0U)
131 #define VK_TRUE                           1U
132 #define VK_WHOLE_SIZE                     (~0ULL)
133 #define VK_MAX_MEMORY_TYPES               32U
134 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256U
135 #define VK_UUID_SIZE                      16U
136 #define VK_MAX_EXTENSION_NAME_SIZE        256U
137 #define VK_MAX_DESCRIPTION_SIZE           256U
138 #define VK_MAX_MEMORY_HEAPS               16U
139 
140 typedef enum VkResult {
141     VK_SUCCESS = 0,
142     VK_NOT_READY = 1,
143     VK_TIMEOUT = 2,
144     VK_EVENT_SET = 3,
145     VK_EVENT_RESET = 4,
146     VK_INCOMPLETE = 5,
147     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
148     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
149     VK_ERROR_INITIALIZATION_FAILED = -3,
150     VK_ERROR_DEVICE_LOST = -4,
151     VK_ERROR_MEMORY_MAP_FAILED = -5,
152     VK_ERROR_LAYER_NOT_PRESENT = -6,
153     VK_ERROR_EXTENSION_NOT_PRESENT = -7,
154     VK_ERROR_FEATURE_NOT_PRESENT = -8,
155     VK_ERROR_INCOMPATIBLE_DRIVER = -9,
156     VK_ERROR_TOO_MANY_OBJECTS = -10,
157     VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
158     VK_ERROR_FRAGMENTED_POOL = -12,
159     VK_ERROR_UNKNOWN = -13,
160     VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
161     VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
162     VK_ERROR_FRAGMENTATION = -1000161000,
163     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
164     VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
165     VK_ERROR_SURFACE_LOST_KHR = -1000000000,
166     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
167     VK_SUBOPTIMAL_KHR = 1000001003,
168     VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
169     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
170     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
171     VK_ERROR_INVALID_SHADER_NV = -1000012000,
172     VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000,
173     VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001,
174     VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002,
175     VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003,
176     VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004,
177     VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005,
178     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
179     VK_ERROR_NOT_PERMITTED_KHR = -1000174001,
180     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
181     VK_THREAD_IDLE_KHR = 1000268000,
182     VK_THREAD_DONE_KHR = 1000268001,
183     VK_OPERATION_DEFERRED_KHR = 1000268002,
184     VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
185     VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000,
186     VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
187     VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
188     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
189     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
190     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
191     VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED_KHR,
192     VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
193     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
194     VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
195     VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
196     VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = VK_INCOMPATIBLE_SHADER_BINARY_EXT,
197     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
198 } VkResult;
199 
200 typedef enum VkStructureType
201 {
202 	VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
203 	VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
204 	VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
205 	VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
206 	VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
207 	VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
208 	VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
209 	VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
210 	VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
211 	VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
212 	VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
213 	VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
214 	VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
215 	VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
216 	VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
217 	VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
218 	VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
219 	VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
220 	VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
221 	VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
222 	VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
223 	VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
224 	VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
225 	VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
226 	VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
227 	VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
228 	VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
229 	VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
230 	VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
231 	VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
232 	VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
233 	VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
234 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
235 	VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
236 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
237 	VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
238 	VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
239 	VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
240 	VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
241 	VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
242 	VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
243 	VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
244 	VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
245 	VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
246 	VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
247 	VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
248 	VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
249 	VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
250 	VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
251 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
252 	VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
253 	VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
254 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
255 	VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
256 	VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
257 	VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
258 	VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
259 	VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
260 	VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
261 	VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
262 	VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
263 	VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
264 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
265 	VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
266 	VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
267 	VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
268 	VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
269 	VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
270 	VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
271 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
272 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
273 	VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
274 	VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
275 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
276 	VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
277 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
278 	VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
279 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
280 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
281 	VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
282 	VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
283 	VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
284 	VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
285 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
286 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
287 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
288 	VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
289 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
290 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
291 	VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
292 	VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
293 	VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
294 	VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
295 	VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
296 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
297 	VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
298 	VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
299 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
300 	VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
301 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
302 	VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
303 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
304 	VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
305 	VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
306 	VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
307 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
308 	VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
309 	VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
310 	VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
311 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
312 	VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
313 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
314 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
315 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
316 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
317 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
318 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
319 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
320 	VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
321 	VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
322 	VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
323 	VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
324 	VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
325 	VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
326 	VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
327 	VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
328 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
329 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
330 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
331 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
332 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
333 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
334 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
335 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
336 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
337 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
338 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
339 	VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
340 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
341 	VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
342 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
343 	VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
344 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
345 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
346 	VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
347 	VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
348 	VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
349 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
350 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
351 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
352 	VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
353 	VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
354 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
355 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
356 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
357 	VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
358 	VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
359 	VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
360 	VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
361 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
362 	VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
363 	VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
364 	VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
365 	VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
366 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
367 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
368 	VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
369 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
370 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
371 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
372 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
373 	VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
374 	VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
375 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
376 	VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
377 	VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
378 	VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
379 	VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
380 	VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
381 	VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
382 	VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
383 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
384 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
385 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
386 	VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
387 	VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
388 	VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
389 	VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
390 	VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
391 	VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
392 	VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
393 	VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
394 	VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
395 	VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
396 	VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
397 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
398 	VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
399 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
400 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
401 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
402 	VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
403 	VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
404 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
405 	VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
406 	VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
407 	VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
408 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
409 	VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
410 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
411 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
412 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
413 	VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
414 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
415 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
416 	VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
417 	VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
418 	VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
419 	VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
420 	VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
421 	VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
422 	VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
423 	VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
424 	VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
425 	VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
426 	VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
427 	VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
428 	VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
429 	VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
430 	VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
431 	VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
432 	VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
433 	VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
434 	VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
435 	VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
436 	VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
437 	VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
438 	VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
439 	VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
440 	VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
441 	VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
442 	VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
443 	VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
444 	VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
445 	VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
446 	VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
447 	VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
448 	VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
449 	VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
450 	VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
451 	VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
452 	VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
453 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
454 	VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
455 	VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
456 	VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
457 	VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
458 	VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
459 	VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
460 	VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
461 	VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
462 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
463 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
464 	VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
465 	VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
466 	VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
467 	VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
468 	VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
469 	VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
470 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
471 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
472 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
473 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
474 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
475 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
476 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
477 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
478 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
479 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
480 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
481 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
482 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
483 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
484 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
485 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
486 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
487 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
488 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
489 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
490 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
491 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
492 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
493 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
494 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
495 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
496 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
497 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
498 	VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
499 	VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
500 	VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
501 	VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
502 	VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
503 	VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
504 	VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
505 	VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
506 	VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
507 	VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
508 	VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
509 	VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
510 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
511 	VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
512 	VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
513 	VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
514 	VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
515 	VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
516 	VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
517 	VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
518 	VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
519 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
520 	VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000,
521 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001,
522 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002,
523 	VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
524 	VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
525 	VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
526 	VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
527 	VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
528 	VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
529 	VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
530 	VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
531 	VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
532 	VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
533 	VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
534 	VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
535 	VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
536 	VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
537 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
538 	VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
539 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
540 	VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
541 	VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
542 	VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
543 	VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
544 	VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
545 	VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
546 	VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
547 	VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
548 	VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
549 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
550 	VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
551 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
552 	VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
553 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
554 	VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
555 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
556 	VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
557 	VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
558 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
559 	VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
560 	VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
561 	VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
562 	VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
563 	VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
564 	VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
565 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
566 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
567 	VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
568 	VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
569 	VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
570 	VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
571 	VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
572 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
573 	VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
574 	VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
575 	VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
576 	VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
577 	VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
578 	VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
579 	VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
580 	VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
581 	VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
582 	VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
583 	VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
584 	VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
585 	VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
586 	VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
587 	VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
588 	VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
589 	VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
590 	VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
591 	VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
592 	VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
593 	VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
594 #ifdef VK_ENABLE_BETA_EXTENSIONS
595 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
596 #endif
597 #ifdef VK_ENABLE_BETA_EXTENSIONS
598 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
599 #endif
600 #ifdef VK_ENABLE_BETA_EXTENSIONS
601 	VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
602 #endif
603 #ifdef VK_ENABLE_BETA_EXTENSIONS
604 	VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
605 #endif
606 #ifdef VK_ENABLE_BETA_EXTENSIONS
607 	VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
608 #endif
609 	VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
610 	VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
611 	VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
612 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
613 	VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
614 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
615 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
616 	VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
617 	VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
618 	VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
619 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
620 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
621 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
622 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
623 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
624 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
625 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
626 	VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
627 	VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
628 	VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
629 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
630 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
631 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
632 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
633 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
634 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
635 	VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
636 	VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
637 	VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
638 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
639 	VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
640 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
641 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
642 	VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
643 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
644 	VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
645 	VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
646 	VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
647 	VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
648 	VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
649 	VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
650 #ifdef VK_ENABLE_BETA_EXTENSIONS
651 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
652 #endif
653 #ifdef VK_ENABLE_BETA_EXTENSIONS
654 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
655 #endif
656 	VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
657 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
658 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
659 	VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
660 	VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
661 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
662 	VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
663 	VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
664 	VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
665 	VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
666 	VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
667 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
668 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
669 	VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
670 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
671 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
672 	VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
673 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
674 	VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
675 	VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
676 	VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
677 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
678 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
679 	VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
680 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
681 	VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
682 	VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
683 	VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
684 	VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
685 	VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
686 	VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
687 	VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000,
688 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000,
689 	VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001,
690 	VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
691 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
692 	VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
693 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
694 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
695 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
696 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
697 	VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
698 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
699 	VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
700 	VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
701 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
702 	VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
703 	VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
704 	VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
705 	VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
706 	VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
707 	VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
708 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
709 	VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
710 	VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
711 	VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
712 	VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
713 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
714 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
715 	VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
716 	VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
717 	VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
718 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
719 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
720 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
721 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
722 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
723 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = 1000232000,
724 	VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = 1000232001,
725 	VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = 1000232002,
726 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
727 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
728 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
729 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
730 	VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
731 	VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
732 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
733 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
734 	VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
735 	VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
736 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
737 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
738 	VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
739 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
740 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
741 	VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
742 	VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
743 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
744 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
745 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
746 	VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
747 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
748 	VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
749 	VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
750 	VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
751 	VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
752 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
753 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
754 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
755 	VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
756 	VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
757 	VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
758 	VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
759 	VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
760 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = 1000270000,
761 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = 1000270001,
762 	VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = 1000270002,
763 	VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = 1000270003,
764 	VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = 1000270004,
765 	VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = 1000270005,
766 	VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = 1000270006,
767 	VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = 1000270007,
768 	VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = 1000270008,
769 	VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = 1000270009,
770 	VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = 1000271000,
771 	VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = 1000271001,
772 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
773 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
774 	VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
775 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
776 	VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000,
777 	VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001,
778 	VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002,
779 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000,
780 	VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001,
781 	VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002,
782 	VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003,
783 	VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004,
784 	VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005,
785 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
786 	VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
787 	VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
788 	VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
789 	VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
790 	VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
791 	VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
792 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
793 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
794 	VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
795 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
796 	VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
797 	VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
798 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
799 	VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
800 	VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
801 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
802 	VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
803 	VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
804 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
805 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
806 	VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
807 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
808 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
809 	VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
810 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
811 	VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
812 	VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
813 	VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
814 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
815 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
816 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
817 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
818 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
819 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
820 	VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
821 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
822 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
823 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
824 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
825 	VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
826 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
827 	VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
828 	VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
829 	VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
830 	VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
831 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
832 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
833 	VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
834 	VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
835 	VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
836 	VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
837 	VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
838 	VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
839 	VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
840 	VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
841 	VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
842 	VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
843 	VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
844 	VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
845 	VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
846 	VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
847 	VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
848 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000,
849 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001,
850 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002,
851 	VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003,
852 	VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004,
853 	VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005,
854 	VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006,
855 	VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007,
856 	VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008,
857 	VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010,
858 	VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011,
859 	VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012,
860 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009,
861 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
862 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
863 	VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
864 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
865 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
866 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
867 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
868 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
869 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
870 	VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
871 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
872 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
873 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
874 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
875 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
876 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
877 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
878 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
879 	VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
880 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
881 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
882 	VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
883 	VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
884 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
885 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
886 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
887 	VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
888 	VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
889 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
890 	VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
891 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
892 	VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
893 	VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
894 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
895 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
896 	VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
897 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
898 	VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
899 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
900 	VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
901 	VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
902 	VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
903 	VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
904 	VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
905 	VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
906 	VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
907 	VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
908 	VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
909 	VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
910 	VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
911 	VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
912 	VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
913 	VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
914 	VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
915 	VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
916 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
917 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
918 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
919 	VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
920 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
921 	VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
922 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
923 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
924 	VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
925 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
926 	VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
927 	VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
928 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
929 	VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
930 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
931 	VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
932 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
933 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
934 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
935 	VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
936 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
937 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
938 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
939 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
940 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
941 	VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
942 	VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
943 	VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
944 	VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
945 	VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
946 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
947 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
948 	VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
949 	VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
950 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
951 #ifdef VK_ENABLE_BETA_EXTENSIONS
952 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
953 #endif
954 #ifdef VK_ENABLE_BETA_EXTENSIONS
955 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
956 #endif
957 #ifdef VK_ENABLE_BETA_EXTENSIONS
958 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
959 #endif
960 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
961 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
962 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
963 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
964 	VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
965 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
966 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
967 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = 1000416000,
968 	VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
969 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
970 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
971 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
972 	VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
973 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
974 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
975 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
976 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000,
977 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
978 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
979 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
980 	VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
981 	VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
982 	VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
983 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000,
984 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001,
985 	VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002,
986 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
987 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001,
988 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000,
989 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001,
990 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
991 	VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
992 	VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
993 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
994 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
995 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
996 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
997 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
998 	VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
999 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
1000 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
1001 	VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
1002 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
1003 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
1004 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1005 	VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1006 	VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
1007 	VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
1008 	VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
1009 	VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
1010 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
1011 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
1012 	VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
1013 	VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
1014 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
1015 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
1016 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
1017 	VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
1018 	VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
1019 	VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
1020 	VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
1021 	VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
1022 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
1023 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000,
1024 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
1025 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
1026 	VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
1027 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = 1000470000,
1028 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = 1000470001,
1029 	VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = 1000470003,
1030 	VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = 1000470004,
1031 	VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = 1000338002,
1032 	VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = 1000338003,
1033 	VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = 1000470005,
1034 	VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = 1000470006,
1035 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
1036 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
1037 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
1038 	VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
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_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
1044 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
1045 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
1046 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
1047 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
1048 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
1049 	VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
1050 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = 1000495000,
1051 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = 1000495001,
1052 	VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
1053 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
1054 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
1055 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
1056 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
1057 	VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
1058 	VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
1059 	VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
1060 	VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
1061 	VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
1062 	VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
1063 	VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
1064 	VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
1065 	VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
1066 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
1067 	VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
1068 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
1069 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
1070 	VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
1071 	VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
1072 	VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
1073 	VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
1074 	VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
1075 	VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
1076 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
1077 	VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
1078 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
1079 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
1080 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
1081 	VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
1082 	VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
1083 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
1084 	VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
1085 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
1086 	VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
1087 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
1088 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
1089 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = 1000525000,
1090 	VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = 1000190001,
1091 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = 1000190002,
1092 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = 1000528000,
1093 	VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
1094 	VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
1095 	VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
1096 	VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
1097 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
1098 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
1099 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = 1000265000,
1100 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = 1000259000,
1101 	VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = 1000259001,
1102 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = 1000259002,
1103 	VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
1104 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = 1000544000,
1105 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = 1000545000,
1106 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = 1000545001,
1107 	VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = 1000545002,
1108 	VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = 1000545003,
1109 	VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = 1000545004,
1110 	VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = 1000545005,
1111 	VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = 1000545006,
1112 	VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
1113 	VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
1114 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
1115 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
1116 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
1117 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
1118 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
1119 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
1120 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
1121 	VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
1122 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1123 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1124 	VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1125 	VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1126 	VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1127 	VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1128 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1129 	VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1130 	VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1131 	VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1132 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1133 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1134 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1135 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1136 	VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1137 	VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1138 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1139 	VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1140 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1141 	VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1142 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1143 	VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1144 	VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1145 	VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1146 	VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1147 	VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1148 	VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1149 	VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1150 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1151 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1152 	VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1153 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1154 	VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1155 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1156 	VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1157 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1158 	VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1159 	VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1160 	VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1161 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
1162 	VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
1163 	VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
1164 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1165 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1166 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
1167 	VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
1168 	VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
1169 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
1170 	VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
1171 	VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
1172 	VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
1173 	VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
1174 	VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
1175 	VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
1176 	VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
1177 	VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
1178 	VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
1179 	VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
1180 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
1181 	VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
1182 	VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
1183 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
1184 	VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
1185 	VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
1186 	VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
1187 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1188 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1189 	VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
1190 	VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
1191 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
1192 	VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
1193 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
1194 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
1195 	VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
1196 	VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
1197 	VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
1198 	VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
1199 	VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
1200 	VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
1201 	VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
1202 	VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
1203 	VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
1204 	VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
1205 	VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
1206 	VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
1207 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
1208 	VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
1209 	VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
1210 	VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
1211 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
1212 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
1213 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
1214 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
1215 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
1216 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
1217 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
1218 	VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
1219 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
1220 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
1221 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
1222 	VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
1223 	VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR,
1224 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR,
1225 	VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
1226 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1227 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
1228 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
1229 	VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
1230 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1231 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
1232 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
1233 	VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
1234 	VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
1235 	VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
1236 	VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
1237 	VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
1238 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
1239 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
1240 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
1241 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
1242 	VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1243 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
1244 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
1245 	VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1246 	VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1247 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
1248 	VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1249 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
1250 	VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
1251 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
1252 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
1253 	VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1254 	VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
1255 	VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
1256 	VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
1257 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR,
1258 	VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR,
1259 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR,
1260 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
1261 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR,
1262 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
1263 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
1264 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
1265 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
1266 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
1267 	VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
1268 	VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
1269 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
1270 	VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
1271 	VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
1272 	VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
1273 	VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
1274 	VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
1275 	VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
1276 	VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
1277 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
1278 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
1279 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
1280 	VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
1281 	VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
1282 	VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
1283 	VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
1284 	VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
1285 	VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
1286 	VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
1287 	VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
1288 	VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
1289 	VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
1290 	VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
1291 	VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR,
1292 	VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR,
1293 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1294 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1295 	VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1296 	VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
1297 	VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1298 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
1299 	VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
1300 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
1301 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
1302 	VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
1303 	VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
1304 	VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1305 	VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1306 } VkStructureType;
1307 
1308 typedef enum VkPipelineCacheHeaderVersion {
1309     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1310     VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
1311 } VkPipelineCacheHeaderVersion;
1312 
1313 typedef enum VkImageLayout {
1314     VK_IMAGE_LAYOUT_UNDEFINED = 0,
1315     VK_IMAGE_LAYOUT_GENERAL = 1,
1316     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
1317     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
1318     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
1319     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
1320     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
1321     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
1322     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
1323     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
1324     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
1325     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
1326     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
1327     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
1328     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
1329     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
1330     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
1331     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
1332     VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
1333     VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
1334     VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
1335     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
1336     VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
1337     VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
1338     VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = 1000232000,
1339     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
1340     VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
1341     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
1342     VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
1343     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
1344     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
1345     VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
1346     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
1347     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
1348     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
1349     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
1350     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
1351     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
1352     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
1353 } VkImageLayout;
1354 
1355 typedef enum VkObjectType {
1356     VK_OBJECT_TYPE_UNKNOWN = 0,
1357     VK_OBJECT_TYPE_INSTANCE = 1,
1358     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1359     VK_OBJECT_TYPE_DEVICE = 3,
1360     VK_OBJECT_TYPE_QUEUE = 4,
1361     VK_OBJECT_TYPE_SEMAPHORE = 5,
1362     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1363     VK_OBJECT_TYPE_FENCE = 7,
1364     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1365     VK_OBJECT_TYPE_BUFFER = 9,
1366     VK_OBJECT_TYPE_IMAGE = 10,
1367     VK_OBJECT_TYPE_EVENT = 11,
1368     VK_OBJECT_TYPE_QUERY_POOL = 12,
1369     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1370     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1371     VK_OBJECT_TYPE_SHADER_MODULE = 15,
1372     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1373     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1374     VK_OBJECT_TYPE_RENDER_PASS = 18,
1375     VK_OBJECT_TYPE_PIPELINE = 19,
1376     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1377     VK_OBJECT_TYPE_SAMPLER = 21,
1378     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1379     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1380     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1381     VK_OBJECT_TYPE_COMMAND_POOL = 25,
1382     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1383     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1384     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1385     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1386     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1387     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1388     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1389     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1390     VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
1391     VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
1392     VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
1393     VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
1394     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1395     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
1396     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1397     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1398     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1399     VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
1400     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
1401     VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
1402     VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
1403     VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
1404     VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
1405     VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
1406     VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
1407     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1408     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1409     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1410     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1411 } VkObjectType;
1412 
1413 typedef enum VkVendorId
1414 {
1415 	VK_VENDOR_ID_KHRONOS = 0x10000,
1416 	VK_VENDOR_ID_VIV = 0x10001,
1417 	VK_VENDOR_ID_VSI = 0x10002,
1418 	VK_VENDOR_ID_KAZAN = 0x10003,
1419 	VK_VENDOR_ID_CODEPLAY = 0x10004,
1420 	VK_VENDOR_ID_MESA = 0x10005,
1421 	VK_VENDOR_ID_POCL = 0x10006,
1422 	VK_VENDOR_ID_MOBILEYE = 0x10007,
1423 	VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1424 } VkVendorId;
1425 
1426 typedef enum VkSystemAllocationScope {
1427     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1428     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1429     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1430     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1431     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1432     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1433 } VkSystemAllocationScope;
1434 
1435 typedef enum VkInternalAllocationType {
1436     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1437     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1438 } VkInternalAllocationType;
1439 
1440 typedef enum VkFormat
1441 {
1442 	VK_FORMAT_UNDEFINED = 0,
1443 	VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1444 	VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1445 	VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1446 	VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1447 	VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1448 	VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1449 	VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1450 	VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1451 	VK_FORMAT_R8_UNORM = 9,
1452 	VK_FORMAT_R8_SNORM = 10,
1453 	VK_FORMAT_R8_USCALED = 11,
1454 	VK_FORMAT_R8_SSCALED = 12,
1455 	VK_FORMAT_R8_UINT = 13,
1456 	VK_FORMAT_R8_SINT = 14,
1457 	VK_FORMAT_R8_SRGB = 15,
1458 	VK_FORMAT_R8G8_UNORM = 16,
1459 	VK_FORMAT_R8G8_SNORM = 17,
1460 	VK_FORMAT_R8G8_USCALED = 18,
1461 	VK_FORMAT_R8G8_SSCALED = 19,
1462 	VK_FORMAT_R8G8_UINT = 20,
1463 	VK_FORMAT_R8G8_SINT = 21,
1464 	VK_FORMAT_R8G8_SRGB = 22,
1465 	VK_FORMAT_R8G8B8_UNORM = 23,
1466 	VK_FORMAT_R8G8B8_SNORM = 24,
1467 	VK_FORMAT_R8G8B8_USCALED = 25,
1468 	VK_FORMAT_R8G8B8_SSCALED = 26,
1469 	VK_FORMAT_R8G8B8_UINT = 27,
1470 	VK_FORMAT_R8G8B8_SINT = 28,
1471 	VK_FORMAT_R8G8B8_SRGB = 29,
1472 	VK_FORMAT_B8G8R8_UNORM = 30,
1473 	VK_FORMAT_B8G8R8_SNORM = 31,
1474 	VK_FORMAT_B8G8R8_USCALED = 32,
1475 	VK_FORMAT_B8G8R8_SSCALED = 33,
1476 	VK_FORMAT_B8G8R8_UINT = 34,
1477 	VK_FORMAT_B8G8R8_SINT = 35,
1478 	VK_FORMAT_B8G8R8_SRGB = 36,
1479 	VK_FORMAT_R8G8B8A8_UNORM = 37,
1480 	VK_FORMAT_R8G8B8A8_SNORM = 38,
1481 	VK_FORMAT_R8G8B8A8_USCALED = 39,
1482 	VK_FORMAT_R8G8B8A8_SSCALED = 40,
1483 	VK_FORMAT_R8G8B8A8_UINT = 41,
1484 	VK_FORMAT_R8G8B8A8_SINT = 42,
1485 	VK_FORMAT_R8G8B8A8_SRGB = 43,
1486 	VK_FORMAT_B8G8R8A8_UNORM = 44,
1487 	VK_FORMAT_B8G8R8A8_SNORM = 45,
1488 	VK_FORMAT_B8G8R8A8_USCALED = 46,
1489 	VK_FORMAT_B8G8R8A8_SSCALED = 47,
1490 	VK_FORMAT_B8G8R8A8_UINT = 48,
1491 	VK_FORMAT_B8G8R8A8_SINT = 49,
1492 	VK_FORMAT_B8G8R8A8_SRGB = 50,
1493 	VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1494 	VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1495 	VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1496 	VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1497 	VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1498 	VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1499 	VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1500 	VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1501 	VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1502 	VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1503 	VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1504 	VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1505 	VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1506 	VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1507 	VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1508 	VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1509 	VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1510 	VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1511 	VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1512 	VK_FORMAT_R16_UNORM = 70,
1513 	VK_FORMAT_R16_SNORM = 71,
1514 	VK_FORMAT_R16_USCALED = 72,
1515 	VK_FORMAT_R16_SSCALED = 73,
1516 	VK_FORMAT_R16_UINT = 74,
1517 	VK_FORMAT_R16_SINT = 75,
1518 	VK_FORMAT_R16_SFLOAT = 76,
1519 	VK_FORMAT_R16G16_UNORM = 77,
1520 	VK_FORMAT_R16G16_SNORM = 78,
1521 	VK_FORMAT_R16G16_USCALED = 79,
1522 	VK_FORMAT_R16G16_SSCALED = 80,
1523 	VK_FORMAT_R16G16_UINT = 81,
1524 	VK_FORMAT_R16G16_SINT = 82,
1525 	VK_FORMAT_R16G16_SFLOAT = 83,
1526 	VK_FORMAT_R16G16B16_UNORM = 84,
1527 	VK_FORMAT_R16G16B16_SNORM = 85,
1528 	VK_FORMAT_R16G16B16_USCALED = 86,
1529 	VK_FORMAT_R16G16B16_SSCALED = 87,
1530 	VK_FORMAT_R16G16B16_UINT = 88,
1531 	VK_FORMAT_R16G16B16_SINT = 89,
1532 	VK_FORMAT_R16G16B16_SFLOAT = 90,
1533 	VK_FORMAT_R16G16B16A16_UNORM = 91,
1534 	VK_FORMAT_R16G16B16A16_SNORM = 92,
1535 	VK_FORMAT_R16G16B16A16_USCALED = 93,
1536 	VK_FORMAT_R16G16B16A16_SSCALED = 94,
1537 	VK_FORMAT_R16G16B16A16_UINT = 95,
1538 	VK_FORMAT_R16G16B16A16_SINT = 96,
1539 	VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1540 	VK_FORMAT_R32_UINT = 98,
1541 	VK_FORMAT_R32_SINT = 99,
1542 	VK_FORMAT_R32_SFLOAT = 100,
1543 	VK_FORMAT_R32G32_UINT = 101,
1544 	VK_FORMAT_R32G32_SINT = 102,
1545 	VK_FORMAT_R32G32_SFLOAT = 103,
1546 	VK_FORMAT_R32G32B32_UINT = 104,
1547 	VK_FORMAT_R32G32B32_SINT = 105,
1548 	VK_FORMAT_R32G32B32_SFLOAT = 106,
1549 	VK_FORMAT_R32G32B32A32_UINT = 107,
1550 	VK_FORMAT_R32G32B32A32_SINT = 108,
1551 	VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1552 	VK_FORMAT_R64_UINT = 110,
1553 	VK_FORMAT_R64_SINT = 111,
1554 	VK_FORMAT_R64_SFLOAT = 112,
1555 	VK_FORMAT_R64G64_UINT = 113,
1556 	VK_FORMAT_R64G64_SINT = 114,
1557 	VK_FORMAT_R64G64_SFLOAT = 115,
1558 	VK_FORMAT_R64G64B64_UINT = 116,
1559 	VK_FORMAT_R64G64B64_SINT = 117,
1560 	VK_FORMAT_R64G64B64_SFLOAT = 118,
1561 	VK_FORMAT_R64G64B64A64_UINT = 119,
1562 	VK_FORMAT_R64G64B64A64_SINT = 120,
1563 	VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1564 	VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1565 	VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1566 	VK_FORMAT_D16_UNORM = 124,
1567 	VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1568 	VK_FORMAT_D32_SFLOAT = 126,
1569 	VK_FORMAT_S8_UINT = 127,
1570 	VK_FORMAT_D16_UNORM_S8_UINT = 128,
1571 	VK_FORMAT_D24_UNORM_S8_UINT = 129,
1572 	VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1573 	VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1574 	VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1575 	VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1576 	VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1577 	VK_FORMAT_BC2_UNORM_BLOCK = 135,
1578 	VK_FORMAT_BC2_SRGB_BLOCK = 136,
1579 	VK_FORMAT_BC3_UNORM_BLOCK = 137,
1580 	VK_FORMAT_BC3_SRGB_BLOCK = 138,
1581 	VK_FORMAT_BC4_UNORM_BLOCK = 139,
1582 	VK_FORMAT_BC4_SNORM_BLOCK = 140,
1583 	VK_FORMAT_BC5_UNORM_BLOCK = 141,
1584 	VK_FORMAT_BC5_SNORM_BLOCK = 142,
1585 	VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1586 	VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1587 	VK_FORMAT_BC7_UNORM_BLOCK = 145,
1588 	VK_FORMAT_BC7_SRGB_BLOCK = 146,
1589 	VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1590 	VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1591 	VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1592 	VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1593 	VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1594 	VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1595 	VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1596 	VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1597 	VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1598 	VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1599 	VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1600 	VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1601 	VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1602 	VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1603 	VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1604 	VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1605 	VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1606 	VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1607 	VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1608 	VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1609 	VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1610 	VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1611 	VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1612 	VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1613 	VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1614 	VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1615 	VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1616 	VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1617 	VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1618 	VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1619 	VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1620 	VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1621 	VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1622 	VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1623 	VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1624 	VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1625 	VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1626 	VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
1627 	VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1628 	VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1629 	VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1630 	VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1631 	VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1632 	VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1633 	VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1634 	VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1635 	VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1636 	VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1637 	VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1638 	VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1639 	VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1640 	VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1641 	VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1642 	VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1643 	VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1644 	VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1645 	VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1646 	VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1647 	VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1648 	VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1649 	VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1650 	VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1651 	VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1652 	VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1653 	VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1654 	VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1655 	VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1656 	VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1657 	VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1658 	VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1659 	VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1660 	VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1661 	VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
1662 	VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
1663 	VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
1664 	VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
1665 	VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
1666 	VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
1667 	VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
1668 	VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
1669 	VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
1670 	VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
1671 	VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
1672 	VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
1673 	VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
1674 	VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
1675 	VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
1676 	VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
1677 	VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
1678 	VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
1679 	VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
1680 	VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
1681 	VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1682 	VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1683 	VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1684 	VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1685 	VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1686 	VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1687 	VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1688 	VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
1689 	VK_FORMAT_R16G16_SFIXED5_NV = 1000464000,
1690 	VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = 1000470000,
1691 	VK_FORMAT_A8_UNORM_KHR = 1000470001,
1692 	VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
1693 	VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
1694 	VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
1695 	VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
1696 	VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
1697 	VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
1698 	VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
1699 	VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
1700 	VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
1701 	VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
1702 	VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
1703 	VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
1704 	VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
1705 	VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
1706 	VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
1707 	VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
1708 	VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
1709 	VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
1710 	VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
1711 	VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
1712 	VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
1713 	VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
1714 	VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
1715 	VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
1716 	VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
1717 	VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
1718 	VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
1719 	VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
1720 	VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
1721 	VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
1722 	VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
1723 	VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
1724 	VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
1725 	VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
1726 	VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
1727 	VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
1728 	VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
1729 	VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
1730 	VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
1731 	VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
1732 	VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
1733 	VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
1734 	VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
1735 	VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
1736 	VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
1737 	VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
1738 	VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
1739 	VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
1740 	VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
1741 	VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
1742 	VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
1743 	VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
1744 	VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
1745 	VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
1746 	VK_FORMAT_R16G16_S10_5_NV = VK_FORMAT_R16G16_SFIXED5_NV,
1747 	VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
1748 } VkFormat;
1749 
1750 typedef enum VkImageTiling {
1751     VK_IMAGE_TILING_OPTIMAL = 0,
1752     VK_IMAGE_TILING_LINEAR = 1,
1753     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
1754     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
1755 } VkImageTiling;
1756 
1757 typedef enum VkImageType {
1758     VK_IMAGE_TYPE_1D = 0,
1759     VK_IMAGE_TYPE_2D = 1,
1760     VK_IMAGE_TYPE_3D = 2,
1761     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
1762 } VkImageType;
1763 
1764 typedef enum VkPhysicalDeviceType {
1765     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
1766     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
1767     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
1768     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
1769     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
1770     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
1771 } VkPhysicalDeviceType;
1772 
1773 typedef enum VkQueryType {
1774     VK_QUERY_TYPE_OCCLUSION = 0,
1775     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
1776     VK_QUERY_TYPE_TIMESTAMP = 2,
1777     VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
1778     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
1779     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
1780     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
1781     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
1782     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
1783     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
1784     VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
1785     VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
1786     VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
1787     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
1788     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
1789     VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
1790     VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
1791     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
1792 } VkQueryType;
1793 
1794 typedef enum VkSharingMode {
1795     VK_SHARING_MODE_EXCLUSIVE = 0,
1796     VK_SHARING_MODE_CONCURRENT = 1,
1797     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
1798 } VkSharingMode;
1799 
1800 typedef enum VkComponentSwizzle {
1801     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
1802     VK_COMPONENT_SWIZZLE_ZERO = 1,
1803     VK_COMPONENT_SWIZZLE_ONE = 2,
1804     VK_COMPONENT_SWIZZLE_R = 3,
1805     VK_COMPONENT_SWIZZLE_G = 4,
1806     VK_COMPONENT_SWIZZLE_B = 5,
1807     VK_COMPONENT_SWIZZLE_A = 6,
1808     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
1809 } VkComponentSwizzle;
1810 
1811 typedef enum VkImageViewType {
1812     VK_IMAGE_VIEW_TYPE_1D = 0,
1813     VK_IMAGE_VIEW_TYPE_2D = 1,
1814     VK_IMAGE_VIEW_TYPE_3D = 2,
1815     VK_IMAGE_VIEW_TYPE_CUBE = 3,
1816     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
1817     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
1818     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
1819     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
1820 } VkImageViewType;
1821 
1822 typedef enum VkBlendFactor {
1823     VK_BLEND_FACTOR_ZERO = 0,
1824     VK_BLEND_FACTOR_ONE = 1,
1825     VK_BLEND_FACTOR_SRC_COLOR = 2,
1826     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
1827     VK_BLEND_FACTOR_DST_COLOR = 4,
1828     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
1829     VK_BLEND_FACTOR_SRC_ALPHA = 6,
1830     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
1831     VK_BLEND_FACTOR_DST_ALPHA = 8,
1832     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
1833     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
1834     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
1835     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
1836     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
1837     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
1838     VK_BLEND_FACTOR_SRC1_COLOR = 15,
1839     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
1840     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
1841     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
1842     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
1843 } VkBlendFactor;
1844 
1845 typedef enum VkBlendOp {
1846     VK_BLEND_OP_ADD = 0,
1847     VK_BLEND_OP_SUBTRACT = 1,
1848     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
1849     VK_BLEND_OP_MIN = 3,
1850     VK_BLEND_OP_MAX = 4,
1851     VK_BLEND_OP_ZERO_EXT = 1000148000,
1852     VK_BLEND_OP_SRC_EXT = 1000148001,
1853     VK_BLEND_OP_DST_EXT = 1000148002,
1854     VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
1855     VK_BLEND_OP_DST_OVER_EXT = 1000148004,
1856     VK_BLEND_OP_SRC_IN_EXT = 1000148005,
1857     VK_BLEND_OP_DST_IN_EXT = 1000148006,
1858     VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
1859     VK_BLEND_OP_DST_OUT_EXT = 1000148008,
1860     VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
1861     VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
1862     VK_BLEND_OP_XOR_EXT = 1000148011,
1863     VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
1864     VK_BLEND_OP_SCREEN_EXT = 1000148013,
1865     VK_BLEND_OP_OVERLAY_EXT = 1000148014,
1866     VK_BLEND_OP_DARKEN_EXT = 1000148015,
1867     VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
1868     VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
1869     VK_BLEND_OP_COLORBURN_EXT = 1000148018,
1870     VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
1871     VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
1872     VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
1873     VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
1874     VK_BLEND_OP_INVERT_EXT = 1000148023,
1875     VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
1876     VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
1877     VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
1878     VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
1879     VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
1880     VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
1881     VK_BLEND_OP_HARDMIX_EXT = 1000148030,
1882     VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
1883     VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
1884     VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
1885     VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
1886     VK_BLEND_OP_PLUS_EXT = 1000148035,
1887     VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
1888     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
1889     VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
1890     VK_BLEND_OP_MINUS_EXT = 1000148039,
1891     VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
1892     VK_BLEND_OP_CONTRAST_EXT = 1000148041,
1893     VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
1894     VK_BLEND_OP_RED_EXT = 1000148043,
1895     VK_BLEND_OP_GREEN_EXT = 1000148044,
1896     VK_BLEND_OP_BLUE_EXT = 1000148045,
1897     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
1898 } VkBlendOp;
1899 
1900 typedef enum VkCompareOp {
1901     VK_COMPARE_OP_NEVER = 0,
1902     VK_COMPARE_OP_LESS = 1,
1903     VK_COMPARE_OP_EQUAL = 2,
1904     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
1905     VK_COMPARE_OP_GREATER = 4,
1906     VK_COMPARE_OP_NOT_EQUAL = 5,
1907     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
1908     VK_COMPARE_OP_ALWAYS = 7,
1909     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
1910 } VkCompareOp;
1911 
1912 typedef enum VkDynamicState {
1913     VK_DYNAMIC_STATE_VIEWPORT = 0,
1914     VK_DYNAMIC_STATE_SCISSOR = 1,
1915     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
1916     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
1917     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
1918     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
1919     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
1920     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
1921     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
1922     VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
1923     VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
1924     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
1925     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
1926     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
1927     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
1928     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
1929     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
1930     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
1931     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
1932     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
1933     VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
1934     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
1935     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
1936     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
1937     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1938     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
1939     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
1940     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
1941     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
1942     VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
1943     VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1944     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1945     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
1946     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
1947     VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
1948     VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
1949     VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
1950     VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
1951     VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
1952     VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
1953     VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
1954     VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
1955     VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
1956     VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
1957     VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
1958     VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
1959     VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
1960     VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
1961     VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
1962     VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
1963     VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
1964     VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
1965     VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
1966     VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
1967     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
1968     VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
1969     VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
1970     VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
1971     VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
1972     VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
1973     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
1974     VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
1975     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
1976     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
1977     VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
1978     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
1979     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
1980     VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
1981     VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
1982     VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
1983     VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
1984     VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = 1000259000,
1985     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE_KHR,
1986     VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
1987     VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
1988     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
1989     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
1990     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
1991     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
1992     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
1993     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
1994     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
1995     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
1996     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
1997     VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
1998     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
1999     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2000     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2001     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
2002 } VkDynamicState;
2003 
2004 typedef enum VkFrontFace {
2005     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
2006     VK_FRONT_FACE_CLOCKWISE = 1,
2007     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
2008 } VkFrontFace;
2009 
2010 typedef enum VkVertexInputRate {
2011     VK_VERTEX_INPUT_RATE_VERTEX = 0,
2012     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
2013     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
2014 } VkVertexInputRate;
2015 
2016 typedef enum VkPrimitiveTopology {
2017     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
2018     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
2019     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
2020     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
2021     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
2022     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
2023     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
2024     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
2025     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
2026     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
2027     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
2028     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
2029 } VkPrimitiveTopology;
2030 
2031 typedef enum VkPolygonMode {
2032     VK_POLYGON_MODE_FILL = 0,
2033     VK_POLYGON_MODE_LINE = 1,
2034     VK_POLYGON_MODE_POINT = 2,
2035     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
2036     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
2037 } VkPolygonMode;
2038 
2039 typedef enum VkStencilOp {
2040     VK_STENCIL_OP_KEEP = 0,
2041     VK_STENCIL_OP_ZERO = 1,
2042     VK_STENCIL_OP_REPLACE = 2,
2043     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
2044     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
2045     VK_STENCIL_OP_INVERT = 5,
2046     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
2047     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
2048     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
2049 } VkStencilOp;
2050 
2051 typedef enum VkLogicOp {
2052     VK_LOGIC_OP_CLEAR = 0,
2053     VK_LOGIC_OP_AND = 1,
2054     VK_LOGIC_OP_AND_REVERSE = 2,
2055     VK_LOGIC_OP_COPY = 3,
2056     VK_LOGIC_OP_AND_INVERTED = 4,
2057     VK_LOGIC_OP_NO_OP = 5,
2058     VK_LOGIC_OP_XOR = 6,
2059     VK_LOGIC_OP_OR = 7,
2060     VK_LOGIC_OP_NOR = 8,
2061     VK_LOGIC_OP_EQUIVALENT = 9,
2062     VK_LOGIC_OP_INVERT = 10,
2063     VK_LOGIC_OP_OR_REVERSE = 11,
2064     VK_LOGIC_OP_COPY_INVERTED = 12,
2065     VK_LOGIC_OP_OR_INVERTED = 13,
2066     VK_LOGIC_OP_NAND = 14,
2067     VK_LOGIC_OP_SET = 15,
2068     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
2069 } VkLogicOp;
2070 
2071 typedef enum VkBorderColor {
2072     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2073     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2074     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2075     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2076     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2077     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2078     VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2079     VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2080     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2081 } VkBorderColor;
2082 
2083 typedef enum VkFilter {
2084     VK_FILTER_NEAREST = 0,
2085     VK_FILTER_LINEAR = 1,
2086     VK_FILTER_CUBIC_EXT = 1000015000,
2087     VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
2088     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2089 } VkFilter;
2090 
2091 typedef enum VkSamplerAddressMode {
2092     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2093     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2094     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2095     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2096     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2097     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2098     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2099 } VkSamplerAddressMode;
2100 
2101 typedef enum VkSamplerMipmapMode {
2102     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2103     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2104     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2105 } VkSamplerMipmapMode;
2106 
2107 typedef enum VkDescriptorType {
2108     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2109     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2110     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2111     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2112     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2113     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2114     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2115     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2116     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2117     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2118     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2119     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2120     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2121     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2122     VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
2123     VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
2124     VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
2125     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2126     VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2127     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2128 } VkDescriptorType;
2129 
2130 typedef enum VkAttachmentLoadOp {
2131     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2132     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2133     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2134     VK_ATTACHMENT_LOAD_OP_NONE_KHR = 1000400000,
2135     VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE_KHR,
2136     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2137 } VkAttachmentLoadOp;
2138 
2139 typedef enum VkAttachmentStoreOp {
2140     VK_ATTACHMENT_STORE_OP_STORE = 0,
2141     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2142     VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2143     VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2144     VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2145     VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2146     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2147 } VkAttachmentStoreOp;
2148 
2149 typedef enum VkPipelineBindPoint {
2150     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2151     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2152 #ifdef VK_ENABLE_BETA_EXTENSIONS
2153     VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
2154 #endif
2155     VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2156     VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2157     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2158     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2159 } VkPipelineBindPoint;
2160 
2161 typedef enum VkCommandBufferLevel {
2162     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2163     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2164     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2165 } VkCommandBufferLevel;
2166 
2167 typedef enum VkIndexType {
2168     VK_INDEX_TYPE_UINT16 = 0,
2169     VK_INDEX_TYPE_UINT32 = 1,
2170     VK_INDEX_TYPE_NONE_KHR = 1000165000,
2171     VK_INDEX_TYPE_UINT8_KHR = 1000265000,
2172     VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2173     VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8_KHR,
2174     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2175 } VkIndexType;
2176 
2177 typedef enum VkSubpassContents {
2178     VK_SUBPASS_CONTENTS_INLINE = 0,
2179     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2180     VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = 1000451000,
2181     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2182 } VkSubpassContents;
2183 
2184 typedef enum VkAccessFlagBits {
2185     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2186     VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2187     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2188     VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2189     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2190     VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2191     VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2192     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2193     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2194     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2195     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2196     VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2197     VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2198     VK_ACCESS_HOST_READ_BIT = 0x00002000,
2199     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2200     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2201     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
2202     VK_ACCESS_NONE = 0,
2203     VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2204     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2205     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
2206     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
2207     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2208     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
2209     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
2210     VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2211     VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
2212     VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
2213     VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
2214     VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
2215     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
2216     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
2217     VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
2218     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2219 } VkAccessFlagBits;
2220 typedef VkFlags VkAccessFlags;
2221 
2222 typedef enum VkImageAspectFlagBits {
2223     VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2224     VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2225     VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2226     VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
2227     VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2228     VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2229     VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2230     VK_IMAGE_ASPECT_NONE = 0,
2231     VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2232     VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2233     VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2234     VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
2235     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
2236     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
2237     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
2238     VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
2239     VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2240 } VkImageAspectFlagBits;
2241 typedef VkFlags VkImageAspectFlags;
2242 
2243 typedef enum VkFormatFeatureFlagBits {
2244     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
2245     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
2246     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
2247     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
2248     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
2249     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
2250     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
2251     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
2252     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
2253     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
2254     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
2255     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
2256     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
2257     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2258     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2259     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2260     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2261     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2262     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2263     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2264     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2265     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2266     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
2267     VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
2268     VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
2269     VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
2270     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
2271     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
2272     VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
2273     VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
2274     VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
2275     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2276     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2277     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2278     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2279     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2280     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2281     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2282     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2283     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,
2284     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
2285     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2286     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2287 } VkFormatFeatureFlagBits;
2288 typedef VkFlags VkFormatFeatureFlags;
2289 
2290 typedef enum VkImageCreateFlagBits {
2291     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2292     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2293     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2294     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
2295     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
2296     VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2297     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
2298     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
2299     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2300     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
2301     VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
2302     VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
2303     VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
2304     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
2305     VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
2306     VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
2307     VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
2308     VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
2309     VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000,
2310     VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
2311     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2312     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2313     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2314     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2315     VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
2316     VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
2317     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2318 } VkImageCreateFlagBits;
2319 typedef VkFlags VkImageCreateFlags;
2320 
2321 typedef enum VkSampleCountFlagBits {
2322     VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2323     VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2324     VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2325     VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2326     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2327     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2328     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2329     VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2330 } VkSampleCountFlagBits;
2331 typedef VkFlags VkSampleCountFlags;
2332 
2333 typedef enum VkImageUsageFlagBits {
2334     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2335     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
2336     VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
2337     VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
2338     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
2339     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
2340     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
2341     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
2342     VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
2343     VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
2344     VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
2345     VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
2346     VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
2347     VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = 0x00400000,
2348     VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
2349     VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
2350     VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
2351     VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
2352     VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
2353     VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
2354     VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
2355     VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2356     VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2357 } VkImageUsageFlagBits;
2358 typedef VkFlags VkImageUsageFlags;
2359 
2360 typedef enum VkInstanceCreateFlagBits {
2361     VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
2362     VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2363 } VkInstanceCreateFlagBits;
2364 typedef VkFlags VkInstanceCreateFlags;
2365 
2366 typedef enum VkMemoryHeapFlagBits {
2367     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
2368     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2369     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2370     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2371 } VkMemoryHeapFlagBits;
2372 typedef VkFlags VkMemoryHeapFlags;
2373 
2374 typedef enum VkMemoryPropertyFlagBits {
2375     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2376     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2377     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2378     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2379     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
2380     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
2381     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
2382     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
2383     VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
2384     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2385 } VkMemoryPropertyFlagBits;
2386 typedef VkFlags VkMemoryPropertyFlags;
2387 
2388 typedef enum VkQueueFlagBits {
2389     VK_QUEUE_GRAPHICS_BIT = 0x00000001,
2390     VK_QUEUE_COMPUTE_BIT = 0x00000002,
2391     VK_QUEUE_TRANSFER_BIT = 0x00000004,
2392     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
2393     VK_QUEUE_PROTECTED_BIT = 0x00000010,
2394     VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
2395     VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
2396     VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
2397     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2398 } VkQueueFlagBits;
2399 typedef VkFlags VkQueueFlags;
2400 typedef VkFlags VkDeviceCreateFlags;
2401 
2402 typedef enum VkDeviceQueueCreateFlagBits {
2403     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2404     VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2405 } VkDeviceQueueCreateFlagBits;
2406 typedef VkFlags VkDeviceQueueCreateFlags;
2407 
2408 typedef enum VkPipelineStageFlagBits {
2409     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
2410     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
2411     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
2412     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
2413     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
2414     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
2415     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
2416     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
2417     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
2418     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
2419     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
2420     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
2421     VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
2422     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2423     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
2424     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
2425     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
2426     VK_PIPELINE_STAGE_NONE = 0,
2427     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
2428     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
2429     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
2430     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
2431     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2432     VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
2433     VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
2434     VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
2435     VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
2436     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2437     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2438     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2439     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2440     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
2441     VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
2442     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2443 } VkPipelineStageFlagBits;
2444 typedef VkFlags VkPipelineStageFlags;
2445 
2446 typedef enum VkMemoryMapFlagBits {
2447     VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
2448     VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2449 } VkMemoryMapFlagBits;
2450 typedef VkFlags VkMemoryMapFlags;
2451 
2452 typedef enum VkSparseMemoryBindFlagBits {
2453     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2454     VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2455 } VkSparseMemoryBindFlagBits;
2456 typedef VkFlags VkSparseMemoryBindFlags;
2457 
2458 typedef enum VkSparseImageFormatFlagBits {
2459     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
2460     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
2461     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
2462     VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2463 } VkSparseImageFormatFlagBits;
2464 typedef VkFlags VkSparseImageFormatFlags;
2465 
2466 typedef enum VkFenceCreateFlagBits {
2467     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2468     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2469 } VkFenceCreateFlagBits;
2470 typedef VkFlags VkFenceCreateFlags;
2471 typedef VkFlags VkSemaphoreCreateFlags;
2472 
2473 typedef enum VkEventCreateFlagBits {
2474     VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
2475     VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
2476     VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2477 } VkEventCreateFlagBits;
2478 typedef VkFlags VkEventCreateFlags;
2479 
2480 typedef enum VkQueryPipelineStatisticFlagBits {
2481     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
2482     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
2483     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
2484     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
2485     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
2486     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
2487     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
2488     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
2489     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
2490     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
2491     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
2492     VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
2493     VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
2494     VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
2495     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2496 } VkQueryPipelineStatisticFlagBits;
2497 typedef VkFlags VkQueryPipelineStatisticFlags;
2498 typedef VkFlags VkQueryPoolCreateFlags;
2499 
2500 typedef enum VkQueryResultFlagBits {
2501     VK_QUERY_RESULT_64_BIT = 0x00000001,
2502     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
2503     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
2504     VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
2505     VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
2506     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2507 } VkQueryResultFlagBits;
2508 typedef VkFlags VkQueryResultFlags;
2509 
2510 typedef enum VkBufferCreateFlagBits {
2511     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2512     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2513     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2514     VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
2515     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
2516     VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
2517     VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
2518     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2519     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2520     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2521 } VkBufferCreateFlagBits;
2522 typedef VkFlags VkBufferCreateFlags;
2523 
2524 typedef enum VkBufferUsageFlagBits {
2525     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2526     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
2527     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
2528     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
2529     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
2530     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
2531     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
2532     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
2533     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
2534     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
2535     VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
2536     VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
2537     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2538     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
2539     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
2540 #ifdef VK_ENABLE_BETA_EXTENSIONS
2541     VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
2542 #endif
2543     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
2544     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
2545     VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
2546     VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
2547     VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
2548     VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
2549     VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
2550     VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
2551     VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
2552     VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
2553     VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
2554     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2555     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2556     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2557 } VkBufferUsageFlagBits;
2558 typedef VkFlags VkBufferUsageFlags;
2559 typedef VkFlags VkBufferViewCreateFlags;
2560 
2561 typedef enum VkImageViewCreateFlagBits {
2562     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
2563     VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
2564     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
2565     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2566 } VkImageViewCreateFlagBits;
2567 typedef VkFlags VkImageViewCreateFlags;
2568 typedef VkFlags VkShaderModuleCreateFlags;
2569 
2570 typedef enum VkPipelineCacheCreateFlagBits {
2571     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
2572     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
2573     VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2574 } VkPipelineCacheCreateFlagBits;
2575 typedef VkFlags VkPipelineCacheCreateFlags;
2576 
2577 typedef enum VkColorComponentFlagBits {
2578     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2579     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2580     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2581     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
2582     VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2583 } VkColorComponentFlagBits;
2584 typedef VkFlags VkColorComponentFlags;
2585 
2586 typedef enum VkPipelineCreateFlagBits {
2587     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2588     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2589     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
2590     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2591     VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
2592     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
2593     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
2594     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
2595     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
2596     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
2597     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
2598     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
2599     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
2600     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
2601     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
2602     VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
2603     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
2604     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
2605     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
2606     VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
2607     VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
2608     VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
2609     VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
2610     VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
2611     VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
2612     VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
2613     VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
2614     VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
2615 #ifdef VK_ENABLE_BETA_EXTENSIONS
2616     VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
2617 #endif
2618     VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000,
2619     VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000,
2620     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
2621     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2622     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
2623     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
2624     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
2625     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
2626     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
2627     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2628 } VkPipelineCreateFlagBits;
2629 typedef VkFlags VkPipelineCreateFlags;
2630 
2631 typedef enum VkPipelineShaderStageCreateFlagBits {
2632     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
2633     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
2634     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
2635     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
2636     VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2637 } VkPipelineShaderStageCreateFlagBits;
2638 typedef VkFlags VkPipelineShaderStageCreateFlags;
2639 
2640 typedef enum VkShaderStageFlagBits {
2641     VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
2642     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2643     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
2644     VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2645     VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2646     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
2647     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
2648     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2649     VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
2650     VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
2651     VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
2652     VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
2653     VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
2654     VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
2655     VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
2656     VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
2657     VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
2658     VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
2659     VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
2660     VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
2661     VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
2662     VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
2663     VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
2664     VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
2665     VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
2666     VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
2667     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2668 } VkShaderStageFlagBits;
2669 
2670 typedef enum VkCullModeFlagBits {
2671     VK_CULL_MODE_NONE = 0,
2672     VK_CULL_MODE_FRONT_BIT = 0x00000001,
2673     VK_CULL_MODE_BACK_BIT = 0x00000002,
2674     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2675     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2676 } VkCullModeFlagBits;
2677 typedef VkFlags VkCullModeFlags;
2678 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
2679 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
2680 typedef VkFlags VkPipelineTessellationStateCreateFlags;
2681 typedef VkFlags VkPipelineViewportStateCreateFlags;
2682 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
2683 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
2684 
2685 typedef enum VkPipelineDepthStencilStateCreateFlagBits {
2686     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
2687     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
2688     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,
2689     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,
2690     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2691 } VkPipelineDepthStencilStateCreateFlagBits;
2692 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
2693 
2694 typedef enum VkPipelineColorBlendStateCreateFlagBits {
2695     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
2696     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
2697     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2698 } VkPipelineColorBlendStateCreateFlagBits;
2699 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
2700 typedef VkFlags VkPipelineDynamicStateCreateFlags;
2701 
2702 typedef enum VkPipelineLayoutCreateFlagBits {
2703     VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
2704     VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2705 } VkPipelineLayoutCreateFlagBits;
2706 typedef VkFlags VkPipelineLayoutCreateFlags;
2707 typedef VkFlags VkShaderStageFlags;
2708 
2709 typedef enum VkSamplerCreateFlagBits {
2710     VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
2711     VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
2712     VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
2713     VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
2714     VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
2715     VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2716 } VkSamplerCreateFlagBits;
2717 typedef VkFlags VkSamplerCreateFlags;
2718 
2719 typedef enum VkDescriptorPoolCreateFlagBits {
2720     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
2721     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
2722     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
2723     VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
2724     VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
2725     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
2726     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
2727     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2728 } VkDescriptorPoolCreateFlagBits;
2729 typedef VkFlags VkDescriptorPoolCreateFlags;
2730 typedef VkFlags VkDescriptorPoolResetFlags;
2731 
2732 typedef enum VkDescriptorSetLayoutCreateFlagBits {
2733     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
2734     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
2735     VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
2736     VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
2737     VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
2738     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
2739     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
2740     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
2741     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
2742     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2743 } VkDescriptorSetLayoutCreateFlagBits;
2744 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
2745 
2746 typedef enum VkAttachmentDescriptionFlagBits {
2747     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
2748     VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2749 } VkAttachmentDescriptionFlagBits;
2750 typedef VkFlags VkAttachmentDescriptionFlags;
2751 
2752 typedef enum VkDependencyFlagBits {
2753     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
2754     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2755     VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
2756     VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
2757     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
2758     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
2759     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2760 } VkDependencyFlagBits;
2761 typedef VkFlags VkDependencyFlags;
2762 
2763 typedef enum VkFramebufferCreateFlagBits {
2764     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
2765     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
2766     VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2767 } VkFramebufferCreateFlagBits;
2768 typedef VkFlags VkFramebufferCreateFlags;
2769 
2770 typedef enum VkRenderPassCreateFlagBits {
2771     VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
2772     VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2773 } VkRenderPassCreateFlagBits;
2774 typedef VkFlags VkRenderPassCreateFlags;
2775 
2776 typedef enum VkSubpassDescriptionFlagBits {
2777     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2778     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
2779     VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
2780     VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
2781     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
2782     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
2783     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
2784     VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
2785     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
2786     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
2787     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
2788     VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2789 } VkSubpassDescriptionFlagBits;
2790 typedef VkFlags VkSubpassDescriptionFlags;
2791 
2792 typedef enum VkCommandPoolCreateFlagBits {
2793     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
2794     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
2795     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
2796     VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2797 } VkCommandPoolCreateFlagBits;
2798 typedef VkFlags VkCommandPoolCreateFlags;
2799 
2800 typedef enum VkCommandPoolResetFlagBits {
2801     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2802     VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2803 } VkCommandPoolResetFlagBits;
2804 typedef VkFlags VkCommandPoolResetFlags;
2805 
2806 typedef enum VkCommandBufferUsageFlagBits {
2807     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2808     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2809     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
2810     VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2811 } VkCommandBufferUsageFlagBits;
2812 typedef VkFlags VkCommandBufferUsageFlags;
2813 
2814 typedef enum VkQueryControlFlagBits {
2815     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
2816     VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2817 } VkQueryControlFlagBits;
2818 typedef VkFlags VkQueryControlFlags;
2819 
2820 typedef enum VkCommandBufferResetFlagBits {
2821     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2822     VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2823 } VkCommandBufferResetFlagBits;
2824 typedef VkFlags VkCommandBufferResetFlags;
2825 
2826 typedef enum VkStencilFaceFlagBits {
2827     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
2828     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
2829     VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
2830     VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
2831     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2832 } VkStencilFaceFlagBits;
2833 typedef VkFlags VkStencilFaceFlags;
2834 typedef struct VkExtent2D {
2835     uint32_t    width;
2836     uint32_t    height;
2837 } VkExtent2D;
2838 
2839 typedef struct VkExtent3D {
2840     uint32_t    width;
2841     uint32_t    height;
2842     uint32_t    depth;
2843 } VkExtent3D;
2844 
2845 typedef struct VkOffset2D {
2846     int32_t    x;
2847     int32_t    y;
2848 } VkOffset2D;
2849 
2850 typedef struct VkOffset3D {
2851     int32_t    x;
2852     int32_t    y;
2853     int32_t    z;
2854 } VkOffset3D;
2855 
2856 typedef struct VkRect2D {
2857     VkOffset2D    offset;
2858     VkExtent2D    extent;
2859 } VkRect2D;
2860 
2861 typedef struct VkBaseInStructure {
2862     VkStructureType                    sType;
2863     const struct VkBaseInStructure*    pNext;
2864 } VkBaseInStructure;
2865 
2866 typedef struct VkBaseOutStructure {
2867     VkStructureType               sType;
2868     struct VkBaseOutStructure*    pNext;
2869 } VkBaseOutStructure;
2870 
2871 typedef struct VkBufferMemoryBarrier {
2872     VkStructureType    sType;
2873     const void*        pNext;
2874     VkAccessFlags      srcAccessMask;
2875     VkAccessFlags      dstAccessMask;
2876     uint32_t           srcQueueFamilyIndex;
2877     uint32_t           dstQueueFamilyIndex;
2878     VkBuffer           buffer;
2879     VkDeviceSize       offset;
2880     VkDeviceSize       size;
2881 } VkBufferMemoryBarrier;
2882 
2883 typedef struct VkDispatchIndirectCommand {
2884     uint32_t    x;
2885     uint32_t    y;
2886     uint32_t    z;
2887 } VkDispatchIndirectCommand;
2888 
2889 typedef struct VkDrawIndexedIndirectCommand {
2890     uint32_t    indexCount;
2891     uint32_t    instanceCount;
2892     uint32_t    firstIndex;
2893     int32_t     vertexOffset;
2894     uint32_t    firstInstance;
2895 } VkDrawIndexedIndirectCommand;
2896 
2897 typedef struct VkDrawIndirectCommand {
2898     uint32_t    vertexCount;
2899     uint32_t    instanceCount;
2900     uint32_t    firstVertex;
2901     uint32_t    firstInstance;
2902 } VkDrawIndirectCommand;
2903 
2904 typedef struct VkImageSubresourceRange {
2905     VkImageAspectFlags    aspectMask;
2906     uint32_t              baseMipLevel;
2907     uint32_t              levelCount;
2908     uint32_t              baseArrayLayer;
2909     uint32_t              layerCount;
2910 } VkImageSubresourceRange;
2911 
2912 typedef struct VkImageMemoryBarrier {
2913     VkStructureType            sType;
2914     const void*                pNext;
2915     VkAccessFlags              srcAccessMask;
2916     VkAccessFlags              dstAccessMask;
2917     VkImageLayout              oldLayout;
2918     VkImageLayout              newLayout;
2919     uint32_t                   srcQueueFamilyIndex;
2920     uint32_t                   dstQueueFamilyIndex;
2921     VkImage                    image;
2922     VkImageSubresourceRange    subresourceRange;
2923 } VkImageMemoryBarrier;
2924 
2925 typedef struct VkMemoryBarrier {
2926     VkStructureType    sType;
2927     const void*        pNext;
2928     VkAccessFlags      srcAccessMask;
2929     VkAccessFlags      dstAccessMask;
2930 } VkMemoryBarrier;
2931 
2932 typedef struct VkPipelineCacheHeaderVersionOne {
2933     uint32_t                        headerSize;
2934     VkPipelineCacheHeaderVersion    headerVersion;
2935     uint32_t                        vendorID;
2936     uint32_t                        deviceID;
2937     uint8_t                         pipelineCacheUUID[VK_UUID_SIZE];
2938 } VkPipelineCacheHeaderVersionOne;
2939 
2940 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
2941     void*                                       pUserData,
2942     size_t                                      size,
2943     size_t                                      alignment,
2944     VkSystemAllocationScope                     allocationScope);
2945 
2946 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
2947     void*                                       pUserData,
2948     void*                                       pMemory);
2949 
2950 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
2951     void*                                       pUserData,
2952     size_t                                      size,
2953     VkInternalAllocationType                    allocationType,
2954     VkSystemAllocationScope                     allocationScope);
2955 
2956 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
2957     void*                                       pUserData,
2958     size_t                                      size,
2959     VkInternalAllocationType                    allocationType,
2960     VkSystemAllocationScope                     allocationScope);
2961 
2962 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
2963     void*                                       pUserData,
2964     void*                                       pOriginal,
2965     size_t                                      size,
2966     size_t                                      alignment,
2967     VkSystemAllocationScope                     allocationScope);
2968 
2969 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
2970 typedef struct VkAllocationCallbacks {
2971     void*                                   pUserData;
2972     PFN_vkAllocationFunction                pfnAllocation;
2973     PFN_vkReallocationFunction              pfnReallocation;
2974     PFN_vkFreeFunction                      pfnFree;
2975     PFN_vkInternalAllocationNotification    pfnInternalAllocation;
2976     PFN_vkInternalFreeNotification          pfnInternalFree;
2977 } VkAllocationCallbacks;
2978 
2979 typedef struct VkApplicationInfo {
2980     VkStructureType    sType;
2981     const void*        pNext;
2982     const char*        pApplicationName;
2983     uint32_t           applicationVersion;
2984     const char*        pEngineName;
2985     uint32_t           engineVersion;
2986     uint32_t           apiVersion;
2987 } VkApplicationInfo;
2988 
2989 typedef struct VkFormatProperties {
2990     VkFormatFeatureFlags    linearTilingFeatures;
2991     VkFormatFeatureFlags    optimalTilingFeatures;
2992     VkFormatFeatureFlags    bufferFeatures;
2993 } VkFormatProperties;
2994 
2995 typedef struct VkImageFormatProperties {
2996     VkExtent3D            maxExtent;
2997     uint32_t              maxMipLevels;
2998     uint32_t              maxArrayLayers;
2999     VkSampleCountFlags    sampleCounts;
3000     VkDeviceSize          maxResourceSize;
3001 } VkImageFormatProperties;
3002 
3003 typedef struct VkInstanceCreateInfo {
3004     VkStructureType             sType;
3005     const void*                 pNext;
3006     VkInstanceCreateFlags       flags;
3007     const VkApplicationInfo*    pApplicationInfo;
3008     uint32_t                    enabledLayerCount;
3009     const char* const*          ppEnabledLayerNames;
3010     uint32_t                    enabledExtensionCount;
3011     const char* const*          ppEnabledExtensionNames;
3012 } VkInstanceCreateInfo;
3013 
3014 typedef struct VkMemoryHeap {
3015     VkDeviceSize         size;
3016     VkMemoryHeapFlags    flags;
3017 } VkMemoryHeap;
3018 
3019 typedef struct VkMemoryType {
3020     VkMemoryPropertyFlags    propertyFlags;
3021     uint32_t                 heapIndex;
3022 } VkMemoryType;
3023 
3024 typedef struct VkPhysicalDeviceFeatures {
3025     VkBool32    robustBufferAccess;
3026     VkBool32    fullDrawIndexUint32;
3027     VkBool32    imageCubeArray;
3028     VkBool32    independentBlend;
3029     VkBool32    geometryShader;
3030     VkBool32    tessellationShader;
3031     VkBool32    sampleRateShading;
3032     VkBool32    dualSrcBlend;
3033     VkBool32    logicOp;
3034     VkBool32    multiDrawIndirect;
3035     VkBool32    drawIndirectFirstInstance;
3036     VkBool32    depthClamp;
3037     VkBool32    depthBiasClamp;
3038     VkBool32    fillModeNonSolid;
3039     VkBool32    depthBounds;
3040     VkBool32    wideLines;
3041     VkBool32    largePoints;
3042     VkBool32    alphaToOne;
3043     VkBool32    multiViewport;
3044     VkBool32    samplerAnisotropy;
3045     VkBool32    textureCompressionETC2;
3046     VkBool32    textureCompressionASTC_LDR;
3047     VkBool32    textureCompressionBC;
3048     VkBool32    occlusionQueryPrecise;
3049     VkBool32    pipelineStatisticsQuery;
3050     VkBool32    vertexPipelineStoresAndAtomics;
3051     VkBool32    fragmentStoresAndAtomics;
3052     VkBool32    shaderTessellationAndGeometryPointSize;
3053     VkBool32    shaderImageGatherExtended;
3054     VkBool32    shaderStorageImageExtendedFormats;
3055     VkBool32    shaderStorageImageMultisample;
3056     VkBool32    shaderStorageImageReadWithoutFormat;
3057     VkBool32    shaderStorageImageWriteWithoutFormat;
3058     VkBool32    shaderUniformBufferArrayDynamicIndexing;
3059     VkBool32    shaderSampledImageArrayDynamicIndexing;
3060     VkBool32    shaderStorageBufferArrayDynamicIndexing;
3061     VkBool32    shaderStorageImageArrayDynamicIndexing;
3062     VkBool32    shaderClipDistance;
3063     VkBool32    shaderCullDistance;
3064     VkBool32    shaderFloat64;
3065     VkBool32    shaderInt64;
3066     VkBool32    shaderInt16;
3067     VkBool32    shaderResourceResidency;
3068     VkBool32    shaderResourceMinLod;
3069     VkBool32    sparseBinding;
3070     VkBool32    sparseResidencyBuffer;
3071     VkBool32    sparseResidencyImage2D;
3072     VkBool32    sparseResidencyImage3D;
3073     VkBool32    sparseResidency2Samples;
3074     VkBool32    sparseResidency4Samples;
3075     VkBool32    sparseResidency8Samples;
3076     VkBool32    sparseResidency16Samples;
3077     VkBool32    sparseResidencyAliased;
3078     VkBool32    variableMultisampleRate;
3079     VkBool32    inheritedQueries;
3080 } VkPhysicalDeviceFeatures;
3081 
3082 typedef struct VkPhysicalDeviceLimits {
3083     uint32_t              maxImageDimension1D;
3084     uint32_t              maxImageDimension2D;
3085     uint32_t              maxImageDimension3D;
3086     uint32_t              maxImageDimensionCube;
3087     uint32_t              maxImageArrayLayers;
3088     uint32_t              maxTexelBufferElements;
3089     uint32_t              maxUniformBufferRange;
3090     uint32_t              maxStorageBufferRange;
3091     uint32_t              maxPushConstantsSize;
3092     uint32_t              maxMemoryAllocationCount;
3093     uint32_t              maxSamplerAllocationCount;
3094     VkDeviceSize          bufferImageGranularity;
3095     VkDeviceSize          sparseAddressSpaceSize;
3096     uint32_t              maxBoundDescriptorSets;
3097     uint32_t              maxPerStageDescriptorSamplers;
3098     uint32_t              maxPerStageDescriptorUniformBuffers;
3099     uint32_t              maxPerStageDescriptorStorageBuffers;
3100     uint32_t              maxPerStageDescriptorSampledImages;
3101     uint32_t              maxPerStageDescriptorStorageImages;
3102     uint32_t              maxPerStageDescriptorInputAttachments;
3103     uint32_t              maxPerStageResources;
3104     uint32_t              maxDescriptorSetSamplers;
3105     uint32_t              maxDescriptorSetUniformBuffers;
3106     uint32_t              maxDescriptorSetUniformBuffersDynamic;
3107     uint32_t              maxDescriptorSetStorageBuffers;
3108     uint32_t              maxDescriptorSetStorageBuffersDynamic;
3109     uint32_t              maxDescriptorSetSampledImages;
3110     uint32_t              maxDescriptorSetStorageImages;
3111     uint32_t              maxDescriptorSetInputAttachments;
3112     uint32_t              maxVertexInputAttributes;
3113     uint32_t              maxVertexInputBindings;
3114     uint32_t              maxVertexInputAttributeOffset;
3115     uint32_t              maxVertexInputBindingStride;
3116     uint32_t              maxVertexOutputComponents;
3117     uint32_t              maxTessellationGenerationLevel;
3118     uint32_t              maxTessellationPatchSize;
3119     uint32_t              maxTessellationControlPerVertexInputComponents;
3120     uint32_t              maxTessellationControlPerVertexOutputComponents;
3121     uint32_t              maxTessellationControlPerPatchOutputComponents;
3122     uint32_t              maxTessellationControlTotalOutputComponents;
3123     uint32_t              maxTessellationEvaluationInputComponents;
3124     uint32_t              maxTessellationEvaluationOutputComponents;
3125     uint32_t              maxGeometryShaderInvocations;
3126     uint32_t              maxGeometryInputComponents;
3127     uint32_t              maxGeometryOutputComponents;
3128     uint32_t              maxGeometryOutputVertices;
3129     uint32_t              maxGeometryTotalOutputComponents;
3130     uint32_t              maxFragmentInputComponents;
3131     uint32_t              maxFragmentOutputAttachments;
3132     uint32_t              maxFragmentDualSrcAttachments;
3133     uint32_t              maxFragmentCombinedOutputResources;
3134     uint32_t              maxComputeSharedMemorySize;
3135     uint32_t              maxComputeWorkGroupCount[3];
3136     uint32_t              maxComputeWorkGroupInvocations;
3137     uint32_t              maxComputeWorkGroupSize[3];
3138     uint32_t              subPixelPrecisionBits;
3139     uint32_t              subTexelPrecisionBits;
3140     uint32_t              mipmapPrecisionBits;
3141     uint32_t              maxDrawIndexedIndexValue;
3142     uint32_t              maxDrawIndirectCount;
3143     float                 maxSamplerLodBias;
3144     float                 maxSamplerAnisotropy;
3145     uint32_t              maxViewports;
3146     uint32_t              maxViewportDimensions[2];
3147     float                 viewportBoundsRange[2];
3148     uint32_t              viewportSubPixelBits;
3149     size_t                minMemoryMapAlignment;
3150     VkDeviceSize          minTexelBufferOffsetAlignment;
3151     VkDeviceSize          minUniformBufferOffsetAlignment;
3152     VkDeviceSize          minStorageBufferOffsetAlignment;
3153     int32_t               minTexelOffset;
3154     uint32_t              maxTexelOffset;
3155     int32_t               minTexelGatherOffset;
3156     uint32_t              maxTexelGatherOffset;
3157     float                 minInterpolationOffset;
3158     float                 maxInterpolationOffset;
3159     uint32_t              subPixelInterpolationOffsetBits;
3160     uint32_t              maxFramebufferWidth;
3161     uint32_t              maxFramebufferHeight;
3162     uint32_t              maxFramebufferLayers;
3163     VkSampleCountFlags    framebufferColorSampleCounts;
3164     VkSampleCountFlags    framebufferDepthSampleCounts;
3165     VkSampleCountFlags    framebufferStencilSampleCounts;
3166     VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
3167     uint32_t              maxColorAttachments;
3168     VkSampleCountFlags    sampledImageColorSampleCounts;
3169     VkSampleCountFlags    sampledImageIntegerSampleCounts;
3170     VkSampleCountFlags    sampledImageDepthSampleCounts;
3171     VkSampleCountFlags    sampledImageStencilSampleCounts;
3172     VkSampleCountFlags    storageImageSampleCounts;
3173     uint32_t              maxSampleMaskWords;
3174     VkBool32              timestampComputeAndGraphics;
3175     float                 timestampPeriod;
3176     uint32_t              maxClipDistances;
3177     uint32_t              maxCullDistances;
3178     uint32_t              maxCombinedClipAndCullDistances;
3179     uint32_t              discreteQueuePriorities;
3180     float                 pointSizeRange[2];
3181     float                 lineWidthRange[2];
3182     float                 pointSizeGranularity;
3183     float                 lineWidthGranularity;
3184     VkBool32              strictLines;
3185     VkBool32              standardSampleLocations;
3186     VkDeviceSize          optimalBufferCopyOffsetAlignment;
3187     VkDeviceSize          optimalBufferCopyRowPitchAlignment;
3188     VkDeviceSize          nonCoherentAtomSize;
3189 } VkPhysicalDeviceLimits;
3190 
3191 typedef struct VkPhysicalDeviceMemoryProperties {
3192     uint32_t        memoryTypeCount;
3193     VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
3194     uint32_t        memoryHeapCount;
3195     VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
3196 } VkPhysicalDeviceMemoryProperties;
3197 
3198 typedef struct VkPhysicalDeviceSparseProperties {
3199     VkBool32    residencyStandard2DBlockShape;
3200     VkBool32    residencyStandard2DMultisampleBlockShape;
3201     VkBool32    residencyStandard3DBlockShape;
3202     VkBool32    residencyAlignedMipSize;
3203     VkBool32    residencyNonResidentStrict;
3204 } VkPhysicalDeviceSparseProperties;
3205 
3206 typedef struct VkPhysicalDeviceProperties {
3207     uint32_t                            apiVersion;
3208     uint32_t                            driverVersion;
3209     uint32_t                            vendorID;
3210     uint32_t                            deviceID;
3211     VkPhysicalDeviceType                deviceType;
3212     char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3213     uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
3214     VkPhysicalDeviceLimits              limits;
3215     VkPhysicalDeviceSparseProperties    sparseProperties;
3216 } VkPhysicalDeviceProperties;
3217 
3218 typedef struct VkQueueFamilyProperties {
3219     VkQueueFlags    queueFlags;
3220     uint32_t        queueCount;
3221     uint32_t        timestampValidBits;
3222     VkExtent3D      minImageTransferGranularity;
3223 } VkQueueFamilyProperties;
3224 
3225 typedef struct VkDeviceQueueCreateInfo {
3226     VkStructureType             sType;
3227     const void*                 pNext;
3228     VkDeviceQueueCreateFlags    flags;
3229     uint32_t                    queueFamilyIndex;
3230     uint32_t                    queueCount;
3231     const float*                pQueuePriorities;
3232 } VkDeviceQueueCreateInfo;
3233 
3234 typedef struct VkDeviceCreateInfo {
3235     VkStructureType                    sType;
3236     const void*                        pNext;
3237     VkDeviceCreateFlags                flags;
3238     uint32_t                           queueCreateInfoCount;
3239     const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
3240     uint32_t                           enabledLayerCount;
3241     const char* const*                 ppEnabledLayerNames;
3242     uint32_t                           enabledExtensionCount;
3243     const char* const*                 ppEnabledExtensionNames;
3244     const VkPhysicalDeviceFeatures*    pEnabledFeatures;
3245 } VkDeviceCreateInfo;
3246 
3247 typedef struct VkExtensionProperties {
3248     char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
3249     uint32_t    specVersion;
3250 } VkExtensionProperties;
3251 
3252 typedef struct VkLayerProperties {
3253     char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
3254     uint32_t    specVersion;
3255     uint32_t    implementationVersion;
3256     char        description[VK_MAX_DESCRIPTION_SIZE];
3257 } VkLayerProperties;
3258 
3259 typedef struct VkSubmitInfo {
3260     VkStructureType                sType;
3261     const void*                    pNext;
3262     uint32_t                       waitSemaphoreCount;
3263     const VkSemaphore*             pWaitSemaphores;
3264     const VkPipelineStageFlags*    pWaitDstStageMask;
3265     uint32_t                       commandBufferCount;
3266     const VkCommandBuffer*         pCommandBuffers;
3267     uint32_t                       signalSemaphoreCount;
3268     const VkSemaphore*             pSignalSemaphores;
3269 } VkSubmitInfo;
3270 
3271 typedef struct VkMappedMemoryRange {
3272     VkStructureType    sType;
3273     const void*        pNext;
3274     VkDeviceMemory     memory;
3275     VkDeviceSize       offset;
3276     VkDeviceSize       size;
3277 } VkMappedMemoryRange;
3278 
3279 typedef struct VkMemoryAllocateInfo {
3280     VkStructureType    sType;
3281     const void*        pNext;
3282     VkDeviceSize       allocationSize;
3283     uint32_t           memoryTypeIndex;
3284 } VkMemoryAllocateInfo;
3285 
3286 typedef struct VkMemoryRequirements {
3287     VkDeviceSize    size;
3288     VkDeviceSize    alignment;
3289     uint32_t        memoryTypeBits;
3290 } VkMemoryRequirements;
3291 
3292 typedef struct VkSparseMemoryBind {
3293     VkDeviceSize               resourceOffset;
3294     VkDeviceSize               size;
3295     VkDeviceMemory             memory;
3296     VkDeviceSize               memoryOffset;
3297     VkSparseMemoryBindFlags    flags;
3298 } VkSparseMemoryBind;
3299 
3300 typedef struct VkSparseBufferMemoryBindInfo {
3301     VkBuffer                     buffer;
3302     uint32_t                     bindCount;
3303     const VkSparseMemoryBind*    pBinds;
3304 } VkSparseBufferMemoryBindInfo;
3305 
3306 typedef struct VkSparseImageOpaqueMemoryBindInfo {
3307     VkImage                      image;
3308     uint32_t                     bindCount;
3309     const VkSparseMemoryBind*    pBinds;
3310 } VkSparseImageOpaqueMemoryBindInfo;
3311 
3312 typedef struct VkImageSubresource {
3313     VkImageAspectFlags    aspectMask;
3314     uint32_t              mipLevel;
3315     uint32_t              arrayLayer;
3316 } VkImageSubresource;
3317 
3318 typedef struct VkSparseImageMemoryBind {
3319     VkImageSubresource         subresource;
3320     VkOffset3D                 offset;
3321     VkExtent3D                 extent;
3322     VkDeviceMemory             memory;
3323     VkDeviceSize               memoryOffset;
3324     VkSparseMemoryBindFlags    flags;
3325 } VkSparseImageMemoryBind;
3326 
3327 typedef struct VkSparseImageMemoryBindInfo {
3328     VkImage                           image;
3329     uint32_t                          bindCount;
3330     const VkSparseImageMemoryBind*    pBinds;
3331 } VkSparseImageMemoryBindInfo;
3332 
3333 typedef struct VkBindSparseInfo {
3334     VkStructureType                             sType;
3335     const void*                                 pNext;
3336     uint32_t                                    waitSemaphoreCount;
3337     const VkSemaphore*                          pWaitSemaphores;
3338     uint32_t                                    bufferBindCount;
3339     const VkSparseBufferMemoryBindInfo*         pBufferBinds;
3340     uint32_t                                    imageOpaqueBindCount;
3341     const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
3342     uint32_t                                    imageBindCount;
3343     const VkSparseImageMemoryBindInfo*          pImageBinds;
3344     uint32_t                                    signalSemaphoreCount;
3345     const VkSemaphore*                          pSignalSemaphores;
3346 } VkBindSparseInfo;
3347 
3348 typedef struct VkSparseImageFormatProperties {
3349     VkImageAspectFlags          aspectMask;
3350     VkExtent3D                  imageGranularity;
3351     VkSparseImageFormatFlags    flags;
3352 } VkSparseImageFormatProperties;
3353 
3354 typedef struct VkSparseImageMemoryRequirements {
3355     VkSparseImageFormatProperties    formatProperties;
3356     uint32_t                         imageMipTailFirstLod;
3357     VkDeviceSize                     imageMipTailSize;
3358     VkDeviceSize                     imageMipTailOffset;
3359     VkDeviceSize                     imageMipTailStride;
3360 } VkSparseImageMemoryRequirements;
3361 
3362 typedef struct VkFenceCreateInfo {
3363     VkStructureType       sType;
3364     const void*           pNext;
3365     VkFenceCreateFlags    flags;
3366 } VkFenceCreateInfo;
3367 
3368 typedef struct VkSemaphoreCreateInfo {
3369     VkStructureType           sType;
3370     const void*               pNext;
3371     VkSemaphoreCreateFlags    flags;
3372 } VkSemaphoreCreateInfo;
3373 
3374 typedef struct VkEventCreateInfo {
3375     VkStructureType       sType;
3376     const void*           pNext;
3377     VkEventCreateFlags    flags;
3378 } VkEventCreateInfo;
3379 
3380 typedef struct VkQueryPoolCreateInfo {
3381     VkStructureType                  sType;
3382     const void*                      pNext;
3383     VkQueryPoolCreateFlags           flags;
3384     VkQueryType                      queryType;
3385     uint32_t                         queryCount;
3386     VkQueryPipelineStatisticFlags    pipelineStatistics;
3387 } VkQueryPoolCreateInfo;
3388 
3389 typedef struct VkBufferCreateInfo {
3390     VkStructureType        sType;
3391     const void*            pNext;
3392     VkBufferCreateFlags    flags;
3393     VkDeviceSize           size;
3394     VkBufferUsageFlags     usage;
3395     VkSharingMode          sharingMode;
3396     uint32_t               queueFamilyIndexCount;
3397     const uint32_t*        pQueueFamilyIndices;
3398 } VkBufferCreateInfo;
3399 
3400 typedef struct VkBufferViewCreateInfo {
3401     VkStructureType            sType;
3402     const void*                pNext;
3403     VkBufferViewCreateFlags    flags;
3404     VkBuffer                   buffer;
3405     VkFormat                   format;
3406     VkDeviceSize               offset;
3407     VkDeviceSize               range;
3408 } VkBufferViewCreateInfo;
3409 
3410 typedef struct VkImageCreateInfo {
3411     VkStructureType          sType;
3412     const void*              pNext;
3413     VkImageCreateFlags       flags;
3414     VkImageType              imageType;
3415     VkFormat                 format;
3416     VkExtent3D               extent;
3417     uint32_t                 mipLevels;
3418     uint32_t                 arrayLayers;
3419     VkSampleCountFlagBits    samples;
3420     VkImageTiling            tiling;
3421     VkImageUsageFlags        usage;
3422     VkSharingMode            sharingMode;
3423     uint32_t                 queueFamilyIndexCount;
3424     const uint32_t*          pQueueFamilyIndices;
3425     VkImageLayout            initialLayout;
3426 } VkImageCreateInfo;
3427 
3428 typedef struct VkSubresourceLayout {
3429     VkDeviceSize    offset;
3430     VkDeviceSize    size;
3431     VkDeviceSize    rowPitch;
3432     VkDeviceSize    arrayPitch;
3433     VkDeviceSize    depthPitch;
3434 } VkSubresourceLayout;
3435 
3436 typedef struct VkComponentMapping {
3437     VkComponentSwizzle    r;
3438     VkComponentSwizzle    g;
3439     VkComponentSwizzle    b;
3440     VkComponentSwizzle    a;
3441 } VkComponentMapping;
3442 
3443 typedef struct VkImageViewCreateInfo {
3444     VkStructureType            sType;
3445     const void*                pNext;
3446     VkImageViewCreateFlags     flags;
3447     VkImage                    image;
3448     VkImageViewType            viewType;
3449     VkFormat                   format;
3450     VkComponentMapping         components;
3451     VkImageSubresourceRange    subresourceRange;
3452 } VkImageViewCreateInfo;
3453 
3454 typedef struct VkShaderModuleCreateInfo {
3455     VkStructureType              sType;
3456     const void*                  pNext;
3457     VkShaderModuleCreateFlags    flags;
3458     size_t                       codeSize;
3459     const uint32_t*              pCode;
3460 } VkShaderModuleCreateInfo;
3461 
3462 typedef struct VkPipelineCacheCreateInfo {
3463     VkStructureType               sType;
3464     const void*                   pNext;
3465     VkPipelineCacheCreateFlags    flags;
3466     size_t                        initialDataSize;
3467     const void*                   pInitialData;
3468 } VkPipelineCacheCreateInfo;
3469 
3470 typedef struct VkSpecializationMapEntry {
3471     uint32_t    constantID;
3472     uint32_t    offset;
3473     size_t      size;
3474 } VkSpecializationMapEntry;
3475 
3476 typedef struct VkSpecializationInfo {
3477     uint32_t                           mapEntryCount;
3478     const VkSpecializationMapEntry*    pMapEntries;
3479     size_t                             dataSize;
3480     const void*                        pData;
3481 } VkSpecializationInfo;
3482 
3483 typedef struct VkPipelineShaderStageCreateInfo {
3484     VkStructureType                     sType;
3485     const void*                         pNext;
3486     VkPipelineShaderStageCreateFlags    flags;
3487     VkShaderStageFlagBits               stage;
3488     VkShaderModule                      module;
3489     const char*                         pName;
3490     const VkSpecializationInfo*         pSpecializationInfo;
3491 } VkPipelineShaderStageCreateInfo;
3492 
3493 typedef struct VkComputePipelineCreateInfo {
3494     VkStructureType                    sType;
3495     const void*                        pNext;
3496     VkPipelineCreateFlags              flags;
3497     VkPipelineShaderStageCreateInfo    stage;
3498     VkPipelineLayout                   layout;
3499     VkPipeline                         basePipelineHandle;
3500     int32_t                            basePipelineIndex;
3501 } VkComputePipelineCreateInfo;
3502 
3503 typedef struct VkVertexInputBindingDescription {
3504     uint32_t             binding;
3505     uint32_t             stride;
3506     VkVertexInputRate    inputRate;
3507 } VkVertexInputBindingDescription;
3508 
3509 typedef struct VkVertexInputAttributeDescription {
3510     uint32_t    location;
3511     uint32_t    binding;
3512     VkFormat    format;
3513     uint32_t    offset;
3514 } VkVertexInputAttributeDescription;
3515 
3516 typedef struct VkPipelineVertexInputStateCreateInfo {
3517     VkStructureType                             sType;
3518     const void*                                 pNext;
3519     VkPipelineVertexInputStateCreateFlags       flags;
3520     uint32_t                                    vertexBindingDescriptionCount;
3521     const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
3522     uint32_t                                    vertexAttributeDescriptionCount;
3523     const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
3524 } VkPipelineVertexInputStateCreateInfo;
3525 
3526 typedef struct VkPipelineInputAssemblyStateCreateInfo {
3527     VkStructureType                            sType;
3528     const void*                                pNext;
3529     VkPipelineInputAssemblyStateCreateFlags    flags;
3530     VkPrimitiveTopology                        topology;
3531     VkBool32                                   primitiveRestartEnable;
3532 } VkPipelineInputAssemblyStateCreateInfo;
3533 
3534 typedef struct VkPipelineTessellationStateCreateInfo {
3535     VkStructureType                           sType;
3536     const void*                               pNext;
3537     VkPipelineTessellationStateCreateFlags    flags;
3538     uint32_t                                  patchControlPoints;
3539 } VkPipelineTessellationStateCreateInfo;
3540 
3541 typedef struct VkViewport {
3542     float    x;
3543     float    y;
3544     float    width;
3545     float    height;
3546     float    minDepth;
3547     float    maxDepth;
3548 } VkViewport;
3549 
3550 typedef struct VkPipelineViewportStateCreateInfo {
3551     VkStructureType                       sType;
3552     const void*                           pNext;
3553     VkPipelineViewportStateCreateFlags    flags;
3554     uint32_t                              viewportCount;
3555     const VkViewport*                     pViewports;
3556     uint32_t                              scissorCount;
3557     const VkRect2D*                       pScissors;
3558 } VkPipelineViewportStateCreateInfo;
3559 
3560 typedef struct VkPipelineRasterizationStateCreateInfo {
3561     VkStructureType                            sType;
3562     const void*                                pNext;
3563     VkPipelineRasterizationStateCreateFlags    flags;
3564     VkBool32                                   depthClampEnable;
3565     VkBool32                                   rasterizerDiscardEnable;
3566     VkPolygonMode                              polygonMode;
3567     VkCullModeFlags                            cullMode;
3568     VkFrontFace                                frontFace;
3569     VkBool32                                   depthBiasEnable;
3570     float                                      depthBiasConstantFactor;
3571     float                                      depthBiasClamp;
3572     float                                      depthBiasSlopeFactor;
3573     float                                      lineWidth;
3574 } VkPipelineRasterizationStateCreateInfo;
3575 
3576 typedef struct VkPipelineMultisampleStateCreateInfo {
3577     VkStructureType                          sType;
3578     const void*                              pNext;
3579     VkPipelineMultisampleStateCreateFlags    flags;
3580     VkSampleCountFlagBits                    rasterizationSamples;
3581     VkBool32                                 sampleShadingEnable;
3582     float                                    minSampleShading;
3583     const VkSampleMask*                      pSampleMask;
3584     VkBool32                                 alphaToCoverageEnable;
3585     VkBool32                                 alphaToOneEnable;
3586 } VkPipelineMultisampleStateCreateInfo;
3587 
3588 typedef struct VkStencilOpState {
3589     VkStencilOp    failOp;
3590     VkStencilOp    passOp;
3591     VkStencilOp    depthFailOp;
3592     VkCompareOp    compareOp;
3593     uint32_t       compareMask;
3594     uint32_t       writeMask;
3595     uint32_t       reference;
3596 } VkStencilOpState;
3597 
3598 typedef struct VkPipelineDepthStencilStateCreateInfo {
3599     VkStructureType                           sType;
3600     const void*                               pNext;
3601     VkPipelineDepthStencilStateCreateFlags    flags;
3602     VkBool32                                  depthTestEnable;
3603     VkBool32                                  depthWriteEnable;
3604     VkCompareOp                               depthCompareOp;
3605     VkBool32                                  depthBoundsTestEnable;
3606     VkBool32                                  stencilTestEnable;
3607     VkStencilOpState                          front;
3608     VkStencilOpState                          back;
3609     float                                     minDepthBounds;
3610     float                                     maxDepthBounds;
3611 } VkPipelineDepthStencilStateCreateInfo;
3612 
3613 typedef struct VkPipelineColorBlendAttachmentState {
3614     VkBool32                 blendEnable;
3615     VkBlendFactor            srcColorBlendFactor;
3616     VkBlendFactor            dstColorBlendFactor;
3617     VkBlendOp                colorBlendOp;
3618     VkBlendFactor            srcAlphaBlendFactor;
3619     VkBlendFactor            dstAlphaBlendFactor;
3620     VkBlendOp                alphaBlendOp;
3621     VkColorComponentFlags    colorWriteMask;
3622 } VkPipelineColorBlendAttachmentState;
3623 
3624 typedef struct VkPipelineColorBlendStateCreateInfo {
3625     VkStructureType                               sType;
3626     const void*                                   pNext;
3627     VkPipelineColorBlendStateCreateFlags          flags;
3628     VkBool32                                      logicOpEnable;
3629     VkLogicOp                                     logicOp;
3630     uint32_t                                      attachmentCount;
3631     const VkPipelineColorBlendAttachmentState*    pAttachments;
3632     float                                         blendConstants[4];
3633 } VkPipelineColorBlendStateCreateInfo;
3634 
3635 typedef struct VkPipelineDynamicStateCreateInfo {
3636     VkStructureType                      sType;
3637     const void*                          pNext;
3638     VkPipelineDynamicStateCreateFlags    flags;
3639     uint32_t                             dynamicStateCount;
3640     const VkDynamicState*                pDynamicStates;
3641 } VkPipelineDynamicStateCreateInfo;
3642 
3643 typedef struct VkGraphicsPipelineCreateInfo {
3644     VkStructureType                                  sType;
3645     const void*                                      pNext;
3646     VkPipelineCreateFlags                            flags;
3647     uint32_t                                         stageCount;
3648     const VkPipelineShaderStageCreateInfo*           pStages;
3649     const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
3650     const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
3651     const VkPipelineTessellationStateCreateInfo*     pTessellationState;
3652     const VkPipelineViewportStateCreateInfo*         pViewportState;
3653     const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
3654     const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
3655     const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
3656     const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
3657     const VkPipelineDynamicStateCreateInfo*          pDynamicState;
3658     VkPipelineLayout                                 layout;
3659     VkRenderPass                                     renderPass;
3660     uint32_t                                         subpass;
3661     VkPipeline                                       basePipelineHandle;
3662     int32_t                                          basePipelineIndex;
3663 } VkGraphicsPipelineCreateInfo;
3664 
3665 typedef struct VkPushConstantRange {
3666     VkShaderStageFlags    stageFlags;
3667     uint32_t              offset;
3668     uint32_t              size;
3669 } VkPushConstantRange;
3670 
3671 typedef struct VkPipelineLayoutCreateInfo {
3672     VkStructureType                 sType;
3673     const void*                     pNext;
3674     VkPipelineLayoutCreateFlags     flags;
3675     uint32_t                        setLayoutCount;
3676     const VkDescriptorSetLayout*    pSetLayouts;
3677     uint32_t                        pushConstantRangeCount;
3678     const VkPushConstantRange*      pPushConstantRanges;
3679 } VkPipelineLayoutCreateInfo;
3680 
3681 typedef struct VkSamplerCreateInfo {
3682     VkStructureType         sType;
3683     const void*             pNext;
3684     VkSamplerCreateFlags    flags;
3685     VkFilter                magFilter;
3686     VkFilter                minFilter;
3687     VkSamplerMipmapMode     mipmapMode;
3688     VkSamplerAddressMode    addressModeU;
3689     VkSamplerAddressMode    addressModeV;
3690     VkSamplerAddressMode    addressModeW;
3691     float                   mipLodBias;
3692     VkBool32                anisotropyEnable;
3693     float                   maxAnisotropy;
3694     VkBool32                compareEnable;
3695     VkCompareOp             compareOp;
3696     float                   minLod;
3697     float                   maxLod;
3698     VkBorderColor           borderColor;
3699     VkBool32                unnormalizedCoordinates;
3700 } VkSamplerCreateInfo;
3701 
3702 typedef struct VkCopyDescriptorSet {
3703     VkStructureType    sType;
3704     const void*        pNext;
3705     VkDescriptorSet    srcSet;
3706     uint32_t           srcBinding;
3707     uint32_t           srcArrayElement;
3708     VkDescriptorSet    dstSet;
3709     uint32_t           dstBinding;
3710     uint32_t           dstArrayElement;
3711     uint32_t           descriptorCount;
3712 } VkCopyDescriptorSet;
3713 
3714 typedef struct VkDescriptorBufferInfo {
3715     VkBuffer        buffer;
3716     VkDeviceSize    offset;
3717     VkDeviceSize    range;
3718 } VkDescriptorBufferInfo;
3719 
3720 typedef struct VkDescriptorImageInfo {
3721     VkSampler        sampler;
3722     VkImageView      imageView;
3723     VkImageLayout    imageLayout;
3724 } VkDescriptorImageInfo;
3725 
3726 typedef struct VkDescriptorPoolSize {
3727     VkDescriptorType    type;
3728     uint32_t            descriptorCount;
3729 } VkDescriptorPoolSize;
3730 
3731 typedef struct VkDescriptorPoolCreateInfo {
3732     VkStructureType                sType;
3733     const void*                    pNext;
3734     VkDescriptorPoolCreateFlags    flags;
3735     uint32_t                       maxSets;
3736     uint32_t                       poolSizeCount;
3737     const VkDescriptorPoolSize*    pPoolSizes;
3738 } VkDescriptorPoolCreateInfo;
3739 
3740 typedef struct VkDescriptorSetAllocateInfo {
3741     VkStructureType                 sType;
3742     const void*                     pNext;
3743     VkDescriptorPool                descriptorPool;
3744     uint32_t                        descriptorSetCount;
3745     const VkDescriptorSetLayout*    pSetLayouts;
3746 } VkDescriptorSetAllocateInfo;
3747 
3748 typedef struct VkDescriptorSetLayoutBinding {
3749     uint32_t              binding;
3750     VkDescriptorType      descriptorType;
3751     uint32_t              descriptorCount;
3752     VkShaderStageFlags    stageFlags;
3753     const VkSampler*      pImmutableSamplers;
3754 } VkDescriptorSetLayoutBinding;
3755 
3756 typedef struct VkDescriptorSetLayoutCreateInfo {
3757     VkStructureType                        sType;
3758     const void*                            pNext;
3759     VkDescriptorSetLayoutCreateFlags       flags;
3760     uint32_t                               bindingCount;
3761     const VkDescriptorSetLayoutBinding*    pBindings;
3762 } VkDescriptorSetLayoutCreateInfo;
3763 
3764 typedef struct VkWriteDescriptorSet {
3765     VkStructureType                  sType;
3766     const void*                      pNext;
3767     VkDescriptorSet                  dstSet;
3768     uint32_t                         dstBinding;
3769     uint32_t                         dstArrayElement;
3770     uint32_t                         descriptorCount;
3771     VkDescriptorType                 descriptorType;
3772     const VkDescriptorImageInfo*     pImageInfo;
3773     const VkDescriptorBufferInfo*    pBufferInfo;
3774     const VkBufferView*              pTexelBufferView;
3775 } VkWriteDescriptorSet;
3776 
3777 typedef struct VkAttachmentDescription {
3778     VkAttachmentDescriptionFlags    flags;
3779     VkFormat                        format;
3780     VkSampleCountFlagBits           samples;
3781     VkAttachmentLoadOp              loadOp;
3782     VkAttachmentStoreOp             storeOp;
3783     VkAttachmentLoadOp              stencilLoadOp;
3784     VkAttachmentStoreOp             stencilStoreOp;
3785     VkImageLayout                   initialLayout;
3786     VkImageLayout                   finalLayout;
3787 } VkAttachmentDescription;
3788 
3789 typedef struct VkAttachmentReference {
3790     uint32_t         attachment;
3791     VkImageLayout    layout;
3792 } VkAttachmentReference;
3793 
3794 typedef struct VkFramebufferCreateInfo {
3795     VkStructureType             sType;
3796     const void*                 pNext;
3797     VkFramebufferCreateFlags    flags;
3798     VkRenderPass                renderPass;
3799     uint32_t                    attachmentCount;
3800     const VkImageView*          pAttachments;
3801     uint32_t                    width;
3802     uint32_t                    height;
3803     uint32_t                    layers;
3804 } VkFramebufferCreateInfo;
3805 
3806 typedef struct VkSubpassDescription {
3807     VkSubpassDescriptionFlags       flags;
3808     VkPipelineBindPoint             pipelineBindPoint;
3809     uint32_t                        inputAttachmentCount;
3810     const VkAttachmentReference*    pInputAttachments;
3811     uint32_t                        colorAttachmentCount;
3812     const VkAttachmentReference*    pColorAttachments;
3813     const VkAttachmentReference*    pResolveAttachments;
3814     const VkAttachmentReference*    pDepthStencilAttachment;
3815     uint32_t                        preserveAttachmentCount;
3816     const uint32_t*                 pPreserveAttachments;
3817 } VkSubpassDescription;
3818 
3819 typedef struct VkSubpassDependency {
3820     uint32_t                srcSubpass;
3821     uint32_t                dstSubpass;
3822     VkPipelineStageFlags    srcStageMask;
3823     VkPipelineStageFlags    dstStageMask;
3824     VkAccessFlags           srcAccessMask;
3825     VkAccessFlags           dstAccessMask;
3826     VkDependencyFlags       dependencyFlags;
3827 } VkSubpassDependency;
3828 
3829 typedef struct VkRenderPassCreateInfo {
3830     VkStructureType                   sType;
3831     const void*                       pNext;
3832     VkRenderPassCreateFlags           flags;
3833     uint32_t                          attachmentCount;
3834     const VkAttachmentDescription*    pAttachments;
3835     uint32_t                          subpassCount;
3836     const VkSubpassDescription*       pSubpasses;
3837     uint32_t                          dependencyCount;
3838     const VkSubpassDependency*        pDependencies;
3839 } VkRenderPassCreateInfo;
3840 
3841 typedef struct VkCommandPoolCreateInfo {
3842     VkStructureType             sType;
3843     const void*                 pNext;
3844     VkCommandPoolCreateFlags    flags;
3845     uint32_t                    queueFamilyIndex;
3846 } VkCommandPoolCreateInfo;
3847 
3848 typedef struct VkCommandBufferAllocateInfo {
3849     VkStructureType         sType;
3850     const void*             pNext;
3851     VkCommandPool           commandPool;
3852     VkCommandBufferLevel    level;
3853     uint32_t                commandBufferCount;
3854 } VkCommandBufferAllocateInfo;
3855 
3856 typedef struct VkCommandBufferInheritanceInfo {
3857     VkStructureType                  sType;
3858     const void*                      pNext;
3859     VkRenderPass                     renderPass;
3860     uint32_t                         subpass;
3861     VkFramebuffer                    framebuffer;
3862     VkBool32                         occlusionQueryEnable;
3863     VkQueryControlFlags              queryFlags;
3864     VkQueryPipelineStatisticFlags    pipelineStatistics;
3865 } VkCommandBufferInheritanceInfo;
3866 
3867 typedef struct VkCommandBufferBeginInfo {
3868     VkStructureType                          sType;
3869     const void*                              pNext;
3870     VkCommandBufferUsageFlags                flags;
3871     const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
3872 } VkCommandBufferBeginInfo;
3873 
3874 typedef struct VkBufferCopy {
3875     VkDeviceSize    srcOffset;
3876     VkDeviceSize    dstOffset;
3877     VkDeviceSize    size;
3878 } VkBufferCopy;
3879 
3880 typedef struct VkImageSubresourceLayers {
3881     VkImageAspectFlags    aspectMask;
3882     uint32_t              mipLevel;
3883     uint32_t              baseArrayLayer;
3884     uint32_t              layerCount;
3885 } VkImageSubresourceLayers;
3886 
3887 typedef struct VkBufferImageCopy {
3888     VkDeviceSize                bufferOffset;
3889     uint32_t                    bufferRowLength;
3890     uint32_t                    bufferImageHeight;
3891     VkImageSubresourceLayers    imageSubresource;
3892     VkOffset3D                  imageOffset;
3893     VkExtent3D                  imageExtent;
3894 } VkBufferImageCopy;
3895 
3896 typedef union VkClearColorValue {
3897     float       float32[4];
3898     int32_t     int32[4];
3899     uint32_t    uint32[4];
3900 } VkClearColorValue;
3901 
3902 typedef struct VkClearDepthStencilValue {
3903     float       depth;
3904     uint32_t    stencil;
3905 } VkClearDepthStencilValue;
3906 
3907 typedef union VkClearValue {
3908     VkClearColorValue           color;
3909     VkClearDepthStencilValue    depthStencil;
3910 } VkClearValue;
3911 
3912 typedef struct VkClearAttachment {
3913     VkImageAspectFlags    aspectMask;
3914     uint32_t              colorAttachment;
3915     VkClearValue          clearValue;
3916 } VkClearAttachment;
3917 
3918 typedef struct VkClearRect {
3919     VkRect2D    rect;
3920     uint32_t    baseArrayLayer;
3921     uint32_t    layerCount;
3922 } VkClearRect;
3923 
3924 typedef struct VkImageBlit {
3925     VkImageSubresourceLayers    srcSubresource;
3926     VkOffset3D                  srcOffsets[2];
3927     VkImageSubresourceLayers    dstSubresource;
3928     VkOffset3D                  dstOffsets[2];
3929 } VkImageBlit;
3930 
3931 typedef struct VkImageCopy {
3932     VkImageSubresourceLayers    srcSubresource;
3933     VkOffset3D                  srcOffset;
3934     VkImageSubresourceLayers    dstSubresource;
3935     VkOffset3D                  dstOffset;
3936     VkExtent3D                  extent;
3937 } VkImageCopy;
3938 
3939 typedef struct VkImageResolve {
3940     VkImageSubresourceLayers    srcSubresource;
3941     VkOffset3D                  srcOffset;
3942     VkImageSubresourceLayers    dstSubresource;
3943     VkOffset3D                  dstOffset;
3944     VkExtent3D                  extent;
3945 } VkImageResolve;
3946 
3947 typedef struct VkRenderPassBeginInfo {
3948     VkStructureType        sType;
3949     const void*            pNext;
3950     VkRenderPass           renderPass;
3951     VkFramebuffer          framebuffer;
3952     VkRect2D               renderArea;
3953     uint32_t               clearValueCount;
3954     const VkClearValue*    pClearValues;
3955 } VkRenderPassBeginInfo;
3956 
3957 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
3958 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
3959 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
3960 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
3961 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
3962 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
3963 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
3964 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
3965 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
3966 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
3967 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
3968 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
3969 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
3970 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
3971 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
3972 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
3973 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
3974 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
3975 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
3976 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
3977 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
3978 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
3979 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
3980 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
3981 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
3982 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
3983 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
3984 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
3985 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
3986 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
3987 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
3988 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
3989 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
3990 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
3991 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
3992 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
3993 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
3994 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
3995 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
3996 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
3997 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
3998 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
3999 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
4000 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
4001 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
4002 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
4003 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
4004 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
4005 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
4006 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);
4007 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
4008 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
4009 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
4010 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
4011 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
4012 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
4013 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
4014 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
4015 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
4016 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
4017 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
4018 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
4019 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
4020 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
4021 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
4022 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4023 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4024 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
4025 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
4026 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
4027 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
4028 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
4029 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
4030 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
4031 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
4032 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
4033 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
4034 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
4035 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
4036 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
4037 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
4038 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
4039 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
4040 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
4041 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
4042 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
4043 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
4044 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
4045 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
4046 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4047 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
4048 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
4049 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
4050 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4051 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
4052 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
4053 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4054 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4055 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
4056 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4057 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
4058 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
4059 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
4060 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);
4061 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4062 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
4063 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
4064 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
4065 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4066 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4067 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4068 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4069 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
4070 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
4071 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
4072 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4073 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4074 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4075 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4076 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4077 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4078 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4079 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4080 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4081 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4082 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);
4083 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);
4084 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4085 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4086 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4087 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4088 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4089 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4090 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4091 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4092 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4093 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4094 
4095 #ifndef VK_NO_PROTOTYPES
4096 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4097     const VkInstanceCreateInfo*                 pCreateInfo,
4098     const VkAllocationCallbacks*                pAllocator,
4099     VkInstance*                                 pInstance);
4100 
4101 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4102     VkInstance                                  instance,
4103     const VkAllocationCallbacks*                pAllocator);
4104 
4105 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4106     VkInstance                                  instance,
4107     uint32_t*                                   pPhysicalDeviceCount,
4108     VkPhysicalDevice*                           pPhysicalDevices);
4109 
4110 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4111     VkPhysicalDevice                            physicalDevice,
4112     VkPhysicalDeviceFeatures*                   pFeatures);
4113 
4114 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4115     VkPhysicalDevice                            physicalDevice,
4116     VkFormat                                    format,
4117     VkFormatProperties*                         pFormatProperties);
4118 
4119 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4120     VkPhysicalDevice                            physicalDevice,
4121     VkFormat                                    format,
4122     VkImageType                                 type,
4123     VkImageTiling                               tiling,
4124     VkImageUsageFlags                           usage,
4125     VkImageCreateFlags                          flags,
4126     VkImageFormatProperties*                    pImageFormatProperties);
4127 
4128 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4129     VkPhysicalDevice                            physicalDevice,
4130     VkPhysicalDeviceProperties*                 pProperties);
4131 
4132 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4133     VkPhysicalDevice                            physicalDevice,
4134     uint32_t*                                   pQueueFamilyPropertyCount,
4135     VkQueueFamilyProperties*                    pQueueFamilyProperties);
4136 
4137 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4138     VkPhysicalDevice                            physicalDevice,
4139     VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
4140 
4141 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4142     VkInstance                                  instance,
4143     const char*                                 pName);
4144 
4145 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4146     VkDevice                                    device,
4147     const char*                                 pName);
4148 
4149 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4150     VkPhysicalDevice                            physicalDevice,
4151     const VkDeviceCreateInfo*                   pCreateInfo,
4152     const VkAllocationCallbacks*                pAllocator,
4153     VkDevice*                                   pDevice);
4154 
4155 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4156     VkDevice                                    device,
4157     const VkAllocationCallbacks*                pAllocator);
4158 
4159 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4160     const char*                                 pLayerName,
4161     uint32_t*                                   pPropertyCount,
4162     VkExtensionProperties*                      pProperties);
4163 
4164 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4165     VkPhysicalDevice                            physicalDevice,
4166     const char*                                 pLayerName,
4167     uint32_t*                                   pPropertyCount,
4168     VkExtensionProperties*                      pProperties);
4169 
4170 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4171     uint32_t*                                   pPropertyCount,
4172     VkLayerProperties*                          pProperties);
4173 
4174 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4175     VkPhysicalDevice                            physicalDevice,
4176     uint32_t*                                   pPropertyCount,
4177     VkLayerProperties*                          pProperties);
4178 
4179 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4180     VkDevice                                    device,
4181     uint32_t                                    queueFamilyIndex,
4182     uint32_t                                    queueIndex,
4183     VkQueue*                                    pQueue);
4184 
4185 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4186     VkQueue                                     queue,
4187     uint32_t                                    submitCount,
4188     const VkSubmitInfo*                         pSubmits,
4189     VkFence                                     fence);
4190 
4191 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4192     VkQueue                                     queue);
4193 
4194 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4195     VkDevice                                    device);
4196 
4197 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4198     VkDevice                                    device,
4199     const VkMemoryAllocateInfo*                 pAllocateInfo,
4200     const VkAllocationCallbacks*                pAllocator,
4201     VkDeviceMemory*                             pMemory);
4202 
4203 VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4204     VkDevice                                    device,
4205     VkDeviceMemory                              memory,
4206     const VkAllocationCallbacks*                pAllocator);
4207 
4208 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4209     VkDevice                                    device,
4210     VkDeviceMemory                              memory,
4211     VkDeviceSize                                offset,
4212     VkDeviceSize                                size,
4213     VkMemoryMapFlags                            flags,
4214     void**                                      ppData);
4215 
4216 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4217     VkDevice                                    device,
4218     VkDeviceMemory                              memory);
4219 
4220 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4221     VkDevice                                    device,
4222     uint32_t                                    memoryRangeCount,
4223     const VkMappedMemoryRange*                  pMemoryRanges);
4224 
4225 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4226     VkDevice                                    device,
4227     uint32_t                                    memoryRangeCount,
4228     const VkMappedMemoryRange*                  pMemoryRanges);
4229 
4230 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4231     VkDevice                                    device,
4232     VkDeviceMemory                              memory,
4233     VkDeviceSize*                               pCommittedMemoryInBytes);
4234 
4235 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4236     VkDevice                                    device,
4237     VkBuffer                                    buffer,
4238     VkDeviceMemory                              memory,
4239     VkDeviceSize                                memoryOffset);
4240 
4241 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4242     VkDevice                                    device,
4243     VkImage                                     image,
4244     VkDeviceMemory                              memory,
4245     VkDeviceSize                                memoryOffset);
4246 
4247 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
4248     VkDevice                                    device,
4249     VkBuffer                                    buffer,
4250     VkMemoryRequirements*                       pMemoryRequirements);
4251 
4252 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
4253     VkDevice                                    device,
4254     VkImage                                     image,
4255     VkMemoryRequirements*                       pMemoryRequirements);
4256 
4257 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
4258     VkDevice                                    device,
4259     VkImage                                     image,
4260     uint32_t*                                   pSparseMemoryRequirementCount,
4261     VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
4262 
4263 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
4264     VkPhysicalDevice                            physicalDevice,
4265     VkFormat                                    format,
4266     VkImageType                                 type,
4267     VkSampleCountFlagBits                       samples,
4268     VkImageUsageFlags                           usage,
4269     VkImageTiling                               tiling,
4270     uint32_t*                                   pPropertyCount,
4271     VkSparseImageFormatProperties*              pProperties);
4272 
4273 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
4274     VkQueue                                     queue,
4275     uint32_t                                    bindInfoCount,
4276     const VkBindSparseInfo*                     pBindInfo,
4277     VkFence                                     fence);
4278 
4279 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
4280     VkDevice                                    device,
4281     const VkFenceCreateInfo*                    pCreateInfo,
4282     const VkAllocationCallbacks*                pAllocator,
4283     VkFence*                                    pFence);
4284 
4285 VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
4286     VkDevice                                    device,
4287     VkFence                                     fence,
4288     const VkAllocationCallbacks*                pAllocator);
4289 
4290 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
4291     VkDevice                                    device,
4292     uint32_t                                    fenceCount,
4293     const VkFence*                              pFences);
4294 
4295 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
4296     VkDevice                                    device,
4297     VkFence                                     fence);
4298 
4299 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
4300     VkDevice                                    device,
4301     uint32_t                                    fenceCount,
4302     const VkFence*                              pFences,
4303     VkBool32                                    waitAll,
4304     uint64_t                                    timeout);
4305 
4306 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
4307     VkDevice                                    device,
4308     const VkSemaphoreCreateInfo*                pCreateInfo,
4309     const VkAllocationCallbacks*                pAllocator,
4310     VkSemaphore*                                pSemaphore);
4311 
4312 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
4313     VkDevice                                    device,
4314     VkSemaphore                                 semaphore,
4315     const VkAllocationCallbacks*                pAllocator);
4316 
4317 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
4318     VkDevice                                    device,
4319     const VkEventCreateInfo*                    pCreateInfo,
4320     const VkAllocationCallbacks*                pAllocator,
4321     VkEvent*                                    pEvent);
4322 
4323 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
4324     VkDevice                                    device,
4325     VkEvent                                     event,
4326     const VkAllocationCallbacks*                pAllocator);
4327 
4328 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
4329     VkDevice                                    device,
4330     VkEvent                                     event);
4331 
4332 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
4333     VkDevice                                    device,
4334     VkEvent                                     event);
4335 
4336 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
4337     VkDevice                                    device,
4338     VkEvent                                     event);
4339 
4340 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
4341     VkDevice                                    device,
4342     const VkQueryPoolCreateInfo*                pCreateInfo,
4343     const VkAllocationCallbacks*                pAllocator,
4344     VkQueryPool*                                pQueryPool);
4345 
4346 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
4347     VkDevice                                    device,
4348     VkQueryPool                                 queryPool,
4349     const VkAllocationCallbacks*                pAllocator);
4350 
4351 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
4352     VkDevice                                    device,
4353     VkQueryPool                                 queryPool,
4354     uint32_t                                    firstQuery,
4355     uint32_t                                    queryCount,
4356     size_t                                      dataSize,
4357     void*                                       pData,
4358     VkDeviceSize                                stride,
4359     VkQueryResultFlags                          flags);
4360 
4361 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
4362     VkDevice                                    device,
4363     const VkBufferCreateInfo*                   pCreateInfo,
4364     const VkAllocationCallbacks*                pAllocator,
4365     VkBuffer*                                   pBuffer);
4366 
4367 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
4368     VkDevice                                    device,
4369     VkBuffer                                    buffer,
4370     const VkAllocationCallbacks*                pAllocator);
4371 
4372 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
4373     VkDevice                                    device,
4374     const VkBufferViewCreateInfo*               pCreateInfo,
4375     const VkAllocationCallbacks*                pAllocator,
4376     VkBufferView*                               pView);
4377 
4378 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
4379     VkDevice                                    device,
4380     VkBufferView                                bufferView,
4381     const VkAllocationCallbacks*                pAllocator);
4382 
4383 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
4384     VkDevice                                    device,
4385     const VkImageCreateInfo*                    pCreateInfo,
4386     const VkAllocationCallbacks*                pAllocator,
4387     VkImage*                                    pImage);
4388 
4389 VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
4390     VkDevice                                    device,
4391     VkImage                                     image,
4392     const VkAllocationCallbacks*                pAllocator);
4393 
4394 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
4395     VkDevice                                    device,
4396     VkImage                                     image,
4397     const VkImageSubresource*                   pSubresource,
4398     VkSubresourceLayout*                        pLayout);
4399 
4400 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
4401     VkDevice                                    device,
4402     const VkImageViewCreateInfo*                pCreateInfo,
4403     const VkAllocationCallbacks*                pAllocator,
4404     VkImageView*                                pView);
4405 
4406 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
4407     VkDevice                                    device,
4408     VkImageView                                 imageView,
4409     const VkAllocationCallbacks*                pAllocator);
4410 
4411 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
4412     VkDevice                                    device,
4413     const VkShaderModuleCreateInfo*             pCreateInfo,
4414     const VkAllocationCallbacks*                pAllocator,
4415     VkShaderModule*                             pShaderModule);
4416 
4417 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
4418     VkDevice                                    device,
4419     VkShaderModule                              shaderModule,
4420     const VkAllocationCallbacks*                pAllocator);
4421 
4422 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
4423     VkDevice                                    device,
4424     const VkPipelineCacheCreateInfo*            pCreateInfo,
4425     const VkAllocationCallbacks*                pAllocator,
4426     VkPipelineCache*                            pPipelineCache);
4427 
4428 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
4429     VkDevice                                    device,
4430     VkPipelineCache                             pipelineCache,
4431     const VkAllocationCallbacks*                pAllocator);
4432 
4433 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
4434     VkDevice                                    device,
4435     VkPipelineCache                             pipelineCache,
4436     size_t*                                     pDataSize,
4437     void*                                       pData);
4438 
4439 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
4440     VkDevice                                    device,
4441     VkPipelineCache                             dstCache,
4442     uint32_t                                    srcCacheCount,
4443     const VkPipelineCache*                      pSrcCaches);
4444 
4445 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
4446     VkDevice                                    device,
4447     VkPipelineCache                             pipelineCache,
4448     uint32_t                                    createInfoCount,
4449     const VkGraphicsPipelineCreateInfo*         pCreateInfos,
4450     const VkAllocationCallbacks*                pAllocator,
4451     VkPipeline*                                 pPipelines);
4452 
4453 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
4454     VkDevice                                    device,
4455     VkPipelineCache                             pipelineCache,
4456     uint32_t                                    createInfoCount,
4457     const VkComputePipelineCreateInfo*          pCreateInfos,
4458     const VkAllocationCallbacks*                pAllocator,
4459     VkPipeline*                                 pPipelines);
4460 
4461 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
4462     VkDevice                                    device,
4463     VkPipeline                                  pipeline,
4464     const VkAllocationCallbacks*                pAllocator);
4465 
4466 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
4467     VkDevice                                    device,
4468     const VkPipelineLayoutCreateInfo*           pCreateInfo,
4469     const VkAllocationCallbacks*                pAllocator,
4470     VkPipelineLayout*                           pPipelineLayout);
4471 
4472 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
4473     VkDevice                                    device,
4474     VkPipelineLayout                            pipelineLayout,
4475     const VkAllocationCallbacks*                pAllocator);
4476 
4477 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
4478     VkDevice                                    device,
4479     const VkSamplerCreateInfo*                  pCreateInfo,
4480     const VkAllocationCallbacks*                pAllocator,
4481     VkSampler*                                  pSampler);
4482 
4483 VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
4484     VkDevice                                    device,
4485     VkSampler                                   sampler,
4486     const VkAllocationCallbacks*                pAllocator);
4487 
4488 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
4489     VkDevice                                    device,
4490     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
4491     const VkAllocationCallbacks*                pAllocator,
4492     VkDescriptorSetLayout*                      pSetLayout);
4493 
4494 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
4495     VkDevice                                    device,
4496     VkDescriptorSetLayout                       descriptorSetLayout,
4497     const VkAllocationCallbacks*                pAllocator);
4498 
4499 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
4500     VkDevice                                    device,
4501     const VkDescriptorPoolCreateInfo*           pCreateInfo,
4502     const VkAllocationCallbacks*                pAllocator,
4503     VkDescriptorPool*                           pDescriptorPool);
4504 
4505 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
4506     VkDevice                                    device,
4507     VkDescriptorPool                            descriptorPool,
4508     const VkAllocationCallbacks*                pAllocator);
4509 
4510 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
4511     VkDevice                                    device,
4512     VkDescriptorPool                            descriptorPool,
4513     VkDescriptorPoolResetFlags                  flags);
4514 
4515 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
4516     VkDevice                                    device,
4517     const VkDescriptorSetAllocateInfo*          pAllocateInfo,
4518     VkDescriptorSet*                            pDescriptorSets);
4519 
4520 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
4521     VkDevice                                    device,
4522     VkDescriptorPool                            descriptorPool,
4523     uint32_t                                    descriptorSetCount,
4524     const VkDescriptorSet*                      pDescriptorSets);
4525 
4526 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
4527     VkDevice                                    device,
4528     uint32_t                                    descriptorWriteCount,
4529     const VkWriteDescriptorSet*                 pDescriptorWrites,
4530     uint32_t                                    descriptorCopyCount,
4531     const VkCopyDescriptorSet*                  pDescriptorCopies);
4532 
4533 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
4534     VkDevice                                    device,
4535     const VkFramebufferCreateInfo*              pCreateInfo,
4536     const VkAllocationCallbacks*                pAllocator,
4537     VkFramebuffer*                              pFramebuffer);
4538 
4539 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
4540     VkDevice                                    device,
4541     VkFramebuffer                               framebuffer,
4542     const VkAllocationCallbacks*                pAllocator);
4543 
4544 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
4545     VkDevice                                    device,
4546     const VkRenderPassCreateInfo*               pCreateInfo,
4547     const VkAllocationCallbacks*                pAllocator,
4548     VkRenderPass*                               pRenderPass);
4549 
4550 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
4551     VkDevice                                    device,
4552     VkRenderPass                                renderPass,
4553     const VkAllocationCallbacks*                pAllocator);
4554 
4555 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
4556     VkDevice                                    device,
4557     VkRenderPass                                renderPass,
4558     VkExtent2D*                                 pGranularity);
4559 
4560 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
4561     VkDevice                                    device,
4562     const VkCommandPoolCreateInfo*              pCreateInfo,
4563     const VkAllocationCallbacks*                pAllocator,
4564     VkCommandPool*                              pCommandPool);
4565 
4566 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
4567     VkDevice                                    device,
4568     VkCommandPool                               commandPool,
4569     const VkAllocationCallbacks*                pAllocator);
4570 
4571 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
4572     VkDevice                                    device,
4573     VkCommandPool                               commandPool,
4574     VkCommandPoolResetFlags                     flags);
4575 
4576 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
4577     VkDevice                                    device,
4578     const VkCommandBufferAllocateInfo*          pAllocateInfo,
4579     VkCommandBuffer*                            pCommandBuffers);
4580 
4581 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
4582     VkDevice                                    device,
4583     VkCommandPool                               commandPool,
4584     uint32_t                                    commandBufferCount,
4585     const VkCommandBuffer*                      pCommandBuffers);
4586 
4587 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
4588     VkCommandBuffer                             commandBuffer,
4589     const VkCommandBufferBeginInfo*             pBeginInfo);
4590 
4591 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
4592     VkCommandBuffer                             commandBuffer);
4593 
4594 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
4595     VkCommandBuffer                             commandBuffer,
4596     VkCommandBufferResetFlags                   flags);
4597 
4598 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
4599     VkCommandBuffer                             commandBuffer,
4600     VkPipelineBindPoint                         pipelineBindPoint,
4601     VkPipeline                                  pipeline);
4602 
4603 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
4604     VkCommandBuffer                             commandBuffer,
4605     uint32_t                                    firstViewport,
4606     uint32_t                                    viewportCount,
4607     const VkViewport*                           pViewports);
4608 
4609 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
4610     VkCommandBuffer                             commandBuffer,
4611     uint32_t                                    firstScissor,
4612     uint32_t                                    scissorCount,
4613     const VkRect2D*                             pScissors);
4614 
4615 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
4616     VkCommandBuffer                             commandBuffer,
4617     float                                       lineWidth);
4618 
4619 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
4620     VkCommandBuffer                             commandBuffer,
4621     float                                       depthBiasConstantFactor,
4622     float                                       depthBiasClamp,
4623     float                                       depthBiasSlopeFactor);
4624 
4625 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
4626     VkCommandBuffer                             commandBuffer,
4627     const float                                 blendConstants[4]);
4628 
4629 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
4630     VkCommandBuffer                             commandBuffer,
4631     float                                       minDepthBounds,
4632     float                                       maxDepthBounds);
4633 
4634 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
4635     VkCommandBuffer                             commandBuffer,
4636     VkStencilFaceFlags                          faceMask,
4637     uint32_t                                    compareMask);
4638 
4639 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
4640     VkCommandBuffer                             commandBuffer,
4641     VkStencilFaceFlags                          faceMask,
4642     uint32_t                                    writeMask);
4643 
4644 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
4645     VkCommandBuffer                             commandBuffer,
4646     VkStencilFaceFlags                          faceMask,
4647     uint32_t                                    reference);
4648 
4649 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
4650     VkCommandBuffer                             commandBuffer,
4651     VkPipelineBindPoint                         pipelineBindPoint,
4652     VkPipelineLayout                            layout,
4653     uint32_t                                    firstSet,
4654     uint32_t                                    descriptorSetCount,
4655     const VkDescriptorSet*                      pDescriptorSets,
4656     uint32_t                                    dynamicOffsetCount,
4657     const uint32_t*                             pDynamicOffsets);
4658 
4659 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
4660     VkCommandBuffer                             commandBuffer,
4661     VkBuffer                                    buffer,
4662     VkDeviceSize                                offset,
4663     VkIndexType                                 indexType);
4664 
4665 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
4666     VkCommandBuffer                             commandBuffer,
4667     uint32_t                                    firstBinding,
4668     uint32_t                                    bindingCount,
4669     const VkBuffer*                             pBuffers,
4670     const VkDeviceSize*                         pOffsets);
4671 
4672 VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
4673     VkCommandBuffer                             commandBuffer,
4674     uint32_t                                    vertexCount,
4675     uint32_t                                    instanceCount,
4676     uint32_t                                    firstVertex,
4677     uint32_t                                    firstInstance);
4678 
4679 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
4680     VkCommandBuffer                             commandBuffer,
4681     uint32_t                                    indexCount,
4682     uint32_t                                    instanceCount,
4683     uint32_t                                    firstIndex,
4684     int32_t                                     vertexOffset,
4685     uint32_t                                    firstInstance);
4686 
4687 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
4688     VkCommandBuffer                             commandBuffer,
4689     VkBuffer                                    buffer,
4690     VkDeviceSize                                offset,
4691     uint32_t                                    drawCount,
4692     uint32_t                                    stride);
4693 
4694 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
4695     VkCommandBuffer                             commandBuffer,
4696     VkBuffer                                    buffer,
4697     VkDeviceSize                                offset,
4698     uint32_t                                    drawCount,
4699     uint32_t                                    stride);
4700 
4701 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
4702     VkCommandBuffer                             commandBuffer,
4703     uint32_t                                    groupCountX,
4704     uint32_t                                    groupCountY,
4705     uint32_t                                    groupCountZ);
4706 
4707 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
4708     VkCommandBuffer                             commandBuffer,
4709     VkBuffer                                    buffer,
4710     VkDeviceSize                                offset);
4711 
4712 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
4713     VkCommandBuffer                             commandBuffer,
4714     VkBuffer                                    srcBuffer,
4715     VkBuffer                                    dstBuffer,
4716     uint32_t                                    regionCount,
4717     const VkBufferCopy*                         pRegions);
4718 
4719 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
4720     VkCommandBuffer                             commandBuffer,
4721     VkImage                                     srcImage,
4722     VkImageLayout                               srcImageLayout,
4723     VkImage                                     dstImage,
4724     VkImageLayout                               dstImageLayout,
4725     uint32_t                                    regionCount,
4726     const VkImageCopy*                          pRegions);
4727 
4728 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
4729     VkCommandBuffer                             commandBuffer,
4730     VkImage                                     srcImage,
4731     VkImageLayout                               srcImageLayout,
4732     VkImage                                     dstImage,
4733     VkImageLayout                               dstImageLayout,
4734     uint32_t                                    regionCount,
4735     const VkImageBlit*                          pRegions,
4736     VkFilter                                    filter);
4737 
4738 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
4739     VkCommandBuffer                             commandBuffer,
4740     VkBuffer                                    srcBuffer,
4741     VkImage                                     dstImage,
4742     VkImageLayout                               dstImageLayout,
4743     uint32_t                                    regionCount,
4744     const VkBufferImageCopy*                    pRegions);
4745 
4746 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
4747     VkCommandBuffer                             commandBuffer,
4748     VkImage                                     srcImage,
4749     VkImageLayout                               srcImageLayout,
4750     VkBuffer                                    dstBuffer,
4751     uint32_t                                    regionCount,
4752     const VkBufferImageCopy*                    pRegions);
4753 
4754 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
4755     VkCommandBuffer                             commandBuffer,
4756     VkBuffer                                    dstBuffer,
4757     VkDeviceSize                                dstOffset,
4758     VkDeviceSize                                dataSize,
4759     const void*                                 pData);
4760 
4761 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
4762     VkCommandBuffer                             commandBuffer,
4763     VkBuffer                                    dstBuffer,
4764     VkDeviceSize                                dstOffset,
4765     VkDeviceSize                                size,
4766     uint32_t                                    data);
4767 
4768 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
4769     VkCommandBuffer                             commandBuffer,
4770     VkImage                                     image,
4771     VkImageLayout                               imageLayout,
4772     const VkClearColorValue*                    pColor,
4773     uint32_t                                    rangeCount,
4774     const VkImageSubresourceRange*              pRanges);
4775 
4776 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
4777     VkCommandBuffer                             commandBuffer,
4778     VkImage                                     image,
4779     VkImageLayout                               imageLayout,
4780     const VkClearDepthStencilValue*             pDepthStencil,
4781     uint32_t                                    rangeCount,
4782     const VkImageSubresourceRange*              pRanges);
4783 
4784 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
4785     VkCommandBuffer                             commandBuffer,
4786     uint32_t                                    attachmentCount,
4787     const VkClearAttachment*                    pAttachments,
4788     uint32_t                                    rectCount,
4789     const VkClearRect*                          pRects);
4790 
4791 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
4792     VkCommandBuffer                             commandBuffer,
4793     VkImage                                     srcImage,
4794     VkImageLayout                               srcImageLayout,
4795     VkImage                                     dstImage,
4796     VkImageLayout                               dstImageLayout,
4797     uint32_t                                    regionCount,
4798     const VkImageResolve*                       pRegions);
4799 
4800 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
4801     VkCommandBuffer                             commandBuffer,
4802     VkEvent                                     event,
4803     VkPipelineStageFlags                        stageMask);
4804 
4805 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
4806     VkCommandBuffer                             commandBuffer,
4807     VkEvent                                     event,
4808     VkPipelineStageFlags                        stageMask);
4809 
4810 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
4811     VkCommandBuffer                             commandBuffer,
4812     uint32_t                                    eventCount,
4813     const VkEvent*                              pEvents,
4814     VkPipelineStageFlags                        srcStageMask,
4815     VkPipelineStageFlags                        dstStageMask,
4816     uint32_t                                    memoryBarrierCount,
4817     const VkMemoryBarrier*                      pMemoryBarriers,
4818     uint32_t                                    bufferMemoryBarrierCount,
4819     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
4820     uint32_t                                    imageMemoryBarrierCount,
4821     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
4822 
4823 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
4824     VkCommandBuffer                             commandBuffer,
4825     VkPipelineStageFlags                        srcStageMask,
4826     VkPipelineStageFlags                        dstStageMask,
4827     VkDependencyFlags                           dependencyFlags,
4828     uint32_t                                    memoryBarrierCount,
4829     const VkMemoryBarrier*                      pMemoryBarriers,
4830     uint32_t                                    bufferMemoryBarrierCount,
4831     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
4832     uint32_t                                    imageMemoryBarrierCount,
4833     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
4834 
4835 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
4836     VkCommandBuffer                             commandBuffer,
4837     VkQueryPool                                 queryPool,
4838     uint32_t                                    query,
4839     VkQueryControlFlags                         flags);
4840 
4841 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
4842     VkCommandBuffer                             commandBuffer,
4843     VkQueryPool                                 queryPool,
4844     uint32_t                                    query);
4845 
4846 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
4847     VkCommandBuffer                             commandBuffer,
4848     VkQueryPool                                 queryPool,
4849     uint32_t                                    firstQuery,
4850     uint32_t                                    queryCount);
4851 
4852 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
4853     VkCommandBuffer                             commandBuffer,
4854     VkPipelineStageFlagBits                     pipelineStage,
4855     VkQueryPool                                 queryPool,
4856     uint32_t                                    query);
4857 
4858 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
4859     VkCommandBuffer                             commandBuffer,
4860     VkQueryPool                                 queryPool,
4861     uint32_t                                    firstQuery,
4862     uint32_t                                    queryCount,
4863     VkBuffer                                    dstBuffer,
4864     VkDeviceSize                                dstOffset,
4865     VkDeviceSize                                stride,
4866     VkQueryResultFlags                          flags);
4867 
4868 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
4869     VkCommandBuffer                             commandBuffer,
4870     VkPipelineLayout                            layout,
4871     VkShaderStageFlags                          stageFlags,
4872     uint32_t                                    offset,
4873     uint32_t                                    size,
4874     const void*                                 pValues);
4875 
4876 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
4877     VkCommandBuffer                             commandBuffer,
4878     const VkRenderPassBeginInfo*                pRenderPassBegin,
4879     VkSubpassContents                           contents);
4880 
4881 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
4882     VkCommandBuffer                             commandBuffer,
4883     VkSubpassContents                           contents);
4884 
4885 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
4886     VkCommandBuffer                             commandBuffer);
4887 
4888 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
4889     VkCommandBuffer                             commandBuffer,
4890     uint32_t                                    commandBufferCount,
4891     const VkCommandBuffer*                      pCommandBuffers);
4892 #endif
4893 
4894 
4895 // VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
4896 #define VK_VERSION_1_1 1
4897 // Vulkan 1.1 version number
4898 #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
4899 
4900 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
4901 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
4902 #define VK_MAX_DEVICE_GROUP_SIZE          32U
4903 #define VK_LUID_SIZE                      8U
4904 #define VK_QUEUE_FAMILY_EXTERNAL          (~1U)
4905 
4906 typedef enum VkPointClippingBehavior {
4907     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
4908     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
4909     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
4910     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
4911     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
4912 } VkPointClippingBehavior;
4913 
4914 typedef enum VkTessellationDomainOrigin {
4915     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
4916     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
4917     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
4918     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
4919     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
4920 } VkTessellationDomainOrigin;
4921 
4922 typedef enum VkSamplerYcbcrModelConversion {
4923     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
4924     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
4925     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
4926     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
4927     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
4928     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
4929     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
4930     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
4931     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
4932     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
4933     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
4934 } VkSamplerYcbcrModelConversion;
4935 
4936 typedef enum VkSamplerYcbcrRange {
4937     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
4938     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
4939     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
4940     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
4941     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
4942 } VkSamplerYcbcrRange;
4943 
4944 typedef enum VkChromaLocation {
4945     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
4946     VK_CHROMA_LOCATION_MIDPOINT = 1,
4947     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
4948     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
4949     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
4950 } VkChromaLocation;
4951 
4952 typedef enum VkDescriptorUpdateTemplateType {
4953     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
4954     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
4955     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4956     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
4957 } VkDescriptorUpdateTemplateType;
4958 
4959 typedef enum VkSubgroupFeatureFlagBits {
4960     VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
4961     VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
4962     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
4963     VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
4964     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
4965     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
4966     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
4967     VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
4968     VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
4969     VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = 0x00000200,
4970     VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = 0x00000400,
4971     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4972 } VkSubgroupFeatureFlagBits;
4973 typedef VkFlags VkSubgroupFeatureFlags;
4974 
4975 typedef enum VkPeerMemoryFeatureFlagBits {
4976     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
4977     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
4978     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
4979     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
4980     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
4981     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
4982     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
4983     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
4984     VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4985 } VkPeerMemoryFeatureFlagBits;
4986 typedef VkFlags VkPeerMemoryFeatureFlags;
4987 
4988 typedef enum VkMemoryAllocateFlagBits {
4989     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
4990     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
4991     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
4992     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
4993     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
4994     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
4995     VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4996 } VkMemoryAllocateFlagBits;
4997 typedef VkFlags VkMemoryAllocateFlags;
4998 typedef VkFlags VkCommandPoolTrimFlags;
4999 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
5000 
5001 typedef enum VkExternalMemoryHandleTypeFlagBits {
5002     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5003     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5004     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5005     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
5006     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
5007     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
5008     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
5009     VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
5010     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
5011     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
5012     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
5013     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
5014     VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
5015     VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
5016     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5017     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5018     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5019     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5020     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5021     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5022     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5023     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5024 } VkExternalMemoryHandleTypeFlagBits;
5025 typedef VkFlags VkExternalMemoryHandleTypeFlags;
5026 
5027 typedef enum VkExternalMemoryFeatureFlagBits {
5028     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
5029     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
5030     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
5031     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5032     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5033     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
5034     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5035 } VkExternalMemoryFeatureFlagBits;
5036 typedef VkFlags VkExternalMemoryFeatureFlags;
5037 
5038 typedef enum VkExternalFenceHandleTypeFlagBits {
5039     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5040     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5041     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5042     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
5043     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5044     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5045     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5046     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
5047     VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5048 } VkExternalFenceHandleTypeFlagBits;
5049 typedef VkFlags VkExternalFenceHandleTypeFlags;
5050 
5051 typedef enum VkExternalFenceFeatureFlagBits {
5052     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5053     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5054     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5055     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
5056     VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5057 } VkExternalFenceFeatureFlagBits;
5058 typedef VkFlags VkExternalFenceFeatureFlags;
5059 
5060 typedef enum VkFenceImportFlagBits {
5061     VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
5062     VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
5063     VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5064 } VkFenceImportFlagBits;
5065 typedef VkFlags VkFenceImportFlags;
5066 
5067 typedef enum VkSemaphoreImportFlagBits {
5068     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
5069     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
5070     VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5071 } VkSemaphoreImportFlagBits;
5072 typedef VkFlags VkSemaphoreImportFlags;
5073 
5074 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
5075     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5076     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5077     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5078     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5079     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5080     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5081     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5082     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5083     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5084     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5085     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5086     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5087     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5088 } VkExternalSemaphoreHandleTypeFlagBits;
5089 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5090 
5091 typedef enum VkExternalSemaphoreFeatureFlagBits {
5092     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5093     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5094     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5095     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5096     VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5097 } VkExternalSemaphoreFeatureFlagBits;
5098 typedef VkFlags VkExternalSemaphoreFeatureFlags;
5099 typedef struct VkPhysicalDeviceSubgroupProperties {
5100     VkStructureType           sType;
5101     void*                     pNext;
5102     uint32_t                  subgroupSize;
5103     VkShaderStageFlags        supportedStages;
5104     VkSubgroupFeatureFlags    supportedOperations;
5105     VkBool32                  quadOperationsInAllStages;
5106 } VkPhysicalDeviceSubgroupProperties;
5107 
5108 typedef struct VkBindBufferMemoryInfo {
5109     VkStructureType    sType;
5110     const void*        pNext;
5111     VkBuffer           buffer;
5112     VkDeviceMemory     memory;
5113     VkDeviceSize       memoryOffset;
5114 } VkBindBufferMemoryInfo;
5115 
5116 typedef struct VkBindImageMemoryInfo {
5117     VkStructureType    sType;
5118     const void*        pNext;
5119     VkImage            image;
5120     VkDeviceMemory     memory;
5121     VkDeviceSize       memoryOffset;
5122 } VkBindImageMemoryInfo;
5123 
5124 typedef struct VkPhysicalDevice16BitStorageFeatures {
5125     VkStructureType    sType;
5126     void*              pNext;
5127     VkBool32           storageBuffer16BitAccess;
5128     VkBool32           uniformAndStorageBuffer16BitAccess;
5129     VkBool32           storagePushConstant16;
5130     VkBool32           storageInputOutput16;
5131 } VkPhysicalDevice16BitStorageFeatures;
5132 
5133 typedef struct VkMemoryDedicatedRequirements {
5134     VkStructureType    sType;
5135     void*              pNext;
5136     VkBool32           prefersDedicatedAllocation;
5137     VkBool32           requiresDedicatedAllocation;
5138 } VkMemoryDedicatedRequirements;
5139 
5140 typedef struct VkMemoryDedicatedAllocateInfo {
5141     VkStructureType    sType;
5142     const void*        pNext;
5143     VkImage            image;
5144     VkBuffer           buffer;
5145 } VkMemoryDedicatedAllocateInfo;
5146 
5147 typedef struct VkMemoryAllocateFlagsInfo {
5148     VkStructureType          sType;
5149     const void*              pNext;
5150     VkMemoryAllocateFlags    flags;
5151     uint32_t                 deviceMask;
5152 } VkMemoryAllocateFlagsInfo;
5153 
5154 typedef struct VkDeviceGroupRenderPassBeginInfo {
5155     VkStructureType    sType;
5156     const void*        pNext;
5157     uint32_t           deviceMask;
5158     uint32_t           deviceRenderAreaCount;
5159     const VkRect2D*    pDeviceRenderAreas;
5160 } VkDeviceGroupRenderPassBeginInfo;
5161 
5162 typedef struct VkDeviceGroupCommandBufferBeginInfo {
5163     VkStructureType    sType;
5164     const void*        pNext;
5165     uint32_t           deviceMask;
5166 } VkDeviceGroupCommandBufferBeginInfo;
5167 
5168 typedef struct VkDeviceGroupSubmitInfo {
5169     VkStructureType    sType;
5170     const void*        pNext;
5171     uint32_t           waitSemaphoreCount;
5172     const uint32_t*    pWaitSemaphoreDeviceIndices;
5173     uint32_t           commandBufferCount;
5174     const uint32_t*    pCommandBufferDeviceMasks;
5175     uint32_t           signalSemaphoreCount;
5176     const uint32_t*    pSignalSemaphoreDeviceIndices;
5177 } VkDeviceGroupSubmitInfo;
5178 
5179 typedef struct VkDeviceGroupBindSparseInfo {
5180     VkStructureType    sType;
5181     const void*        pNext;
5182     uint32_t           resourceDeviceIndex;
5183     uint32_t           memoryDeviceIndex;
5184 } VkDeviceGroupBindSparseInfo;
5185 
5186 typedef struct VkBindBufferMemoryDeviceGroupInfo {
5187     VkStructureType    sType;
5188     const void*        pNext;
5189     uint32_t           deviceIndexCount;
5190     const uint32_t*    pDeviceIndices;
5191 } VkBindBufferMemoryDeviceGroupInfo;
5192 
5193 typedef struct VkBindImageMemoryDeviceGroupInfo {
5194     VkStructureType    sType;
5195     const void*        pNext;
5196     uint32_t           deviceIndexCount;
5197     const uint32_t*    pDeviceIndices;
5198     uint32_t           splitInstanceBindRegionCount;
5199     const VkRect2D*    pSplitInstanceBindRegions;
5200 } VkBindImageMemoryDeviceGroupInfo;
5201 
5202 typedef struct VkPhysicalDeviceGroupProperties {
5203     VkStructureType     sType;
5204     void*               pNext;
5205     uint32_t            physicalDeviceCount;
5206     VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5207     VkBool32            subsetAllocation;
5208 } VkPhysicalDeviceGroupProperties;
5209 
5210 typedef struct VkDeviceGroupDeviceCreateInfo {
5211     VkStructureType            sType;
5212     const void*                pNext;
5213     uint32_t                   physicalDeviceCount;
5214     const VkPhysicalDevice*    pPhysicalDevices;
5215 } VkDeviceGroupDeviceCreateInfo;
5216 
5217 typedef struct VkBufferMemoryRequirementsInfo2 {
5218     VkStructureType    sType;
5219     const void*        pNext;
5220     VkBuffer           buffer;
5221 } VkBufferMemoryRequirementsInfo2;
5222 
5223 typedef struct VkImageMemoryRequirementsInfo2 {
5224     VkStructureType    sType;
5225     const void*        pNext;
5226     VkImage            image;
5227 } VkImageMemoryRequirementsInfo2;
5228 
5229 typedef struct VkImageSparseMemoryRequirementsInfo2 {
5230     VkStructureType    sType;
5231     const void*        pNext;
5232     VkImage            image;
5233 } VkImageSparseMemoryRequirementsInfo2;
5234 
5235 typedef struct VkMemoryRequirements2 {
5236     VkStructureType         sType;
5237     void*                   pNext;
5238     VkMemoryRequirements    memoryRequirements;
5239 } VkMemoryRequirements2;
5240 
5241 typedef struct VkSparseImageMemoryRequirements2 {
5242     VkStructureType                    sType;
5243     void*                              pNext;
5244     VkSparseImageMemoryRequirements    memoryRequirements;
5245 } VkSparseImageMemoryRequirements2;
5246 
5247 typedef struct VkPhysicalDeviceFeatures2 {
5248     VkStructureType             sType;
5249     void*                       pNext;
5250     VkPhysicalDeviceFeatures    features;
5251 } VkPhysicalDeviceFeatures2;
5252 
5253 typedef struct VkPhysicalDeviceProperties2 {
5254     VkStructureType               sType;
5255     void*                         pNext;
5256     VkPhysicalDeviceProperties    properties;
5257 } VkPhysicalDeviceProperties2;
5258 
5259 typedef struct VkFormatProperties2 {
5260     VkStructureType       sType;
5261     void*                 pNext;
5262     VkFormatProperties    formatProperties;
5263 } VkFormatProperties2;
5264 
5265 typedef struct VkImageFormatProperties2 {
5266     VkStructureType            sType;
5267     void*                      pNext;
5268     VkImageFormatProperties    imageFormatProperties;
5269 } VkImageFormatProperties2;
5270 
5271 typedef struct VkPhysicalDeviceImageFormatInfo2 {
5272     VkStructureType       sType;
5273     const void*           pNext;
5274     VkFormat              format;
5275     VkImageType           type;
5276     VkImageTiling         tiling;
5277     VkImageUsageFlags     usage;
5278     VkImageCreateFlags    flags;
5279 } VkPhysicalDeviceImageFormatInfo2;
5280 
5281 typedef struct VkQueueFamilyProperties2 {
5282     VkStructureType            sType;
5283     void*                      pNext;
5284     VkQueueFamilyProperties    queueFamilyProperties;
5285 } VkQueueFamilyProperties2;
5286 
5287 typedef struct VkPhysicalDeviceMemoryProperties2 {
5288     VkStructureType                     sType;
5289     void*                               pNext;
5290     VkPhysicalDeviceMemoryProperties    memoryProperties;
5291 } VkPhysicalDeviceMemoryProperties2;
5292 
5293 typedef struct VkSparseImageFormatProperties2 {
5294     VkStructureType                  sType;
5295     void*                            pNext;
5296     VkSparseImageFormatProperties    properties;
5297 } VkSparseImageFormatProperties2;
5298 
5299 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
5300     VkStructureType          sType;
5301     const void*              pNext;
5302     VkFormat                 format;
5303     VkImageType              type;
5304     VkSampleCountFlagBits    samples;
5305     VkImageUsageFlags        usage;
5306     VkImageTiling            tiling;
5307 } VkPhysicalDeviceSparseImageFormatInfo2;
5308 
5309 typedef struct VkPhysicalDevicePointClippingProperties {
5310     VkStructureType            sType;
5311     void*                      pNext;
5312     VkPointClippingBehavior    pointClippingBehavior;
5313 } VkPhysicalDevicePointClippingProperties;
5314 
5315 typedef struct VkInputAttachmentAspectReference {
5316     uint32_t              subpass;
5317     uint32_t              inputAttachmentIndex;
5318     VkImageAspectFlags    aspectMask;
5319 } VkInputAttachmentAspectReference;
5320 
5321 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
5322     VkStructureType                            sType;
5323     const void*                                pNext;
5324     uint32_t                                   aspectReferenceCount;
5325     const VkInputAttachmentAspectReference*    pAspectReferences;
5326 } VkRenderPassInputAttachmentAspectCreateInfo;
5327 
5328 typedef struct VkImageViewUsageCreateInfo {
5329     VkStructureType      sType;
5330     const void*          pNext;
5331     VkImageUsageFlags    usage;
5332 } VkImageViewUsageCreateInfo;
5333 
5334 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
5335     VkStructureType               sType;
5336     const void*                   pNext;
5337     VkTessellationDomainOrigin    domainOrigin;
5338 } VkPipelineTessellationDomainOriginStateCreateInfo;
5339 
5340 typedef struct VkRenderPassMultiviewCreateInfo {
5341     VkStructureType    sType;
5342     const void*        pNext;
5343     uint32_t           subpassCount;
5344     const uint32_t*    pViewMasks;
5345     uint32_t           dependencyCount;
5346     const int32_t*     pViewOffsets;
5347     uint32_t           correlationMaskCount;
5348     const uint32_t*    pCorrelationMasks;
5349 } VkRenderPassMultiviewCreateInfo;
5350 
5351 typedef struct VkPhysicalDeviceMultiviewFeatures {
5352     VkStructureType    sType;
5353     void*              pNext;
5354     VkBool32           multiview;
5355     VkBool32           multiviewGeometryShader;
5356     VkBool32           multiviewTessellationShader;
5357 } VkPhysicalDeviceMultiviewFeatures;
5358 
5359 typedef struct VkPhysicalDeviceMultiviewProperties {
5360     VkStructureType    sType;
5361     void*              pNext;
5362     uint32_t           maxMultiviewViewCount;
5363     uint32_t           maxMultiviewInstanceIndex;
5364 } VkPhysicalDeviceMultiviewProperties;
5365 
5366 typedef struct VkPhysicalDeviceVariablePointersFeatures {
5367     VkStructureType    sType;
5368     void*              pNext;
5369     VkBool32           variablePointersStorageBuffer;
5370     VkBool32           variablePointers;
5371 } VkPhysicalDeviceVariablePointersFeatures;
5372 
5373 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
5374 
5375 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
5376     VkStructureType    sType;
5377     void*              pNext;
5378     VkBool32           protectedMemory;
5379 } VkPhysicalDeviceProtectedMemoryFeatures;
5380 
5381 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
5382     VkStructureType    sType;
5383     void*              pNext;
5384     VkBool32           protectedNoFault;
5385 } VkPhysicalDeviceProtectedMemoryProperties;
5386 
5387 typedef struct VkDeviceQueueInfo2 {
5388     VkStructureType             sType;
5389     const void*                 pNext;
5390     VkDeviceQueueCreateFlags    flags;
5391     uint32_t                    queueFamilyIndex;
5392     uint32_t                    queueIndex;
5393 } VkDeviceQueueInfo2;
5394 
5395 typedef struct VkProtectedSubmitInfo {
5396     VkStructureType    sType;
5397     const void*        pNext;
5398     VkBool32           protectedSubmit;
5399 } VkProtectedSubmitInfo;
5400 
5401 typedef struct VkSamplerYcbcrConversionCreateInfo {
5402     VkStructureType                  sType;
5403     const void*                      pNext;
5404     VkFormat                         format;
5405     VkSamplerYcbcrModelConversion    ycbcrModel;
5406     VkSamplerYcbcrRange              ycbcrRange;
5407     VkComponentMapping               components;
5408     VkChromaLocation                 xChromaOffset;
5409     VkChromaLocation                 yChromaOffset;
5410     VkFilter                         chromaFilter;
5411     VkBool32                         forceExplicitReconstruction;
5412 } VkSamplerYcbcrConversionCreateInfo;
5413 
5414 typedef struct VkSamplerYcbcrConversionInfo {
5415     VkStructureType             sType;
5416     const void*                 pNext;
5417     VkSamplerYcbcrConversion    conversion;
5418 } VkSamplerYcbcrConversionInfo;
5419 
5420 typedef struct VkBindImagePlaneMemoryInfo {
5421     VkStructureType          sType;
5422     const void*              pNext;
5423     VkImageAspectFlagBits    planeAspect;
5424 } VkBindImagePlaneMemoryInfo;
5425 
5426 typedef struct VkImagePlaneMemoryRequirementsInfo {
5427     VkStructureType          sType;
5428     const void*              pNext;
5429     VkImageAspectFlagBits    planeAspect;
5430 } VkImagePlaneMemoryRequirementsInfo;
5431 
5432 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5433     VkStructureType    sType;
5434     void*              pNext;
5435     VkBool32           samplerYcbcrConversion;
5436 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
5437 
5438 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
5439     VkStructureType    sType;
5440     void*              pNext;
5441     uint32_t           combinedImageSamplerDescriptorCount;
5442 } VkSamplerYcbcrConversionImageFormatProperties;
5443 
5444 typedef struct VkDescriptorUpdateTemplateEntry {
5445     uint32_t            dstBinding;
5446     uint32_t            dstArrayElement;
5447     uint32_t            descriptorCount;
5448     VkDescriptorType    descriptorType;
5449     size_t              offset;
5450     size_t              stride;
5451 } VkDescriptorUpdateTemplateEntry;
5452 
5453 typedef struct VkDescriptorUpdateTemplateCreateInfo {
5454     VkStructureType                           sType;
5455     const void*                               pNext;
5456     VkDescriptorUpdateTemplateCreateFlags     flags;
5457     uint32_t                                  descriptorUpdateEntryCount;
5458     const VkDescriptorUpdateTemplateEntry*    pDescriptorUpdateEntries;
5459     VkDescriptorUpdateTemplateType            templateType;
5460     VkDescriptorSetLayout                     descriptorSetLayout;
5461     VkPipelineBindPoint                       pipelineBindPoint;
5462     VkPipelineLayout                          pipelineLayout;
5463     uint32_t                                  set;
5464 } VkDescriptorUpdateTemplateCreateInfo;
5465 
5466 typedef struct VkExternalMemoryProperties {
5467     VkExternalMemoryFeatureFlags       externalMemoryFeatures;
5468     VkExternalMemoryHandleTypeFlags    exportFromImportedHandleTypes;
5469     VkExternalMemoryHandleTypeFlags    compatibleHandleTypes;
5470 } VkExternalMemoryProperties;
5471 
5472 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
5473     VkStructureType                       sType;
5474     const void*                           pNext;
5475     VkExternalMemoryHandleTypeFlagBits    handleType;
5476 } VkPhysicalDeviceExternalImageFormatInfo;
5477 
5478 typedef struct VkExternalImageFormatProperties {
5479     VkStructureType               sType;
5480     void*                         pNext;
5481     VkExternalMemoryProperties    externalMemoryProperties;
5482 } VkExternalImageFormatProperties;
5483 
5484 typedef struct VkPhysicalDeviceExternalBufferInfo {
5485     VkStructureType                       sType;
5486     const void*                           pNext;
5487     VkBufferCreateFlags                   flags;
5488     VkBufferUsageFlags                    usage;
5489     VkExternalMemoryHandleTypeFlagBits    handleType;
5490 } VkPhysicalDeviceExternalBufferInfo;
5491 
5492 typedef struct VkExternalBufferProperties {
5493     VkStructureType               sType;
5494     void*                         pNext;
5495     VkExternalMemoryProperties    externalMemoryProperties;
5496 } VkExternalBufferProperties;
5497 
5498 typedef struct VkPhysicalDeviceIDProperties {
5499     VkStructureType    sType;
5500     void*              pNext;
5501     uint8_t            deviceUUID[VK_UUID_SIZE];
5502     uint8_t            driverUUID[VK_UUID_SIZE];
5503     uint8_t            deviceLUID[VK_LUID_SIZE];
5504     uint32_t           deviceNodeMask;
5505     VkBool32           deviceLUIDValid;
5506 } VkPhysicalDeviceIDProperties;
5507 
5508 typedef struct VkExternalMemoryImageCreateInfo {
5509     VkStructureType                    sType;
5510     const void*                        pNext;
5511     VkExternalMemoryHandleTypeFlags    handleTypes;
5512 } VkExternalMemoryImageCreateInfo;
5513 
5514 typedef struct VkExternalMemoryBufferCreateInfo {
5515     VkStructureType                    sType;
5516     const void*                        pNext;
5517     VkExternalMemoryHandleTypeFlags    handleTypes;
5518 } VkExternalMemoryBufferCreateInfo;
5519 
5520 typedef struct VkExportMemoryAllocateInfo {
5521     VkStructureType                    sType;
5522     const void*                        pNext;
5523     VkExternalMemoryHandleTypeFlags    handleTypes;
5524 } VkExportMemoryAllocateInfo;
5525 
5526 typedef struct VkPhysicalDeviceExternalFenceInfo {
5527     VkStructureType                      sType;
5528     const void*                          pNext;
5529     VkExternalFenceHandleTypeFlagBits    handleType;
5530 } VkPhysicalDeviceExternalFenceInfo;
5531 
5532 typedef struct VkExternalFenceProperties {
5533     VkStructureType                   sType;
5534     void*                             pNext;
5535     VkExternalFenceHandleTypeFlags    exportFromImportedHandleTypes;
5536     VkExternalFenceHandleTypeFlags    compatibleHandleTypes;
5537     VkExternalFenceFeatureFlags       externalFenceFeatures;
5538 } VkExternalFenceProperties;
5539 
5540 typedef struct VkExportFenceCreateInfo {
5541     VkStructureType                   sType;
5542     const void*                       pNext;
5543     VkExternalFenceHandleTypeFlags    handleTypes;
5544 } VkExportFenceCreateInfo;
5545 
5546 typedef struct VkExportSemaphoreCreateInfo {
5547     VkStructureType                       sType;
5548     const void*                           pNext;
5549     VkExternalSemaphoreHandleTypeFlags    handleTypes;
5550 } VkExportSemaphoreCreateInfo;
5551 
5552 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
5553     VkStructureType                          sType;
5554     const void*                              pNext;
5555     VkExternalSemaphoreHandleTypeFlagBits    handleType;
5556 } VkPhysicalDeviceExternalSemaphoreInfo;
5557 
5558 typedef struct VkExternalSemaphoreProperties {
5559     VkStructureType                       sType;
5560     void*                                 pNext;
5561     VkExternalSemaphoreHandleTypeFlags    exportFromImportedHandleTypes;
5562     VkExternalSemaphoreHandleTypeFlags    compatibleHandleTypes;
5563     VkExternalSemaphoreFeatureFlags       externalSemaphoreFeatures;
5564 } VkExternalSemaphoreProperties;
5565 
5566 typedef struct VkPhysicalDeviceMaintenance3Properties {
5567     VkStructureType    sType;
5568     void*              pNext;
5569     uint32_t           maxPerSetDescriptors;
5570     VkDeviceSize       maxMemoryAllocationSize;
5571 } VkPhysicalDeviceMaintenance3Properties;
5572 
5573 typedef struct VkDescriptorSetLayoutSupport {
5574     VkStructureType    sType;
5575     void*              pNext;
5576     VkBool32           supported;
5577 } VkDescriptorSetLayoutSupport;
5578 
5579 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
5580     VkStructureType    sType;
5581     void*              pNext;
5582     VkBool32           shaderDrawParameters;
5583 } VkPhysicalDeviceShaderDrawParametersFeatures;
5584 
5585 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
5586 
5587 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
5588 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
5589 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
5590 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
5591 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
5592 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);
5593 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
5594 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5595 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5596 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
5597 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
5598 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
5599 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
5600 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
5601 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
5602 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
5603 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
5604 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
5605 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
5606 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
5607 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
5608 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
5609 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
5610 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
5611 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
5612 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
5613 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
5614 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
5615 
5616 #ifndef VK_NO_PROTOTYPES
5617 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
5618     uint32_t*                                   pApiVersion);
5619 
5620 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
5621     VkDevice                                    device,
5622     uint32_t                                    bindInfoCount,
5623     const VkBindBufferMemoryInfo*               pBindInfos);
5624 
5625 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
5626     VkDevice                                    device,
5627     uint32_t                                    bindInfoCount,
5628     const VkBindImageMemoryInfo*                pBindInfos);
5629 
5630 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
5631     VkDevice                                    device,
5632     uint32_t                                    heapIndex,
5633     uint32_t                                    localDeviceIndex,
5634     uint32_t                                    remoteDeviceIndex,
5635     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
5636 
5637 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
5638     VkCommandBuffer                             commandBuffer,
5639     uint32_t                                    deviceMask);
5640 
5641 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
5642     VkCommandBuffer                             commandBuffer,
5643     uint32_t                                    baseGroupX,
5644     uint32_t                                    baseGroupY,
5645     uint32_t                                    baseGroupZ,
5646     uint32_t                                    groupCountX,
5647     uint32_t                                    groupCountY,
5648     uint32_t                                    groupCountZ);
5649 
5650 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
5651     VkInstance                                  instance,
5652     uint32_t*                                   pPhysicalDeviceGroupCount,
5653     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
5654 
5655 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
5656     VkDevice                                    device,
5657     const VkImageMemoryRequirementsInfo2*       pInfo,
5658     VkMemoryRequirements2*                      pMemoryRequirements);
5659 
5660 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
5661     VkDevice                                    device,
5662     const VkBufferMemoryRequirementsInfo2*      pInfo,
5663     VkMemoryRequirements2*                      pMemoryRequirements);
5664 
5665 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
5666     VkDevice                                    device,
5667     const VkImageSparseMemoryRequirementsInfo2* pInfo,
5668     uint32_t*                                   pSparseMemoryRequirementCount,
5669     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
5670 
5671 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
5672     VkPhysicalDevice                            physicalDevice,
5673     VkPhysicalDeviceFeatures2*                  pFeatures);
5674 
5675 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
5676     VkPhysicalDevice                            physicalDevice,
5677     VkPhysicalDeviceProperties2*                pProperties);
5678 
5679 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
5680     VkPhysicalDevice                            physicalDevice,
5681     VkFormat                                    format,
5682     VkFormatProperties2*                        pFormatProperties);
5683 
5684 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
5685     VkPhysicalDevice                            physicalDevice,
5686     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
5687     VkImageFormatProperties2*                   pImageFormatProperties);
5688 
5689 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
5690     VkPhysicalDevice                            physicalDevice,
5691     uint32_t*                                   pQueueFamilyPropertyCount,
5692     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
5693 
5694 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
5695     VkPhysicalDevice                            physicalDevice,
5696     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
5697 
5698 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
5699     VkPhysicalDevice                            physicalDevice,
5700     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
5701     uint32_t*                                   pPropertyCount,
5702     VkSparseImageFormatProperties2*             pProperties);
5703 
5704 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
5705     VkDevice                                    device,
5706     VkCommandPool                               commandPool,
5707     VkCommandPoolTrimFlags                      flags);
5708 
5709 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
5710     VkDevice                                    device,
5711     const VkDeviceQueueInfo2*                   pQueueInfo,
5712     VkQueue*                                    pQueue);
5713 
5714 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
5715     VkDevice                                    device,
5716     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
5717     const VkAllocationCallbacks*                pAllocator,
5718     VkSamplerYcbcrConversion*                   pYcbcrConversion);
5719 
5720 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
5721     VkDevice                                    device,
5722     VkSamplerYcbcrConversion                    ycbcrConversion,
5723     const VkAllocationCallbacks*                pAllocator);
5724 
5725 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
5726     VkDevice                                    device,
5727     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
5728     const VkAllocationCallbacks*                pAllocator,
5729     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
5730 
5731 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
5732     VkDevice                                    device,
5733     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
5734     const VkAllocationCallbacks*                pAllocator);
5735 
5736 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
5737     VkDevice                                    device,
5738     VkDescriptorSet                             descriptorSet,
5739     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
5740     const void*                                 pData);
5741 
5742 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
5743     VkPhysicalDevice                            physicalDevice,
5744     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
5745     VkExternalBufferProperties*                 pExternalBufferProperties);
5746 
5747 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
5748     VkPhysicalDevice                            physicalDevice,
5749     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
5750     VkExternalFenceProperties*                  pExternalFenceProperties);
5751 
5752 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
5753     VkPhysicalDevice                            physicalDevice,
5754     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
5755     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
5756 
5757 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
5758     VkDevice                                    device,
5759     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
5760     VkDescriptorSetLayoutSupport*               pSupport);
5761 #endif
5762 
5763 
5764 // VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
5765 #define VK_VERSION_1_2 1
5766 // Vulkan 1.2 version number
5767 #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
5768 
5769 #define VK_MAX_DRIVER_NAME_SIZE           256U
5770 #define VK_MAX_DRIVER_INFO_SIZE           256U
5771 
5772 typedef enum VkDriverId
5773 {
5774 	VK_DRIVER_ID_AMD_PROPRIETARY = 1,
5775 	VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
5776 	VK_DRIVER_ID_MESA_RADV = 3,
5777 	VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
5778 	VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
5779 	VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
5780 	VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
5781 	VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
5782 	VK_DRIVER_ID_ARM_PROPRIETARY = 9,
5783 	VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
5784 	VK_DRIVER_ID_GGP_PROPRIETARY = 11,
5785 	VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
5786 	VK_DRIVER_ID_MESA_LLVMPIPE = 13,
5787 	VK_DRIVER_ID_MOLTENVK = 14,
5788 	VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
5789 	VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
5790 	VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
5791 	VK_DRIVER_ID_MESA_TURNIP = 18,
5792 	VK_DRIVER_ID_MESA_V3DV = 19,
5793 	VK_DRIVER_ID_MESA_PANVK = 20,
5794 	VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
5795 	VK_DRIVER_ID_MESA_VENUS = 22,
5796 	VK_DRIVER_ID_MESA_DOZEN = 23,
5797 	VK_DRIVER_ID_MESA_NVK = 24,
5798 	VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
5799 	VK_DRIVER_ID_MESA_AGXV = 26,
5800 	VK_DRIVER_ID_RESERVED_27 = 27,
5801 	VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
5802 	VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
5803 	VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
5804 	VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
5805 	VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
5806 	VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
5807 	VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
5808 	VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
5809 	VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
5810 	VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
5811 	VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
5812 	VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
5813 	VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
5814 } VkDriverId;
5815 
5816 typedef enum VkShaderFloatControlsIndependence {
5817     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
5818     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
5819     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
5820     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
5821     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
5822     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
5823     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
5824 } VkShaderFloatControlsIndependence;
5825 
5826 typedef enum VkSamplerReductionMode {
5827     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
5828     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
5829     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
5830     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
5831     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
5832     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
5833     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
5834     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
5835 } VkSamplerReductionMode;
5836 
5837 typedef enum VkSemaphoreType {
5838     VK_SEMAPHORE_TYPE_BINARY = 0,
5839     VK_SEMAPHORE_TYPE_TIMELINE = 1,
5840     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
5841     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
5842     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
5843 } VkSemaphoreType;
5844 
5845 typedef enum VkResolveModeFlagBits {
5846     VK_RESOLVE_MODE_NONE = 0,
5847     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
5848     VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
5849     VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
5850     VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
5851     VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 0x00000010,
5852     VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
5853     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
5854     VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
5855     VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
5856     VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
5857     VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5858 } VkResolveModeFlagBits;
5859 typedef VkFlags VkResolveModeFlags;
5860 
5861 typedef enum VkDescriptorBindingFlagBits {
5862     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
5863     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
5864     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
5865     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
5866     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
5867     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
5868     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
5869     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
5870     VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5871 } VkDescriptorBindingFlagBits;
5872 typedef VkFlags VkDescriptorBindingFlags;
5873 
5874 typedef enum VkSemaphoreWaitFlagBits {
5875     VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
5876     VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
5877     VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5878 } VkSemaphoreWaitFlagBits;
5879 typedef VkFlags VkSemaphoreWaitFlags;
5880 typedef struct VkPhysicalDeviceVulkan11Features {
5881     VkStructureType    sType;
5882     void*              pNext;
5883     VkBool32           storageBuffer16BitAccess;
5884     VkBool32           uniformAndStorageBuffer16BitAccess;
5885     VkBool32           storagePushConstant16;
5886     VkBool32           storageInputOutput16;
5887     VkBool32           multiview;
5888     VkBool32           multiviewGeometryShader;
5889     VkBool32           multiviewTessellationShader;
5890     VkBool32           variablePointersStorageBuffer;
5891     VkBool32           variablePointers;
5892     VkBool32           protectedMemory;
5893     VkBool32           samplerYcbcrConversion;
5894     VkBool32           shaderDrawParameters;
5895 } VkPhysicalDeviceVulkan11Features;
5896 
5897 typedef struct VkPhysicalDeviceVulkan11Properties {
5898     VkStructureType            sType;
5899     void*                      pNext;
5900     uint8_t                    deviceUUID[VK_UUID_SIZE];
5901     uint8_t                    driverUUID[VK_UUID_SIZE];
5902     uint8_t                    deviceLUID[VK_LUID_SIZE];
5903     uint32_t                   deviceNodeMask;
5904     VkBool32                   deviceLUIDValid;
5905     uint32_t                   subgroupSize;
5906     VkShaderStageFlags         subgroupSupportedStages;
5907     VkSubgroupFeatureFlags     subgroupSupportedOperations;
5908     VkBool32                   subgroupQuadOperationsInAllStages;
5909     VkPointClippingBehavior    pointClippingBehavior;
5910     uint32_t                   maxMultiviewViewCount;
5911     uint32_t                   maxMultiviewInstanceIndex;
5912     VkBool32                   protectedNoFault;
5913     uint32_t                   maxPerSetDescriptors;
5914     VkDeviceSize               maxMemoryAllocationSize;
5915 } VkPhysicalDeviceVulkan11Properties;
5916 
5917 typedef struct VkPhysicalDeviceVulkan12Features {
5918     VkStructureType    sType;
5919     void*              pNext;
5920     VkBool32           samplerMirrorClampToEdge;
5921     VkBool32           drawIndirectCount;
5922     VkBool32           storageBuffer8BitAccess;
5923     VkBool32           uniformAndStorageBuffer8BitAccess;
5924     VkBool32           storagePushConstant8;
5925     VkBool32           shaderBufferInt64Atomics;
5926     VkBool32           shaderSharedInt64Atomics;
5927     VkBool32           shaderFloat16;
5928     VkBool32           shaderInt8;
5929     VkBool32           descriptorIndexing;
5930     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
5931     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
5932     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
5933     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
5934     VkBool32           shaderSampledImageArrayNonUniformIndexing;
5935     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
5936     VkBool32           shaderStorageImageArrayNonUniformIndexing;
5937     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
5938     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
5939     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
5940     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
5941     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
5942     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
5943     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
5944     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
5945     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
5946     VkBool32           descriptorBindingUpdateUnusedWhilePending;
5947     VkBool32           descriptorBindingPartiallyBound;
5948     VkBool32           descriptorBindingVariableDescriptorCount;
5949     VkBool32           runtimeDescriptorArray;
5950     VkBool32           samplerFilterMinmax;
5951     VkBool32           scalarBlockLayout;
5952     VkBool32           imagelessFramebuffer;
5953     VkBool32           uniformBufferStandardLayout;
5954     VkBool32           shaderSubgroupExtendedTypes;
5955     VkBool32           separateDepthStencilLayouts;
5956     VkBool32           hostQueryReset;
5957     VkBool32           timelineSemaphore;
5958     VkBool32           bufferDeviceAddress;
5959     VkBool32           bufferDeviceAddressCaptureReplay;
5960     VkBool32           bufferDeviceAddressMultiDevice;
5961     VkBool32           vulkanMemoryModel;
5962     VkBool32           vulkanMemoryModelDeviceScope;
5963     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
5964     VkBool32           shaderOutputViewportIndex;
5965     VkBool32           shaderOutputLayer;
5966     VkBool32           subgroupBroadcastDynamicId;
5967 } VkPhysicalDeviceVulkan12Features;
5968 
5969 typedef struct VkConformanceVersion {
5970     uint8_t    major;
5971     uint8_t    minor;
5972     uint8_t    subminor;
5973     uint8_t    patch;
5974 } VkConformanceVersion;
5975 
5976 typedef struct VkPhysicalDeviceVulkan12Properties {
5977     VkStructureType                      sType;
5978     void*                                pNext;
5979     VkDriverId                           driverID;
5980     char                                 driverName[VK_MAX_DRIVER_NAME_SIZE];
5981     char                                 driverInfo[VK_MAX_DRIVER_INFO_SIZE];
5982     VkConformanceVersion                 conformanceVersion;
5983     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
5984     VkShaderFloatControlsIndependence    roundingModeIndependence;
5985     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
5986     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
5987     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
5988     VkBool32                             shaderDenormPreserveFloat16;
5989     VkBool32                             shaderDenormPreserveFloat32;
5990     VkBool32                             shaderDenormPreserveFloat64;
5991     VkBool32                             shaderDenormFlushToZeroFloat16;
5992     VkBool32                             shaderDenormFlushToZeroFloat32;
5993     VkBool32                             shaderDenormFlushToZeroFloat64;
5994     VkBool32                             shaderRoundingModeRTEFloat16;
5995     VkBool32                             shaderRoundingModeRTEFloat32;
5996     VkBool32                             shaderRoundingModeRTEFloat64;
5997     VkBool32                             shaderRoundingModeRTZFloat16;
5998     VkBool32                             shaderRoundingModeRTZFloat32;
5999     VkBool32                             shaderRoundingModeRTZFloat64;
6000     uint32_t                             maxUpdateAfterBindDescriptorsInAllPools;
6001     VkBool32                             shaderUniformBufferArrayNonUniformIndexingNative;
6002     VkBool32                             shaderSampledImageArrayNonUniformIndexingNative;
6003     VkBool32                             shaderStorageBufferArrayNonUniformIndexingNative;
6004     VkBool32                             shaderStorageImageArrayNonUniformIndexingNative;
6005     VkBool32                             shaderInputAttachmentArrayNonUniformIndexingNative;
6006     VkBool32                             robustBufferAccessUpdateAfterBind;
6007     VkBool32                             quadDivergentImplicitLod;
6008     uint32_t                             maxPerStageDescriptorUpdateAfterBindSamplers;
6009     uint32_t                             maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6010     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6011     uint32_t                             maxPerStageDescriptorUpdateAfterBindSampledImages;
6012     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageImages;
6013     uint32_t                             maxPerStageDescriptorUpdateAfterBindInputAttachments;
6014     uint32_t                             maxPerStageUpdateAfterBindResources;
6015     uint32_t                             maxDescriptorSetUpdateAfterBindSamplers;
6016     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffers;
6017     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6018     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffers;
6019     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6020     uint32_t                             maxDescriptorSetUpdateAfterBindSampledImages;
6021     uint32_t                             maxDescriptorSetUpdateAfterBindStorageImages;
6022     uint32_t                             maxDescriptorSetUpdateAfterBindInputAttachments;
6023     VkResolveModeFlags                   supportedDepthResolveModes;
6024     VkResolveModeFlags                   supportedStencilResolveModes;
6025     VkBool32                             independentResolveNone;
6026     VkBool32                             independentResolve;
6027     VkBool32                             filterMinmaxSingleComponentFormats;
6028     VkBool32                             filterMinmaxImageComponentMapping;
6029     uint64_t                             maxTimelineSemaphoreValueDifference;
6030     VkSampleCountFlags                   framebufferIntegerColorSampleCounts;
6031 } VkPhysicalDeviceVulkan12Properties;
6032 
6033 typedef struct VkImageFormatListCreateInfo {
6034     VkStructureType    sType;
6035     const void*        pNext;
6036     uint32_t           viewFormatCount;
6037     const VkFormat*    pViewFormats;
6038 } VkImageFormatListCreateInfo;
6039 
6040 typedef struct VkAttachmentDescription2 {
6041     VkStructureType                 sType;
6042     const void*                     pNext;
6043     VkAttachmentDescriptionFlags    flags;
6044     VkFormat                        format;
6045     VkSampleCountFlagBits           samples;
6046     VkAttachmentLoadOp              loadOp;
6047     VkAttachmentStoreOp             storeOp;
6048     VkAttachmentLoadOp              stencilLoadOp;
6049     VkAttachmentStoreOp             stencilStoreOp;
6050     VkImageLayout                   initialLayout;
6051     VkImageLayout                   finalLayout;
6052 } VkAttachmentDescription2;
6053 
6054 typedef struct VkAttachmentReference2 {
6055     VkStructureType       sType;
6056     const void*           pNext;
6057     uint32_t              attachment;
6058     VkImageLayout         layout;
6059     VkImageAspectFlags    aspectMask;
6060 } VkAttachmentReference2;
6061 
6062 typedef struct VkSubpassDescription2 {
6063     VkStructureType                  sType;
6064     const void*                      pNext;
6065     VkSubpassDescriptionFlags        flags;
6066     VkPipelineBindPoint              pipelineBindPoint;
6067     uint32_t                         viewMask;
6068     uint32_t                         inputAttachmentCount;
6069     const VkAttachmentReference2*    pInputAttachments;
6070     uint32_t                         colorAttachmentCount;
6071     const VkAttachmentReference2*    pColorAttachments;
6072     const VkAttachmentReference2*    pResolveAttachments;
6073     const VkAttachmentReference2*    pDepthStencilAttachment;
6074     uint32_t                         preserveAttachmentCount;
6075     const uint32_t*                  pPreserveAttachments;
6076 } VkSubpassDescription2;
6077 
6078 typedef struct VkSubpassDependency2 {
6079     VkStructureType         sType;
6080     const void*             pNext;
6081     uint32_t                srcSubpass;
6082     uint32_t                dstSubpass;
6083     VkPipelineStageFlags    srcStageMask;
6084     VkPipelineStageFlags    dstStageMask;
6085     VkAccessFlags           srcAccessMask;
6086     VkAccessFlags           dstAccessMask;
6087     VkDependencyFlags       dependencyFlags;
6088     int32_t                 viewOffset;
6089 } VkSubpassDependency2;
6090 
6091 typedef struct VkRenderPassCreateInfo2 {
6092     VkStructureType                    sType;
6093     const void*                        pNext;
6094     VkRenderPassCreateFlags            flags;
6095     uint32_t                           attachmentCount;
6096     const VkAttachmentDescription2*    pAttachments;
6097     uint32_t                           subpassCount;
6098     const VkSubpassDescription2*       pSubpasses;
6099     uint32_t                           dependencyCount;
6100     const VkSubpassDependency2*        pDependencies;
6101     uint32_t                           correlatedViewMaskCount;
6102     const uint32_t*                    pCorrelatedViewMasks;
6103 } VkRenderPassCreateInfo2;
6104 
6105 typedef struct VkSubpassBeginInfo {
6106     VkStructureType      sType;
6107     const void*          pNext;
6108     VkSubpassContents    contents;
6109 } VkSubpassBeginInfo;
6110 
6111 typedef struct VkSubpassEndInfo {
6112     VkStructureType    sType;
6113     const void*        pNext;
6114 } VkSubpassEndInfo;
6115 
6116 typedef struct VkPhysicalDevice8BitStorageFeatures {
6117     VkStructureType    sType;
6118     void*              pNext;
6119     VkBool32           storageBuffer8BitAccess;
6120     VkBool32           uniformAndStorageBuffer8BitAccess;
6121     VkBool32           storagePushConstant8;
6122 } VkPhysicalDevice8BitStorageFeatures;
6123 
6124 typedef struct VkPhysicalDeviceDriverProperties {
6125     VkStructureType         sType;
6126     void*                   pNext;
6127     VkDriverId              driverID;
6128     char                    driverName[VK_MAX_DRIVER_NAME_SIZE];
6129     char                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6130     VkConformanceVersion    conformanceVersion;
6131 } VkPhysicalDeviceDriverProperties;
6132 
6133 typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6134     VkStructureType    sType;
6135     void*              pNext;
6136     VkBool32           shaderBufferInt64Atomics;
6137     VkBool32           shaderSharedInt64Atomics;
6138 } VkPhysicalDeviceShaderAtomicInt64Features;
6139 
6140 typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6141     VkStructureType    sType;
6142     void*              pNext;
6143     VkBool32           shaderFloat16;
6144     VkBool32           shaderInt8;
6145 } VkPhysicalDeviceShaderFloat16Int8Features;
6146 
6147 typedef struct VkPhysicalDeviceFloatControlsProperties {
6148     VkStructureType                      sType;
6149     void*                                pNext;
6150     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
6151     VkShaderFloatControlsIndependence    roundingModeIndependence;
6152     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
6153     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
6154     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
6155     VkBool32                             shaderDenormPreserveFloat16;
6156     VkBool32                             shaderDenormPreserveFloat32;
6157     VkBool32                             shaderDenormPreserveFloat64;
6158     VkBool32                             shaderDenormFlushToZeroFloat16;
6159     VkBool32                             shaderDenormFlushToZeroFloat32;
6160     VkBool32                             shaderDenormFlushToZeroFloat64;
6161     VkBool32                             shaderRoundingModeRTEFloat16;
6162     VkBool32                             shaderRoundingModeRTEFloat32;
6163     VkBool32                             shaderRoundingModeRTEFloat64;
6164     VkBool32                             shaderRoundingModeRTZFloat16;
6165     VkBool32                             shaderRoundingModeRTZFloat32;
6166     VkBool32                             shaderRoundingModeRTZFloat64;
6167 } VkPhysicalDeviceFloatControlsProperties;
6168 
6169 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6170     VkStructureType                    sType;
6171     const void*                        pNext;
6172     uint32_t                           bindingCount;
6173     const VkDescriptorBindingFlags*    pBindingFlags;
6174 } VkDescriptorSetLayoutBindingFlagsCreateInfo;
6175 
6176 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6177     VkStructureType    sType;
6178     void*              pNext;
6179     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
6180     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
6181     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
6182     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
6183     VkBool32           shaderSampledImageArrayNonUniformIndexing;
6184     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
6185     VkBool32           shaderStorageImageArrayNonUniformIndexing;
6186     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
6187     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
6188     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
6189     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
6190     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
6191     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
6192     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
6193     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
6194     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
6195     VkBool32           descriptorBindingUpdateUnusedWhilePending;
6196     VkBool32           descriptorBindingPartiallyBound;
6197     VkBool32           descriptorBindingVariableDescriptorCount;
6198     VkBool32           runtimeDescriptorArray;
6199 } VkPhysicalDeviceDescriptorIndexingFeatures;
6200 
6201 typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6202     VkStructureType    sType;
6203     void*              pNext;
6204     uint32_t           maxUpdateAfterBindDescriptorsInAllPools;
6205     VkBool32           shaderUniformBufferArrayNonUniformIndexingNative;
6206     VkBool32           shaderSampledImageArrayNonUniformIndexingNative;
6207     VkBool32           shaderStorageBufferArrayNonUniformIndexingNative;
6208     VkBool32           shaderStorageImageArrayNonUniformIndexingNative;
6209     VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative;
6210     VkBool32           robustBufferAccessUpdateAfterBind;
6211     VkBool32           quadDivergentImplicitLod;
6212     uint32_t           maxPerStageDescriptorUpdateAfterBindSamplers;
6213     uint32_t           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6214     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6215     uint32_t           maxPerStageDescriptorUpdateAfterBindSampledImages;
6216     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageImages;
6217     uint32_t           maxPerStageDescriptorUpdateAfterBindInputAttachments;
6218     uint32_t           maxPerStageUpdateAfterBindResources;
6219     uint32_t           maxDescriptorSetUpdateAfterBindSamplers;
6220     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffers;
6221     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6222     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffers;
6223     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6224     uint32_t           maxDescriptorSetUpdateAfterBindSampledImages;
6225     uint32_t           maxDescriptorSetUpdateAfterBindStorageImages;
6226     uint32_t           maxDescriptorSetUpdateAfterBindInputAttachments;
6227 } VkPhysicalDeviceDescriptorIndexingProperties;
6228 
6229 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6230     VkStructureType    sType;
6231     const void*        pNext;
6232     uint32_t           descriptorSetCount;
6233     const uint32_t*    pDescriptorCounts;
6234 } VkDescriptorSetVariableDescriptorCountAllocateInfo;
6235 
6236 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6237     VkStructureType    sType;
6238     void*              pNext;
6239     uint32_t           maxVariableDescriptorCount;
6240 } VkDescriptorSetVariableDescriptorCountLayoutSupport;
6241 
6242 typedef struct VkSubpassDescriptionDepthStencilResolve {
6243     VkStructureType                  sType;
6244     const void*                      pNext;
6245     VkResolveModeFlagBits            depthResolveMode;
6246     VkResolveModeFlagBits            stencilResolveMode;
6247     const VkAttachmentReference2*    pDepthStencilResolveAttachment;
6248 } VkSubpassDescriptionDepthStencilResolve;
6249 
6250 typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6251     VkStructureType       sType;
6252     void*                 pNext;
6253     VkResolveModeFlags    supportedDepthResolveModes;
6254     VkResolveModeFlags    supportedStencilResolveModes;
6255     VkBool32              independentResolveNone;
6256     VkBool32              independentResolve;
6257 } VkPhysicalDeviceDepthStencilResolveProperties;
6258 
6259 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
6260     VkStructureType    sType;
6261     void*              pNext;
6262     VkBool32           scalarBlockLayout;
6263 } VkPhysicalDeviceScalarBlockLayoutFeatures;
6264 
6265 typedef struct VkImageStencilUsageCreateInfo {
6266     VkStructureType      sType;
6267     const void*          pNext;
6268     VkImageUsageFlags    stencilUsage;
6269 } VkImageStencilUsageCreateInfo;
6270 
6271 typedef struct VkSamplerReductionModeCreateInfo {
6272     VkStructureType           sType;
6273     const void*               pNext;
6274     VkSamplerReductionMode    reductionMode;
6275 } VkSamplerReductionModeCreateInfo;
6276 
6277 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
6278     VkStructureType    sType;
6279     void*              pNext;
6280     VkBool32           filterMinmaxSingleComponentFormats;
6281     VkBool32           filterMinmaxImageComponentMapping;
6282 } VkPhysicalDeviceSamplerFilterMinmaxProperties;
6283 
6284 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
6285     VkStructureType    sType;
6286     void*              pNext;
6287     VkBool32           vulkanMemoryModel;
6288     VkBool32           vulkanMemoryModelDeviceScope;
6289     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
6290 } VkPhysicalDeviceVulkanMemoryModelFeatures;
6291 
6292 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
6293     VkStructureType    sType;
6294     void*              pNext;
6295     VkBool32           imagelessFramebuffer;
6296 } VkPhysicalDeviceImagelessFramebufferFeatures;
6297 
6298 typedef struct VkFramebufferAttachmentImageInfo {
6299     VkStructureType       sType;
6300     const void*           pNext;
6301     VkImageCreateFlags    flags;
6302     VkImageUsageFlags     usage;
6303     uint32_t              width;
6304     uint32_t              height;
6305     uint32_t              layerCount;
6306     uint32_t              viewFormatCount;
6307     const VkFormat*       pViewFormats;
6308 } VkFramebufferAttachmentImageInfo;
6309 
6310 typedef struct VkFramebufferAttachmentsCreateInfo {
6311     VkStructureType                            sType;
6312     const void*                                pNext;
6313     uint32_t                                   attachmentImageInfoCount;
6314     const VkFramebufferAttachmentImageInfo*    pAttachmentImageInfos;
6315 } VkFramebufferAttachmentsCreateInfo;
6316 
6317 typedef struct VkRenderPassAttachmentBeginInfo {
6318     VkStructureType       sType;
6319     const void*           pNext;
6320     uint32_t              attachmentCount;
6321     const VkImageView*    pAttachments;
6322 } VkRenderPassAttachmentBeginInfo;
6323 
6324 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
6325     VkStructureType    sType;
6326     void*              pNext;
6327     VkBool32           uniformBufferStandardLayout;
6328 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
6329 
6330 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6331     VkStructureType    sType;
6332     void*              pNext;
6333     VkBool32           shaderSubgroupExtendedTypes;
6334 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6335 
6336 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
6337     VkStructureType    sType;
6338     void*              pNext;
6339     VkBool32           separateDepthStencilLayouts;
6340 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
6341 
6342 typedef struct VkAttachmentReferenceStencilLayout {
6343     VkStructureType    sType;
6344     void*              pNext;
6345     VkImageLayout      stencilLayout;
6346 } VkAttachmentReferenceStencilLayout;
6347 
6348 typedef struct VkAttachmentDescriptionStencilLayout {
6349     VkStructureType    sType;
6350     void*              pNext;
6351     VkImageLayout      stencilInitialLayout;
6352     VkImageLayout      stencilFinalLayout;
6353 } VkAttachmentDescriptionStencilLayout;
6354 
6355 typedef struct VkPhysicalDeviceHostQueryResetFeatures {
6356     VkStructureType    sType;
6357     void*              pNext;
6358     VkBool32           hostQueryReset;
6359 } VkPhysicalDeviceHostQueryResetFeatures;
6360 
6361 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
6362     VkStructureType    sType;
6363     void*              pNext;
6364     VkBool32           timelineSemaphore;
6365 } VkPhysicalDeviceTimelineSemaphoreFeatures;
6366 
6367 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
6368     VkStructureType    sType;
6369     void*              pNext;
6370     uint64_t           maxTimelineSemaphoreValueDifference;
6371 } VkPhysicalDeviceTimelineSemaphoreProperties;
6372 
6373 typedef struct VkSemaphoreTypeCreateInfo {
6374     VkStructureType    sType;
6375     const void*        pNext;
6376     VkSemaphoreType    semaphoreType;
6377     uint64_t           initialValue;
6378 } VkSemaphoreTypeCreateInfo;
6379 
6380 typedef struct VkTimelineSemaphoreSubmitInfo {
6381     VkStructureType    sType;
6382     const void*        pNext;
6383     uint32_t           waitSemaphoreValueCount;
6384     const uint64_t*    pWaitSemaphoreValues;
6385     uint32_t           signalSemaphoreValueCount;
6386     const uint64_t*    pSignalSemaphoreValues;
6387 } VkTimelineSemaphoreSubmitInfo;
6388 
6389 typedef struct VkSemaphoreWaitInfo {
6390     VkStructureType         sType;
6391     const void*             pNext;
6392     VkSemaphoreWaitFlags    flags;
6393     uint32_t                semaphoreCount;
6394     const VkSemaphore*      pSemaphores;
6395     const uint64_t*         pValues;
6396 } VkSemaphoreWaitInfo;
6397 
6398 typedef struct VkSemaphoreSignalInfo {
6399     VkStructureType    sType;
6400     const void*        pNext;
6401     VkSemaphore        semaphore;
6402     uint64_t           value;
6403 } VkSemaphoreSignalInfo;
6404 
6405 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
6406     VkStructureType    sType;
6407     void*              pNext;
6408     VkBool32           bufferDeviceAddress;
6409     VkBool32           bufferDeviceAddressCaptureReplay;
6410     VkBool32           bufferDeviceAddressMultiDevice;
6411 } VkPhysicalDeviceBufferDeviceAddressFeatures;
6412 
6413 typedef struct VkBufferDeviceAddressInfo {
6414     VkStructureType    sType;
6415     const void*        pNext;
6416     VkBuffer           buffer;
6417 } VkBufferDeviceAddressInfo;
6418 
6419 typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
6420     VkStructureType    sType;
6421     const void*        pNext;
6422     uint64_t           opaqueCaptureAddress;
6423 } VkBufferOpaqueCaptureAddressCreateInfo;
6424 
6425 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
6426     VkStructureType    sType;
6427     const void*        pNext;
6428     uint64_t           opaqueCaptureAddress;
6429 } VkMemoryOpaqueCaptureAddressAllocateInfo;
6430 
6431 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
6432     VkStructureType    sType;
6433     const void*        pNext;
6434     VkDeviceMemory     memory;
6435 } VkDeviceMemoryOpaqueCaptureAddressInfo;
6436 
6437 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6438 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6439 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6440 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
6441 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
6442 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
6443 typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
6444 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
6445 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
6446 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
6447 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6448 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6449 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6450 
6451 #ifndef VK_NO_PROTOTYPES
6452 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
6453     VkCommandBuffer                             commandBuffer,
6454     VkBuffer                                    buffer,
6455     VkDeviceSize                                offset,
6456     VkBuffer                                    countBuffer,
6457     VkDeviceSize                                countBufferOffset,
6458     uint32_t                                    maxDrawCount,
6459     uint32_t                                    stride);
6460 
6461 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
6462     VkCommandBuffer                             commandBuffer,
6463     VkBuffer                                    buffer,
6464     VkDeviceSize                                offset,
6465     VkBuffer                                    countBuffer,
6466     VkDeviceSize                                countBufferOffset,
6467     uint32_t                                    maxDrawCount,
6468     uint32_t                                    stride);
6469 
6470 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
6471     VkDevice                                    device,
6472     const VkRenderPassCreateInfo2*              pCreateInfo,
6473     const VkAllocationCallbacks*                pAllocator,
6474     VkRenderPass*                               pRenderPass);
6475 
6476 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
6477     VkCommandBuffer                             commandBuffer,
6478     const VkRenderPassBeginInfo*                pRenderPassBegin,
6479     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
6480 
6481 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
6482     VkCommandBuffer                             commandBuffer,
6483     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
6484     const VkSubpassEndInfo*                     pSubpassEndInfo);
6485 
6486 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
6487     VkCommandBuffer                             commandBuffer,
6488     const VkSubpassEndInfo*                     pSubpassEndInfo);
6489 
6490 VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
6491     VkDevice                                    device,
6492     VkQueryPool                                 queryPool,
6493     uint32_t                                    firstQuery,
6494     uint32_t                                    queryCount);
6495 
6496 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
6497     VkDevice                                    device,
6498     VkSemaphore                                 semaphore,
6499     uint64_t*                                   pValue);
6500 
6501 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
6502     VkDevice                                    device,
6503     const VkSemaphoreWaitInfo*                  pWaitInfo,
6504     uint64_t                                    timeout);
6505 
6506 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
6507     VkDevice                                    device,
6508     const VkSemaphoreSignalInfo*                pSignalInfo);
6509 
6510 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
6511     VkDevice                                    device,
6512     const VkBufferDeviceAddressInfo*            pInfo);
6513 
6514 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
6515     VkDevice                                    device,
6516     const VkBufferDeviceAddressInfo*            pInfo);
6517 
6518 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
6519     VkDevice                                    device,
6520     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6521 #endif
6522 
6523 
6524 // VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
6525 #define VK_VERSION_1_3 1
6526 // Vulkan 1.3 version number
6527 #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
6528 
6529 typedef uint64_t VkFlags64;
6530 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
6531 
6532 typedef enum VkPipelineCreationFeedbackFlagBits {
6533     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
6534     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
6535     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
6536     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
6537     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
6538     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
6539     VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6540 } VkPipelineCreationFeedbackFlagBits;
6541 typedef VkFlags VkPipelineCreationFeedbackFlags;
6542 
6543 typedef enum VkToolPurposeFlagBits {
6544     VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
6545     VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
6546     VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
6547     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
6548     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
6549     VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
6550     VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
6551     VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
6552     VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
6553     VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
6554     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
6555     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
6556     VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6557 } VkToolPurposeFlagBits;
6558 typedef VkFlags VkToolPurposeFlags;
6559 typedef VkFlags VkPrivateDataSlotCreateFlags;
6560 typedef VkFlags64 VkPipelineStageFlags2;
6561 
6562 // Flag bits for VkPipelineStageFlagBits2
6563 typedef VkFlags64 VkPipelineStageFlagBits2;
6564 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
6565 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
6566 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
6567 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
6568 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
6569 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
6570 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
6571 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
6572 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
6573 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
6574 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
6575 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
6576 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
6577 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
6578 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
6579 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
6580 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
6581 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
6582 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
6583 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
6584 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
6585 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
6586 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
6587 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
6588 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
6589 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
6590 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
6591 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
6592 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
6593 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
6594 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
6595 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
6596 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
6597 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
6598 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
6599 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
6600 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
6601 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
6602 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
6603 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
6604 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
6605 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
6606 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
6607 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
6608 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
6609 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
6610 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
6611 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
6612 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
6613 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
6614 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
6615 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
6616 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
6617 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
6618 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
6619 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
6620 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
6621 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
6622 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
6623 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
6624 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
6625 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
6626 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
6627 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
6628 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
6629 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
6630 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
6631 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
6632 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
6633 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
6634 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
6635 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
6636 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
6637 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
6638 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
6639 
6640 typedef VkFlags64 VkAccessFlags2;
6641 
6642 // Flag bits for VkAccessFlagBits2
6643 typedef VkFlags64 VkAccessFlagBits2;
6644 static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
6645 static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
6646 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
6647 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
6648 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
6649 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
6650 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
6651 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
6652 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
6653 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
6654 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
6655 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
6656 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
6657 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
6658 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
6659 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
6660 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
6661 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
6662 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
6663 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
6664 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
6665 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
6666 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
6667 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
6668 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
6669 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
6670 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
6671 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
6672 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
6673 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
6674 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
6675 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
6676 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
6677 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
6678 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
6679 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
6680 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
6681 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
6682 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
6683 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
6684 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
6685 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
6686 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
6687 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
6688 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
6689 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
6690 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
6691 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
6692 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
6693 static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
6694 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
6695 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
6696 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
6697 static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
6698 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
6699 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
6700 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
6701 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
6702 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
6703 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
6704 static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
6705 static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
6706 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
6707 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
6708 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
6709 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
6710 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
6711 
6712 
6713 typedef enum VkSubmitFlagBits {
6714     VK_SUBMIT_PROTECTED_BIT = 0x00000001,
6715     VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
6716     VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6717 } VkSubmitFlagBits;
6718 typedef VkFlags VkSubmitFlags;
6719 
6720 typedef enum VkRenderingFlagBits {
6721     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
6722     VK_RENDERING_SUSPENDING_BIT = 0x00000002,
6723     VK_RENDERING_RESUMING_BIT = 0x00000004,
6724     VK_RENDERING_CONTENTS_INLINE_BIT_EXT = 0x00000010,
6725     VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
6726     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
6727     VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
6728     VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
6729     VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6730 } VkRenderingFlagBits;
6731 typedef VkFlags VkRenderingFlags;
6732 typedef VkFlags64 VkFormatFeatureFlags2;
6733 
6734 // Flag bits for VkFormatFeatureFlagBits2
6735 typedef VkFlags64 VkFormatFeatureFlagBits2;
6736 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
6737 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
6738 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
6739 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
6740 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
6741 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
6742 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
6743 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
6744 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
6745 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
6746 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
6747 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
6748 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
6749 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
6750 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
6751 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
6752 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
6753 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
6754 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
6755 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
6756 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
6757 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
6758 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
6759 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
6760 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
6761 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
6762 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
6763 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
6764 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
6765 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
6766 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
6767 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
6768 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
6769 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
6770 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
6771 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
6772 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
6773 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
6774 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
6775 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
6776 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
6777 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
6778 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
6779 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
6780 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
6781 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
6782 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
6783 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
6784 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
6785 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
6786 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
6787 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
6788 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
6789 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
6790 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
6791 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
6792 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
6793 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
6794 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
6795 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
6796 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
6797 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
6798 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
6799 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
6800 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
6801 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
6802 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
6803 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
6804 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
6805 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
6806 
6807 typedef struct VkPhysicalDeviceVulkan13Features {
6808     VkStructureType    sType;
6809     void*              pNext;
6810     VkBool32           robustImageAccess;
6811     VkBool32           inlineUniformBlock;
6812     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
6813     VkBool32           pipelineCreationCacheControl;
6814     VkBool32           privateData;
6815     VkBool32           shaderDemoteToHelperInvocation;
6816     VkBool32           shaderTerminateInvocation;
6817     VkBool32           subgroupSizeControl;
6818     VkBool32           computeFullSubgroups;
6819     VkBool32           synchronization2;
6820     VkBool32           textureCompressionASTC_HDR;
6821     VkBool32           shaderZeroInitializeWorkgroupMemory;
6822     VkBool32           dynamicRendering;
6823     VkBool32           shaderIntegerDotProduct;
6824     VkBool32           maintenance4;
6825 } VkPhysicalDeviceVulkan13Features;
6826 
6827 typedef struct VkPhysicalDeviceVulkan13Properties {
6828     VkStructureType       sType;
6829     void*                 pNext;
6830     uint32_t              minSubgroupSize;
6831     uint32_t              maxSubgroupSize;
6832     uint32_t              maxComputeWorkgroupSubgroups;
6833     VkShaderStageFlags    requiredSubgroupSizeStages;
6834     uint32_t              maxInlineUniformBlockSize;
6835     uint32_t              maxPerStageDescriptorInlineUniformBlocks;
6836     uint32_t              maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
6837     uint32_t              maxDescriptorSetInlineUniformBlocks;
6838     uint32_t              maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
6839     uint32_t              maxInlineUniformTotalSize;
6840     VkBool32              integerDotProduct8BitUnsignedAccelerated;
6841     VkBool32              integerDotProduct8BitSignedAccelerated;
6842     VkBool32              integerDotProduct8BitMixedSignednessAccelerated;
6843     VkBool32              integerDotProduct4x8BitPackedUnsignedAccelerated;
6844     VkBool32              integerDotProduct4x8BitPackedSignedAccelerated;
6845     VkBool32              integerDotProduct4x8BitPackedMixedSignednessAccelerated;
6846     VkBool32              integerDotProduct16BitUnsignedAccelerated;
6847     VkBool32              integerDotProduct16BitSignedAccelerated;
6848     VkBool32              integerDotProduct16BitMixedSignednessAccelerated;
6849     VkBool32              integerDotProduct32BitUnsignedAccelerated;
6850     VkBool32              integerDotProduct32BitSignedAccelerated;
6851     VkBool32              integerDotProduct32BitMixedSignednessAccelerated;
6852     VkBool32              integerDotProduct64BitUnsignedAccelerated;
6853     VkBool32              integerDotProduct64BitSignedAccelerated;
6854     VkBool32              integerDotProduct64BitMixedSignednessAccelerated;
6855     VkBool32              integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
6856     VkBool32              integerDotProductAccumulatingSaturating8BitSignedAccelerated;
6857     VkBool32              integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
6858     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
6859     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
6860     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
6861     VkBool32              integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
6862     VkBool32              integerDotProductAccumulatingSaturating16BitSignedAccelerated;
6863     VkBool32              integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
6864     VkBool32              integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
6865     VkBool32              integerDotProductAccumulatingSaturating32BitSignedAccelerated;
6866     VkBool32              integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
6867     VkBool32              integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
6868     VkBool32              integerDotProductAccumulatingSaturating64BitSignedAccelerated;
6869     VkBool32              integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
6870     VkDeviceSize          storageTexelBufferOffsetAlignmentBytes;
6871     VkBool32              storageTexelBufferOffsetSingleTexelAlignment;
6872     VkDeviceSize          uniformTexelBufferOffsetAlignmentBytes;
6873     VkBool32              uniformTexelBufferOffsetSingleTexelAlignment;
6874     VkDeviceSize          maxBufferSize;
6875 } VkPhysicalDeviceVulkan13Properties;
6876 
6877 typedef struct VkPipelineCreationFeedback {
6878     VkPipelineCreationFeedbackFlags    flags;
6879     uint64_t                           duration;
6880 } VkPipelineCreationFeedback;
6881 
6882 typedef struct VkPipelineCreationFeedbackCreateInfo {
6883     VkStructureType                sType;
6884     const void*                    pNext;
6885     VkPipelineCreationFeedback*    pPipelineCreationFeedback;
6886     uint32_t                       pipelineStageCreationFeedbackCount;
6887     VkPipelineCreationFeedback*    pPipelineStageCreationFeedbacks;
6888 } VkPipelineCreationFeedbackCreateInfo;
6889 
6890 typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
6891     VkStructureType    sType;
6892     void*              pNext;
6893     VkBool32           shaderTerminateInvocation;
6894 } VkPhysicalDeviceShaderTerminateInvocationFeatures;
6895 
6896 typedef struct VkPhysicalDeviceToolProperties {
6897     VkStructureType       sType;
6898     void*                 pNext;
6899     char                  name[VK_MAX_EXTENSION_NAME_SIZE];
6900     char                  version[VK_MAX_EXTENSION_NAME_SIZE];
6901     VkToolPurposeFlags    purposes;
6902     char                  description[VK_MAX_DESCRIPTION_SIZE];
6903     char                  layer[VK_MAX_EXTENSION_NAME_SIZE];
6904 } VkPhysicalDeviceToolProperties;
6905 
6906 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
6907     VkStructureType    sType;
6908     void*              pNext;
6909     VkBool32           shaderDemoteToHelperInvocation;
6910 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
6911 
6912 typedef struct VkPhysicalDevicePrivateDataFeatures {
6913     VkStructureType    sType;
6914     void*              pNext;
6915     VkBool32           privateData;
6916 } VkPhysicalDevicePrivateDataFeatures;
6917 
6918 typedef struct VkDevicePrivateDataCreateInfo {
6919     VkStructureType    sType;
6920     const void*        pNext;
6921     uint32_t           privateDataSlotRequestCount;
6922 } VkDevicePrivateDataCreateInfo;
6923 
6924 typedef struct VkPrivateDataSlotCreateInfo {
6925     VkStructureType                 sType;
6926     const void*                     pNext;
6927     VkPrivateDataSlotCreateFlags    flags;
6928 } VkPrivateDataSlotCreateInfo;
6929 
6930 typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
6931     VkStructureType    sType;
6932     void*              pNext;
6933     VkBool32           pipelineCreationCacheControl;
6934 } VkPhysicalDevicePipelineCreationCacheControlFeatures;
6935 
6936 typedef struct VkMemoryBarrier2 {
6937     VkStructureType          sType;
6938     const void*              pNext;
6939     VkPipelineStageFlags2    srcStageMask;
6940     VkAccessFlags2           srcAccessMask;
6941     VkPipelineStageFlags2    dstStageMask;
6942     VkAccessFlags2           dstAccessMask;
6943 } VkMemoryBarrier2;
6944 
6945 typedef struct VkBufferMemoryBarrier2 {
6946     VkStructureType          sType;
6947     const void*              pNext;
6948     VkPipelineStageFlags2    srcStageMask;
6949     VkAccessFlags2           srcAccessMask;
6950     VkPipelineStageFlags2    dstStageMask;
6951     VkAccessFlags2           dstAccessMask;
6952     uint32_t                 srcQueueFamilyIndex;
6953     uint32_t                 dstQueueFamilyIndex;
6954     VkBuffer                 buffer;
6955     VkDeviceSize             offset;
6956     VkDeviceSize             size;
6957 } VkBufferMemoryBarrier2;
6958 
6959 typedef struct VkImageMemoryBarrier2 {
6960     VkStructureType            sType;
6961     const void*                pNext;
6962     VkPipelineStageFlags2      srcStageMask;
6963     VkAccessFlags2             srcAccessMask;
6964     VkPipelineStageFlags2      dstStageMask;
6965     VkAccessFlags2             dstAccessMask;
6966     VkImageLayout              oldLayout;
6967     VkImageLayout              newLayout;
6968     uint32_t                   srcQueueFamilyIndex;
6969     uint32_t                   dstQueueFamilyIndex;
6970     VkImage                    image;
6971     VkImageSubresourceRange    subresourceRange;
6972 } VkImageMemoryBarrier2;
6973 
6974 typedef struct VkDependencyInfo {
6975     VkStructureType                  sType;
6976     const void*                      pNext;
6977     VkDependencyFlags                dependencyFlags;
6978     uint32_t                         memoryBarrierCount;
6979     const VkMemoryBarrier2*          pMemoryBarriers;
6980     uint32_t                         bufferMemoryBarrierCount;
6981     const VkBufferMemoryBarrier2*    pBufferMemoryBarriers;
6982     uint32_t                         imageMemoryBarrierCount;
6983     const VkImageMemoryBarrier2*     pImageMemoryBarriers;
6984 } VkDependencyInfo;
6985 
6986 typedef struct VkSemaphoreSubmitInfo {
6987     VkStructureType          sType;
6988     const void*              pNext;
6989     VkSemaphore              semaphore;
6990     uint64_t                 value;
6991     VkPipelineStageFlags2    stageMask;
6992     uint32_t                 deviceIndex;
6993 } VkSemaphoreSubmitInfo;
6994 
6995 typedef struct VkCommandBufferSubmitInfo {
6996     VkStructureType    sType;
6997     const void*        pNext;
6998     VkCommandBuffer    commandBuffer;
6999     uint32_t           deviceMask;
7000 } VkCommandBufferSubmitInfo;
7001 
7002 typedef struct VkSubmitInfo2 {
7003     VkStructureType                     sType;
7004     const void*                         pNext;
7005     VkSubmitFlags                       flags;
7006     uint32_t                            waitSemaphoreInfoCount;
7007     const VkSemaphoreSubmitInfo*        pWaitSemaphoreInfos;
7008     uint32_t                            commandBufferInfoCount;
7009     const VkCommandBufferSubmitInfo*    pCommandBufferInfos;
7010     uint32_t                            signalSemaphoreInfoCount;
7011     const VkSemaphoreSubmitInfo*        pSignalSemaphoreInfos;
7012 } VkSubmitInfo2;
7013 
7014 typedef struct VkPhysicalDeviceSynchronization2Features {
7015     VkStructureType    sType;
7016     void*              pNext;
7017     VkBool32           synchronization2;
7018 } VkPhysicalDeviceSynchronization2Features;
7019 
7020 typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
7021     VkStructureType    sType;
7022     void*              pNext;
7023     VkBool32           shaderZeroInitializeWorkgroupMemory;
7024 } VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
7025 
7026 typedef struct VkPhysicalDeviceImageRobustnessFeatures {
7027     VkStructureType    sType;
7028     void*              pNext;
7029     VkBool32           robustImageAccess;
7030 } VkPhysicalDeviceImageRobustnessFeatures;
7031 
7032 typedef struct VkBufferCopy2 {
7033     VkStructureType    sType;
7034     const void*        pNext;
7035     VkDeviceSize       srcOffset;
7036     VkDeviceSize       dstOffset;
7037     VkDeviceSize       size;
7038 } VkBufferCopy2;
7039 
7040 typedef struct VkCopyBufferInfo2 {
7041     VkStructureType         sType;
7042     const void*             pNext;
7043     VkBuffer                srcBuffer;
7044     VkBuffer                dstBuffer;
7045     uint32_t                regionCount;
7046     const VkBufferCopy2*    pRegions;
7047 } VkCopyBufferInfo2;
7048 
7049 typedef struct VkImageCopy2 {
7050     VkStructureType             sType;
7051     const void*                 pNext;
7052     VkImageSubresourceLayers    srcSubresource;
7053     VkOffset3D                  srcOffset;
7054     VkImageSubresourceLayers    dstSubresource;
7055     VkOffset3D                  dstOffset;
7056     VkExtent3D                  extent;
7057 } VkImageCopy2;
7058 
7059 typedef struct VkCopyImageInfo2 {
7060     VkStructureType        sType;
7061     const void*            pNext;
7062     VkImage                srcImage;
7063     VkImageLayout          srcImageLayout;
7064     VkImage                dstImage;
7065     VkImageLayout          dstImageLayout;
7066     uint32_t               regionCount;
7067     const VkImageCopy2*    pRegions;
7068 } VkCopyImageInfo2;
7069 
7070 typedef struct VkBufferImageCopy2 {
7071     VkStructureType             sType;
7072     const void*                 pNext;
7073     VkDeviceSize                bufferOffset;
7074     uint32_t                    bufferRowLength;
7075     uint32_t                    bufferImageHeight;
7076     VkImageSubresourceLayers    imageSubresource;
7077     VkOffset3D                  imageOffset;
7078     VkExtent3D                  imageExtent;
7079 } VkBufferImageCopy2;
7080 
7081 typedef struct VkCopyBufferToImageInfo2 {
7082     VkStructureType              sType;
7083     const void*                  pNext;
7084     VkBuffer                     srcBuffer;
7085     VkImage                      dstImage;
7086     VkImageLayout                dstImageLayout;
7087     uint32_t                     regionCount;
7088     const VkBufferImageCopy2*    pRegions;
7089 } VkCopyBufferToImageInfo2;
7090 
7091 typedef struct VkCopyImageToBufferInfo2 {
7092     VkStructureType              sType;
7093     const void*                  pNext;
7094     VkImage                      srcImage;
7095     VkImageLayout                srcImageLayout;
7096     VkBuffer                     dstBuffer;
7097     uint32_t                     regionCount;
7098     const VkBufferImageCopy2*    pRegions;
7099 } VkCopyImageToBufferInfo2;
7100 
7101 typedef struct VkImageBlit2 {
7102     VkStructureType             sType;
7103     const void*                 pNext;
7104     VkImageSubresourceLayers    srcSubresource;
7105     VkOffset3D                  srcOffsets[2];
7106     VkImageSubresourceLayers    dstSubresource;
7107     VkOffset3D                  dstOffsets[2];
7108 } VkImageBlit2;
7109 
7110 typedef struct VkBlitImageInfo2 {
7111     VkStructureType        sType;
7112     const void*            pNext;
7113     VkImage                srcImage;
7114     VkImageLayout          srcImageLayout;
7115     VkImage                dstImage;
7116     VkImageLayout          dstImageLayout;
7117     uint32_t               regionCount;
7118     const VkImageBlit2*    pRegions;
7119     VkFilter               filter;
7120 } VkBlitImageInfo2;
7121 
7122 typedef struct VkImageResolve2 {
7123     VkStructureType             sType;
7124     const void*                 pNext;
7125     VkImageSubresourceLayers    srcSubresource;
7126     VkOffset3D                  srcOffset;
7127     VkImageSubresourceLayers    dstSubresource;
7128     VkOffset3D                  dstOffset;
7129     VkExtent3D                  extent;
7130 } VkImageResolve2;
7131 
7132 typedef struct VkResolveImageInfo2 {
7133     VkStructureType           sType;
7134     const void*               pNext;
7135     VkImage                   srcImage;
7136     VkImageLayout             srcImageLayout;
7137     VkImage                   dstImage;
7138     VkImageLayout             dstImageLayout;
7139     uint32_t                  regionCount;
7140     const VkImageResolve2*    pRegions;
7141 } VkResolveImageInfo2;
7142 
7143 typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7144     VkStructureType    sType;
7145     void*              pNext;
7146     VkBool32           subgroupSizeControl;
7147     VkBool32           computeFullSubgroups;
7148 } VkPhysicalDeviceSubgroupSizeControlFeatures;
7149 
7150 typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7151     VkStructureType       sType;
7152     void*                 pNext;
7153     uint32_t              minSubgroupSize;
7154     uint32_t              maxSubgroupSize;
7155     uint32_t              maxComputeWorkgroupSubgroups;
7156     VkShaderStageFlags    requiredSubgroupSizeStages;
7157 } VkPhysicalDeviceSubgroupSizeControlProperties;
7158 
7159 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7160     VkStructureType    sType;
7161     void*              pNext;
7162     uint32_t           requiredSubgroupSize;
7163 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7164 
7165 typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7166     VkStructureType    sType;
7167     void*              pNext;
7168     VkBool32           inlineUniformBlock;
7169     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
7170 } VkPhysicalDeviceInlineUniformBlockFeatures;
7171 
7172 typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7173     VkStructureType    sType;
7174     void*              pNext;
7175     uint32_t           maxInlineUniformBlockSize;
7176     uint32_t           maxPerStageDescriptorInlineUniformBlocks;
7177     uint32_t           maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7178     uint32_t           maxDescriptorSetInlineUniformBlocks;
7179     uint32_t           maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7180 } VkPhysicalDeviceInlineUniformBlockProperties;
7181 
7182 typedef struct VkWriteDescriptorSetInlineUniformBlock {
7183     VkStructureType    sType;
7184     const void*        pNext;
7185     uint32_t           dataSize;
7186     const void*        pData;
7187 } VkWriteDescriptorSetInlineUniformBlock;
7188 
7189 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7190     VkStructureType    sType;
7191     const void*        pNext;
7192     uint32_t           maxInlineUniformBlockBindings;
7193 } VkDescriptorPoolInlineUniformBlockCreateInfo;
7194 
7195 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7196     VkStructureType    sType;
7197     void*              pNext;
7198     VkBool32           textureCompressionASTC_HDR;
7199 } VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7200 
7201 typedef struct VkRenderingAttachmentInfo {
7202     VkStructureType          sType;
7203     const void*              pNext;
7204     VkImageView              imageView;
7205     VkImageLayout            imageLayout;
7206     VkResolveModeFlagBits    resolveMode;
7207     VkImageView              resolveImageView;
7208     VkImageLayout            resolveImageLayout;
7209     VkAttachmentLoadOp       loadOp;
7210     VkAttachmentStoreOp      storeOp;
7211     VkClearValue             clearValue;
7212 } VkRenderingAttachmentInfo;
7213 
7214 typedef struct VkRenderingInfo {
7215     VkStructureType                     sType;
7216     const void*                         pNext;
7217     VkRenderingFlags                    flags;
7218     VkRect2D                            renderArea;
7219     uint32_t                            layerCount;
7220     uint32_t                            viewMask;
7221     uint32_t                            colorAttachmentCount;
7222     const VkRenderingAttachmentInfo*    pColorAttachments;
7223     const VkRenderingAttachmentInfo*    pDepthAttachment;
7224     const VkRenderingAttachmentInfo*    pStencilAttachment;
7225 } VkRenderingInfo;
7226 
7227 typedef struct VkPipelineRenderingCreateInfo {
7228     VkStructureType    sType;
7229     const void*        pNext;
7230     uint32_t           viewMask;
7231     uint32_t           colorAttachmentCount;
7232     const VkFormat*    pColorAttachmentFormats;
7233     VkFormat           depthAttachmentFormat;
7234     VkFormat           stencilAttachmentFormat;
7235 } VkPipelineRenderingCreateInfo;
7236 
7237 typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7238     VkStructureType    sType;
7239     void*              pNext;
7240     VkBool32           dynamicRendering;
7241 } VkPhysicalDeviceDynamicRenderingFeatures;
7242 
7243 typedef struct VkCommandBufferInheritanceRenderingInfo {
7244     VkStructureType          sType;
7245     const void*              pNext;
7246     VkRenderingFlags         flags;
7247     uint32_t                 viewMask;
7248     uint32_t                 colorAttachmentCount;
7249     const VkFormat*          pColorAttachmentFormats;
7250     VkFormat                 depthAttachmentFormat;
7251     VkFormat                 stencilAttachmentFormat;
7252     VkSampleCountFlagBits    rasterizationSamples;
7253 } VkCommandBufferInheritanceRenderingInfo;
7254 
7255 typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7256     VkStructureType    sType;
7257     void*              pNext;
7258     VkBool32           shaderIntegerDotProduct;
7259 } VkPhysicalDeviceShaderIntegerDotProductFeatures;
7260 
7261 typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
7262     VkStructureType    sType;
7263     void*              pNext;
7264     VkBool32           integerDotProduct8BitUnsignedAccelerated;
7265     VkBool32           integerDotProduct8BitSignedAccelerated;
7266     VkBool32           integerDotProduct8BitMixedSignednessAccelerated;
7267     VkBool32           integerDotProduct4x8BitPackedUnsignedAccelerated;
7268     VkBool32           integerDotProduct4x8BitPackedSignedAccelerated;
7269     VkBool32           integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7270     VkBool32           integerDotProduct16BitUnsignedAccelerated;
7271     VkBool32           integerDotProduct16BitSignedAccelerated;
7272     VkBool32           integerDotProduct16BitMixedSignednessAccelerated;
7273     VkBool32           integerDotProduct32BitUnsignedAccelerated;
7274     VkBool32           integerDotProduct32BitSignedAccelerated;
7275     VkBool32           integerDotProduct32BitMixedSignednessAccelerated;
7276     VkBool32           integerDotProduct64BitUnsignedAccelerated;
7277     VkBool32           integerDotProduct64BitSignedAccelerated;
7278     VkBool32           integerDotProduct64BitMixedSignednessAccelerated;
7279     VkBool32           integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7280     VkBool32           integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7281     VkBool32           integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7282     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7283     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7284     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7285     VkBool32           integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7286     VkBool32           integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7287     VkBool32           integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7288     VkBool32           integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7289     VkBool32           integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7290     VkBool32           integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7291     VkBool32           integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7292     VkBool32           integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7293     VkBool32           integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7294 } VkPhysicalDeviceShaderIntegerDotProductProperties;
7295 
7296 typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
7297     VkStructureType    sType;
7298     void*              pNext;
7299     VkDeviceSize       storageTexelBufferOffsetAlignmentBytes;
7300     VkBool32           storageTexelBufferOffsetSingleTexelAlignment;
7301     VkDeviceSize       uniformTexelBufferOffsetAlignmentBytes;
7302     VkBool32           uniformTexelBufferOffsetSingleTexelAlignment;
7303 } VkPhysicalDeviceTexelBufferAlignmentProperties;
7304 
7305 typedef struct VkFormatProperties3 {
7306     VkStructureType          sType;
7307     void*                    pNext;
7308     VkFormatFeatureFlags2    linearTilingFeatures;
7309     VkFormatFeatureFlags2    optimalTilingFeatures;
7310     VkFormatFeatureFlags2    bufferFeatures;
7311 } VkFormatProperties3;
7312 
7313 typedef struct VkPhysicalDeviceMaintenance4Features {
7314     VkStructureType    sType;
7315     void*              pNext;
7316     VkBool32           maintenance4;
7317 } VkPhysicalDeviceMaintenance4Features;
7318 
7319 typedef struct VkPhysicalDeviceMaintenance4Properties {
7320     VkStructureType    sType;
7321     void*              pNext;
7322     VkDeviceSize       maxBufferSize;
7323 } VkPhysicalDeviceMaintenance4Properties;
7324 
7325 typedef struct VkDeviceBufferMemoryRequirements {
7326     VkStructureType              sType;
7327     const void*                  pNext;
7328     const VkBufferCreateInfo*    pCreateInfo;
7329 } VkDeviceBufferMemoryRequirements;
7330 
7331 typedef struct VkDeviceImageMemoryRequirements {
7332     VkStructureType             sType;
7333     const void*                 pNext;
7334     const VkImageCreateInfo*    pCreateInfo;
7335     VkImageAspectFlagBits       planeAspect;
7336 } VkDeviceImageMemoryRequirements;
7337 
7338 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
7339 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
7340 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
7341 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
7342 typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
7343 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
7344 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
7345 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
7346 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
7347 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
7348 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
7349 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
7350 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
7351 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7352 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7353 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
7354 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
7355 typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
7356 typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer                   commandBuffer);
7357 typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
7358 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
7359 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
7360 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
7361 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
7362 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);
7363 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
7364 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
7365 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
7366 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
7367 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
7368 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
7369 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
7370 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
7371 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
7372 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7373 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7374 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7375 
7376 #ifndef VK_NO_PROTOTYPES
7377 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
7378     VkPhysicalDevice                            physicalDevice,
7379     uint32_t*                                   pToolCount,
7380     VkPhysicalDeviceToolProperties*             pToolProperties);
7381 
7382 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
7383     VkDevice                                    device,
7384     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
7385     const VkAllocationCallbacks*                pAllocator,
7386     VkPrivateDataSlot*                          pPrivateDataSlot);
7387 
7388 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
7389     VkDevice                                    device,
7390     VkPrivateDataSlot                           privateDataSlot,
7391     const VkAllocationCallbacks*                pAllocator);
7392 
7393 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
7394     VkDevice                                    device,
7395     VkObjectType                                objectType,
7396     uint64_t                                    objectHandle,
7397     VkPrivateDataSlot                           privateDataSlot,
7398     uint64_t                                    data);
7399 
7400 VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
7401     VkDevice                                    device,
7402     VkObjectType                                objectType,
7403     uint64_t                                    objectHandle,
7404     VkPrivateDataSlot                           privateDataSlot,
7405     uint64_t*                                   pData);
7406 
7407 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
7408     VkCommandBuffer                             commandBuffer,
7409     VkEvent                                     event,
7410     const VkDependencyInfo*                     pDependencyInfo);
7411 
7412 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
7413     VkCommandBuffer                             commandBuffer,
7414     VkEvent                                     event,
7415     VkPipelineStageFlags2                       stageMask);
7416 
7417 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
7418     VkCommandBuffer                             commandBuffer,
7419     uint32_t                                    eventCount,
7420     const VkEvent*                              pEvents,
7421     const VkDependencyInfo*                     pDependencyInfos);
7422 
7423 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
7424     VkCommandBuffer                             commandBuffer,
7425     const VkDependencyInfo*                     pDependencyInfo);
7426 
7427 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
7428     VkCommandBuffer                             commandBuffer,
7429     VkPipelineStageFlags2                       stage,
7430     VkQueryPool                                 queryPool,
7431     uint32_t                                    query);
7432 
7433 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
7434     VkQueue                                     queue,
7435     uint32_t                                    submitCount,
7436     const VkSubmitInfo2*                        pSubmits,
7437     VkFence                                     fence);
7438 
7439 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
7440     VkCommandBuffer                             commandBuffer,
7441     const VkCopyBufferInfo2*                    pCopyBufferInfo);
7442 
7443 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
7444     VkCommandBuffer                             commandBuffer,
7445     const VkCopyImageInfo2*                     pCopyImageInfo);
7446 
7447 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
7448     VkCommandBuffer                             commandBuffer,
7449     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
7450 
7451 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
7452     VkCommandBuffer                             commandBuffer,
7453     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
7454 
7455 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
7456     VkCommandBuffer                             commandBuffer,
7457     const VkBlitImageInfo2*                     pBlitImageInfo);
7458 
7459 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
7460     VkCommandBuffer                             commandBuffer,
7461     const VkResolveImageInfo2*                  pResolveImageInfo);
7462 
7463 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
7464     VkCommandBuffer                             commandBuffer,
7465     const VkRenderingInfo*                      pRenderingInfo);
7466 
7467 VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
7468     VkCommandBuffer                             commandBuffer);
7469 
7470 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
7471     VkCommandBuffer                             commandBuffer,
7472     VkCullModeFlags                             cullMode);
7473 
7474 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
7475     VkCommandBuffer                             commandBuffer,
7476     VkFrontFace                                 frontFace);
7477 
7478 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
7479     VkCommandBuffer                             commandBuffer,
7480     VkPrimitiveTopology                         primitiveTopology);
7481 
7482 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
7483     VkCommandBuffer                             commandBuffer,
7484     uint32_t                                    viewportCount,
7485     const VkViewport*                           pViewports);
7486 
7487 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
7488     VkCommandBuffer                             commandBuffer,
7489     uint32_t                                    scissorCount,
7490     const VkRect2D*                             pScissors);
7491 
7492 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
7493     VkCommandBuffer                             commandBuffer,
7494     uint32_t                                    firstBinding,
7495     uint32_t                                    bindingCount,
7496     const VkBuffer*                             pBuffers,
7497     const VkDeviceSize*                         pOffsets,
7498     const VkDeviceSize*                         pSizes,
7499     const VkDeviceSize*                         pStrides);
7500 
7501 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
7502     VkCommandBuffer                             commandBuffer,
7503     VkBool32                                    depthTestEnable);
7504 
7505 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
7506     VkCommandBuffer                             commandBuffer,
7507     VkBool32                                    depthWriteEnable);
7508 
7509 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
7510     VkCommandBuffer                             commandBuffer,
7511     VkCompareOp                                 depthCompareOp);
7512 
7513 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
7514     VkCommandBuffer                             commandBuffer,
7515     VkBool32                                    depthBoundsTestEnable);
7516 
7517 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
7518     VkCommandBuffer                             commandBuffer,
7519     VkBool32                                    stencilTestEnable);
7520 
7521 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
7522     VkCommandBuffer                             commandBuffer,
7523     VkStencilFaceFlags                          faceMask,
7524     VkStencilOp                                 failOp,
7525     VkStencilOp                                 passOp,
7526     VkStencilOp                                 depthFailOp,
7527     VkCompareOp                                 compareOp);
7528 
7529 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
7530     VkCommandBuffer                             commandBuffer,
7531     VkBool32                                    rasterizerDiscardEnable);
7532 
7533 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
7534     VkCommandBuffer                             commandBuffer,
7535     VkBool32                                    depthBiasEnable);
7536 
7537 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
7538     VkCommandBuffer                             commandBuffer,
7539     VkBool32                                    primitiveRestartEnable);
7540 
7541 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
7542     VkDevice                                    device,
7543     const VkDeviceBufferMemoryRequirements*     pInfo,
7544     VkMemoryRequirements2*                      pMemoryRequirements);
7545 
7546 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
7547     VkDevice                                    device,
7548     const VkDeviceImageMemoryRequirements*      pInfo,
7549     VkMemoryRequirements2*                      pMemoryRequirements);
7550 
7551 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
7552     VkDevice                                    device,
7553     const VkDeviceImageMemoryRequirements*      pInfo,
7554     uint32_t*                                   pSparseMemoryRequirementCount,
7555     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
7556 #endif
7557 
7558 
7559 // VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
7560 #define VK_KHR_surface 1
7561 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
7562 #define VK_KHR_SURFACE_SPEC_VERSION       25
7563 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
7564 
7565 typedef enum VkPresentModeKHR {
7566     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
7567     VK_PRESENT_MODE_MAILBOX_KHR = 1,
7568     VK_PRESENT_MODE_FIFO_KHR = 2,
7569     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
7570     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
7571     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
7572     VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
7573 } VkPresentModeKHR;
7574 
7575 typedef enum VkColorSpaceKHR {
7576     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
7577     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
7578     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
7579     VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
7580     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
7581     VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
7582     VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
7583     VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
7584     VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
7585     VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
7586     VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
7587     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
7588     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
7589     VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
7590     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
7591     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
7592     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
7593     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
7594     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
7595 } VkColorSpaceKHR;
7596 
7597 typedef enum VkSurfaceTransformFlagBitsKHR {
7598     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
7599     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
7600     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
7601     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
7602     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
7603     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
7604     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
7605     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
7606     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
7607     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7608 } VkSurfaceTransformFlagBitsKHR;
7609 
7610 typedef enum VkCompositeAlphaFlagBitsKHR {
7611     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
7612     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
7613     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
7614     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
7615     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7616 } VkCompositeAlphaFlagBitsKHR;
7617 typedef VkFlags VkCompositeAlphaFlagsKHR;
7618 typedef VkFlags VkSurfaceTransformFlagsKHR;
7619 typedef struct VkSurfaceCapabilitiesKHR {
7620     uint32_t                         minImageCount;
7621     uint32_t                         maxImageCount;
7622     VkExtent2D                       currentExtent;
7623     VkExtent2D                       minImageExtent;
7624     VkExtent2D                       maxImageExtent;
7625     uint32_t                         maxImageArrayLayers;
7626     VkSurfaceTransformFlagsKHR       supportedTransforms;
7627     VkSurfaceTransformFlagBitsKHR    currentTransform;
7628     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
7629     VkImageUsageFlags                supportedUsageFlags;
7630 } VkSurfaceCapabilitiesKHR;
7631 
7632 typedef struct VkSurfaceFormatKHR {
7633     VkFormat           format;
7634     VkColorSpaceKHR    colorSpace;
7635 } VkSurfaceFormatKHR;
7636 
7637 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
7638 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
7639 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
7640 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
7641 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
7642 
7643 #ifndef VK_NO_PROTOTYPES
7644 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
7645     VkInstance                                  instance,
7646     VkSurfaceKHR                                surface,
7647     const VkAllocationCallbacks*                pAllocator);
7648 
7649 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
7650     VkPhysicalDevice                            physicalDevice,
7651     uint32_t                                    queueFamilyIndex,
7652     VkSurfaceKHR                                surface,
7653     VkBool32*                                   pSupported);
7654 
7655 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
7656     VkPhysicalDevice                            physicalDevice,
7657     VkSurfaceKHR                                surface,
7658     VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
7659 
7660 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
7661     VkPhysicalDevice                            physicalDevice,
7662     VkSurfaceKHR                                surface,
7663     uint32_t*                                   pSurfaceFormatCount,
7664     VkSurfaceFormatKHR*                         pSurfaceFormats);
7665 
7666 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
7667     VkPhysicalDevice                            physicalDevice,
7668     VkSurfaceKHR                                surface,
7669     uint32_t*                                   pPresentModeCount,
7670     VkPresentModeKHR*                           pPresentModes);
7671 #endif
7672 
7673 
7674 // VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
7675 #define VK_KHR_swapchain 1
7676 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
7677 #define VK_KHR_SWAPCHAIN_SPEC_VERSION     70
7678 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
7679 
7680 typedef enum VkSwapchainCreateFlagBitsKHR {
7681     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
7682     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
7683     VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
7684     VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0x00000008,
7685     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7686 } VkSwapchainCreateFlagBitsKHR;
7687 typedef VkFlags VkSwapchainCreateFlagsKHR;
7688 
7689 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
7690     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
7691     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
7692     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
7693     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
7694     VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7695 } VkDeviceGroupPresentModeFlagBitsKHR;
7696 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
7697 typedef struct VkSwapchainCreateInfoKHR {
7698     VkStructureType                  sType;
7699     const void*                      pNext;
7700     VkSwapchainCreateFlagsKHR        flags;
7701     VkSurfaceKHR                     surface;
7702     uint32_t                         minImageCount;
7703     VkFormat                         imageFormat;
7704     VkColorSpaceKHR                  imageColorSpace;
7705     VkExtent2D                       imageExtent;
7706     uint32_t                         imageArrayLayers;
7707     VkImageUsageFlags                imageUsage;
7708     VkSharingMode                    imageSharingMode;
7709     uint32_t                         queueFamilyIndexCount;
7710     const uint32_t*                  pQueueFamilyIndices;
7711     VkSurfaceTransformFlagBitsKHR    preTransform;
7712     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
7713     VkPresentModeKHR                 presentMode;
7714     VkBool32                         clipped;
7715     VkSwapchainKHR                   oldSwapchain;
7716 } VkSwapchainCreateInfoKHR;
7717 
7718 typedef struct VkPresentInfoKHR {
7719     VkStructureType          sType;
7720     const void*              pNext;
7721     uint32_t                 waitSemaphoreCount;
7722     const VkSemaphore*       pWaitSemaphores;
7723     uint32_t                 swapchainCount;
7724     const VkSwapchainKHR*    pSwapchains;
7725     const uint32_t*          pImageIndices;
7726     VkResult*                pResults;
7727 } VkPresentInfoKHR;
7728 
7729 typedef struct VkImageSwapchainCreateInfoKHR {
7730     VkStructureType    sType;
7731     const void*        pNext;
7732     VkSwapchainKHR     swapchain;
7733 } VkImageSwapchainCreateInfoKHR;
7734 
7735 typedef struct VkBindImageMemorySwapchainInfoKHR {
7736     VkStructureType    sType;
7737     const void*        pNext;
7738     VkSwapchainKHR     swapchain;
7739     uint32_t           imageIndex;
7740 } VkBindImageMemorySwapchainInfoKHR;
7741 
7742 typedef struct VkAcquireNextImageInfoKHR {
7743     VkStructureType    sType;
7744     const void*        pNext;
7745     VkSwapchainKHR     swapchain;
7746     uint64_t           timeout;
7747     VkSemaphore        semaphore;
7748     VkFence            fence;
7749     uint32_t           deviceMask;
7750 } VkAcquireNextImageInfoKHR;
7751 
7752 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
7753     VkStructureType                     sType;
7754     void*                               pNext;
7755     uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE];
7756     VkDeviceGroupPresentModeFlagsKHR    modes;
7757 } VkDeviceGroupPresentCapabilitiesKHR;
7758 
7759 typedef struct VkDeviceGroupPresentInfoKHR {
7760     VkStructureType                        sType;
7761     const void*                            pNext;
7762     uint32_t                               swapchainCount;
7763     const uint32_t*                        pDeviceMasks;
7764     VkDeviceGroupPresentModeFlagBitsKHR    mode;
7765 } VkDeviceGroupPresentInfoKHR;
7766 
7767 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
7768     VkStructureType                     sType;
7769     const void*                         pNext;
7770     VkDeviceGroupPresentModeFlagsKHR    modes;
7771 } VkDeviceGroupSwapchainCreateInfoKHR;
7772 
7773 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
7774 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
7775 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
7776 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
7777 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
7778 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
7779 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
7780 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
7781 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
7782 
7783 #ifndef VK_NO_PROTOTYPES
7784 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
7785     VkDevice                                    device,
7786     const VkSwapchainCreateInfoKHR*             pCreateInfo,
7787     const VkAllocationCallbacks*                pAllocator,
7788     VkSwapchainKHR*                             pSwapchain);
7789 
7790 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
7791     VkDevice                                    device,
7792     VkSwapchainKHR                              swapchain,
7793     const VkAllocationCallbacks*                pAllocator);
7794 
7795 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
7796     VkDevice                                    device,
7797     VkSwapchainKHR                              swapchain,
7798     uint32_t*                                   pSwapchainImageCount,
7799     VkImage*                                    pSwapchainImages);
7800 
7801 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
7802     VkDevice                                    device,
7803     VkSwapchainKHR                              swapchain,
7804     uint64_t                                    timeout,
7805     VkSemaphore                                 semaphore,
7806     VkFence                                     fence,
7807     uint32_t*                                   pImageIndex);
7808 
7809 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
7810     VkQueue                                     queue,
7811     const VkPresentInfoKHR*                     pPresentInfo);
7812 
7813 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
7814     VkDevice                                    device,
7815     VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
7816 
7817 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
7818     VkDevice                                    device,
7819     VkSurfaceKHR                                surface,
7820     VkDeviceGroupPresentModeFlagsKHR*           pModes);
7821 
7822 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
7823     VkPhysicalDevice                            physicalDevice,
7824     VkSurfaceKHR                                surface,
7825     uint32_t*                                   pRectCount,
7826     VkRect2D*                                   pRects);
7827 
7828 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
7829     VkDevice                                    device,
7830     const VkAcquireNextImageInfoKHR*            pAcquireInfo,
7831     uint32_t*                                   pImageIndex);
7832 #endif
7833 
7834 
7835 // VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
7836 #define VK_KHR_display 1
7837 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
7838 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
7839 #define VK_KHR_DISPLAY_SPEC_VERSION       23
7840 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
7841 typedef VkFlags VkDisplayModeCreateFlagsKHR;
7842 
7843 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
7844     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
7845     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
7846     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
7847     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
7848     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7849 } VkDisplayPlaneAlphaFlagBitsKHR;
7850 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
7851 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
7852 typedef struct VkDisplayModeParametersKHR {
7853     VkExtent2D    visibleRegion;
7854     uint32_t      refreshRate;
7855 } VkDisplayModeParametersKHR;
7856 
7857 typedef struct VkDisplayModeCreateInfoKHR {
7858     VkStructureType                sType;
7859     const void*                    pNext;
7860     VkDisplayModeCreateFlagsKHR    flags;
7861     VkDisplayModeParametersKHR     parameters;
7862 } VkDisplayModeCreateInfoKHR;
7863 
7864 typedef struct VkDisplayModePropertiesKHR {
7865     VkDisplayModeKHR              displayMode;
7866     VkDisplayModeParametersKHR    parameters;
7867 } VkDisplayModePropertiesKHR;
7868 
7869 typedef struct VkDisplayPlaneCapabilitiesKHR {
7870     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
7871     VkOffset2D                     minSrcPosition;
7872     VkOffset2D                     maxSrcPosition;
7873     VkExtent2D                     minSrcExtent;
7874     VkExtent2D                     maxSrcExtent;
7875     VkOffset2D                     minDstPosition;
7876     VkOffset2D                     maxDstPosition;
7877     VkExtent2D                     minDstExtent;
7878     VkExtent2D                     maxDstExtent;
7879 } VkDisplayPlaneCapabilitiesKHR;
7880 
7881 typedef struct VkDisplayPlanePropertiesKHR {
7882     VkDisplayKHR    currentDisplay;
7883     uint32_t        currentStackIndex;
7884 } VkDisplayPlanePropertiesKHR;
7885 
7886 typedef struct VkDisplayPropertiesKHR {
7887     VkDisplayKHR                  display;
7888     const char*                   displayName;
7889     VkExtent2D                    physicalDimensions;
7890     VkExtent2D                    physicalResolution;
7891     VkSurfaceTransformFlagsKHR    supportedTransforms;
7892     VkBool32                      planeReorderPossible;
7893     VkBool32                      persistentContent;
7894 } VkDisplayPropertiesKHR;
7895 
7896 typedef struct VkDisplaySurfaceCreateInfoKHR {
7897     VkStructureType                   sType;
7898     const void*                       pNext;
7899     VkDisplaySurfaceCreateFlagsKHR    flags;
7900     VkDisplayModeKHR                  displayMode;
7901     uint32_t                          planeIndex;
7902     uint32_t                          planeStackIndex;
7903     VkSurfaceTransformFlagBitsKHR     transform;
7904     float                             globalAlpha;
7905     VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
7906     VkExtent2D                        imageExtent;
7907 } VkDisplaySurfaceCreateInfoKHR;
7908 
7909 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
7910 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
7911 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
7912 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
7913 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
7914 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
7915 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
7916 
7917 #ifndef VK_NO_PROTOTYPES
7918 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
7919     VkPhysicalDevice                            physicalDevice,
7920     uint32_t*                                   pPropertyCount,
7921     VkDisplayPropertiesKHR*                     pProperties);
7922 
7923 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
7924     VkPhysicalDevice                            physicalDevice,
7925     uint32_t*                                   pPropertyCount,
7926     VkDisplayPlanePropertiesKHR*                pProperties);
7927 
7928 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
7929     VkPhysicalDevice                            physicalDevice,
7930     uint32_t                                    planeIndex,
7931     uint32_t*                                   pDisplayCount,
7932     VkDisplayKHR*                               pDisplays);
7933 
7934 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
7935     VkPhysicalDevice                            physicalDevice,
7936     VkDisplayKHR                                display,
7937     uint32_t*                                   pPropertyCount,
7938     VkDisplayModePropertiesKHR*                 pProperties);
7939 
7940 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
7941     VkPhysicalDevice                            physicalDevice,
7942     VkDisplayKHR                                display,
7943     const VkDisplayModeCreateInfoKHR*           pCreateInfo,
7944     const VkAllocationCallbacks*                pAllocator,
7945     VkDisplayModeKHR*                           pMode);
7946 
7947 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
7948     VkPhysicalDevice                            physicalDevice,
7949     VkDisplayModeKHR                            mode,
7950     uint32_t                                    planeIndex,
7951     VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
7952 
7953 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
7954     VkInstance                                  instance,
7955     const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
7956     const VkAllocationCallbacks*                pAllocator,
7957     VkSurfaceKHR*                               pSurface);
7958 #endif
7959 
7960 
7961 // VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
7962 #define VK_KHR_display_swapchain 1
7963 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
7964 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
7965 typedef struct VkDisplayPresentInfoKHR {
7966     VkStructureType    sType;
7967     const void*        pNext;
7968     VkRect2D           srcRect;
7969     VkRect2D           dstRect;
7970     VkBool32           persistent;
7971 } VkDisplayPresentInfoKHR;
7972 
7973 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
7974 
7975 #ifndef VK_NO_PROTOTYPES
7976 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
7977     VkDevice                                    device,
7978     uint32_t                                    swapchainCount,
7979     const VkSwapchainCreateInfoKHR*             pCreateInfos,
7980     const VkAllocationCallbacks*                pAllocator,
7981     VkSwapchainKHR*                             pSwapchains);
7982 #endif
7983 
7984 
7985 // VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
7986 #define VK_KHR_sampler_mirror_clamp_to_edge 1
7987 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
7988 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
7989 
7990 
7991 // VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
7992 #define VK_KHR_video_queue 1
7993 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
7994 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
7995 #define VK_KHR_VIDEO_QUEUE_SPEC_VERSION   8
7996 #define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
7997 
7998 typedef enum VkQueryResultStatusKHR {
7999     VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
8000     VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
8001     VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
8002     VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
8003     VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
8004 } VkQueryResultStatusKHR;
8005 
8006 typedef enum VkVideoCodecOperationFlagBitsKHR {
8007     VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
8008     VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
8009     VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
8010     VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
8011     VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
8012     VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
8013     VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8014 } VkVideoCodecOperationFlagBitsKHR;
8015 typedef VkFlags VkVideoCodecOperationFlagsKHR;
8016 
8017 typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
8018     VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
8019     VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
8020     VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
8021     VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
8022     VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
8023     VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8024 } VkVideoChromaSubsamplingFlagBitsKHR;
8025 typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
8026 
8027 typedef enum VkVideoComponentBitDepthFlagBitsKHR {
8028     VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
8029     VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
8030     VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
8031     VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
8032     VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8033 } VkVideoComponentBitDepthFlagBitsKHR;
8034 typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
8035 
8036 typedef enum VkVideoCapabilityFlagBitsKHR {
8037     VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
8038     VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
8039     VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8040 } VkVideoCapabilityFlagBitsKHR;
8041 typedef VkFlags VkVideoCapabilityFlagsKHR;
8042 
8043 typedef enum VkVideoSessionCreateFlagBitsKHR {
8044     VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
8045     VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
8046     VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
8047     VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8048 } VkVideoSessionCreateFlagBitsKHR;
8049 typedef VkFlags VkVideoSessionCreateFlagsKHR;
8050 typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
8051 typedef VkFlags VkVideoBeginCodingFlagsKHR;
8052 typedef VkFlags VkVideoEndCodingFlagsKHR;
8053 
8054 typedef enum VkVideoCodingControlFlagBitsKHR {
8055     VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
8056     VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
8057     VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
8058     VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8059 } VkVideoCodingControlFlagBitsKHR;
8060 typedef VkFlags VkVideoCodingControlFlagsKHR;
8061 typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
8062     VkStructureType    sType;
8063     void*              pNext;
8064     VkBool32           queryResultStatusSupport;
8065 } VkQueueFamilyQueryResultStatusPropertiesKHR;
8066 
8067 typedef struct VkQueueFamilyVideoPropertiesKHR {
8068     VkStructureType                  sType;
8069     void*                            pNext;
8070     VkVideoCodecOperationFlagsKHR    videoCodecOperations;
8071 } VkQueueFamilyVideoPropertiesKHR;
8072 
8073 typedef struct VkVideoProfileInfoKHR {
8074     VkStructureType                     sType;
8075     const void*                         pNext;
8076     VkVideoCodecOperationFlagBitsKHR    videoCodecOperation;
8077     VkVideoChromaSubsamplingFlagsKHR    chromaSubsampling;
8078     VkVideoComponentBitDepthFlagsKHR    lumaBitDepth;
8079     VkVideoComponentBitDepthFlagsKHR    chromaBitDepth;
8080 } VkVideoProfileInfoKHR;
8081 
8082 typedef struct VkVideoProfileListInfoKHR {
8083     VkStructureType                 sType;
8084     const void*                     pNext;
8085     uint32_t                        profileCount;
8086     const VkVideoProfileInfoKHR*    pProfiles;
8087 } VkVideoProfileListInfoKHR;
8088 
8089 typedef struct VkVideoCapabilitiesKHR {
8090     VkStructureType              sType;
8091     void*                        pNext;
8092     VkVideoCapabilityFlagsKHR    flags;
8093     VkDeviceSize                 minBitstreamBufferOffsetAlignment;
8094     VkDeviceSize                 minBitstreamBufferSizeAlignment;
8095     VkExtent2D                   pictureAccessGranularity;
8096     VkExtent2D                   minCodedExtent;
8097     VkExtent2D                   maxCodedExtent;
8098     uint32_t                     maxDpbSlots;
8099     uint32_t                     maxActiveReferencePictures;
8100     VkExtensionProperties        stdHeaderVersion;
8101 } VkVideoCapabilitiesKHR;
8102 
8103 typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
8104     VkStructureType      sType;
8105     const void*          pNext;
8106     VkImageUsageFlags    imageUsage;
8107 } VkPhysicalDeviceVideoFormatInfoKHR;
8108 
8109 typedef struct VkVideoFormatPropertiesKHR {
8110     VkStructureType       sType;
8111     void*                 pNext;
8112     VkFormat              format;
8113     VkComponentMapping    componentMapping;
8114     VkImageCreateFlags    imageCreateFlags;
8115     VkImageType           imageType;
8116     VkImageTiling         imageTiling;
8117     VkImageUsageFlags     imageUsageFlags;
8118 } VkVideoFormatPropertiesKHR;
8119 
8120 typedef struct VkVideoPictureResourceInfoKHR {
8121     VkStructureType    sType;
8122     const void*        pNext;
8123     VkOffset2D         codedOffset;
8124     VkExtent2D         codedExtent;
8125     uint32_t           baseArrayLayer;
8126     VkImageView        imageViewBinding;
8127 } VkVideoPictureResourceInfoKHR;
8128 
8129 typedef struct VkVideoReferenceSlotInfoKHR {
8130     VkStructureType                         sType;
8131     const void*                             pNext;
8132     int32_t                                 slotIndex;
8133     const VkVideoPictureResourceInfoKHR*    pPictureResource;
8134 } VkVideoReferenceSlotInfoKHR;
8135 
8136 typedef struct VkVideoSessionMemoryRequirementsKHR {
8137     VkStructureType         sType;
8138     void*                   pNext;
8139     uint32_t                memoryBindIndex;
8140     VkMemoryRequirements    memoryRequirements;
8141 } VkVideoSessionMemoryRequirementsKHR;
8142 
8143 typedef struct VkBindVideoSessionMemoryInfoKHR {
8144     VkStructureType    sType;
8145     const void*        pNext;
8146     uint32_t           memoryBindIndex;
8147     VkDeviceMemory     memory;
8148     VkDeviceSize       memoryOffset;
8149     VkDeviceSize       memorySize;
8150 } VkBindVideoSessionMemoryInfoKHR;
8151 
8152 typedef struct VkVideoSessionCreateInfoKHR {
8153     VkStructureType                 sType;
8154     const void*                     pNext;
8155     uint32_t                        queueFamilyIndex;
8156     VkVideoSessionCreateFlagsKHR    flags;
8157     const VkVideoProfileInfoKHR*    pVideoProfile;
8158     VkFormat                        pictureFormat;
8159     VkExtent2D                      maxCodedExtent;
8160     VkFormat                        referencePictureFormat;
8161     uint32_t                        maxDpbSlots;
8162     uint32_t                        maxActiveReferencePictures;
8163     const VkExtensionProperties*    pStdHeaderVersion;
8164 } VkVideoSessionCreateInfoKHR;
8165 
8166 typedef struct VkVideoSessionParametersCreateInfoKHR {
8167     VkStructureType                           sType;
8168     const void*                               pNext;
8169     VkVideoSessionParametersCreateFlagsKHR    flags;
8170     VkVideoSessionParametersKHR               videoSessionParametersTemplate;
8171     VkVideoSessionKHR                         videoSession;
8172 } VkVideoSessionParametersCreateInfoKHR;
8173 
8174 typedef struct VkVideoSessionParametersUpdateInfoKHR {
8175     VkStructureType    sType;
8176     const void*        pNext;
8177     uint32_t           updateSequenceCount;
8178 } VkVideoSessionParametersUpdateInfoKHR;
8179 
8180 typedef struct VkVideoBeginCodingInfoKHR {
8181     VkStructureType                       sType;
8182     const void*                           pNext;
8183     VkVideoBeginCodingFlagsKHR            flags;
8184     VkVideoSessionKHR                     videoSession;
8185     VkVideoSessionParametersKHR           videoSessionParameters;
8186     uint32_t                              referenceSlotCount;
8187     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
8188 } VkVideoBeginCodingInfoKHR;
8189 
8190 typedef struct VkVideoEndCodingInfoKHR {
8191     VkStructureType             sType;
8192     const void*                 pNext;
8193     VkVideoEndCodingFlagsKHR    flags;
8194 } VkVideoEndCodingInfoKHR;
8195 
8196 typedef struct VkVideoCodingControlInfoKHR {
8197     VkStructureType                 sType;
8198     const void*                     pNext;
8199     VkVideoCodingControlFlagsKHR    flags;
8200 } VkVideoCodingControlInfoKHR;
8201 
8202 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
8203 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
8204 typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
8205 typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
8206 typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
8207 typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
8208 typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
8209 typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
8210 typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
8211 typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
8212 typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
8213 typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
8214 
8215 #ifndef VK_NO_PROTOTYPES
8216 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
8217     VkPhysicalDevice                            physicalDevice,
8218     const VkVideoProfileInfoKHR*                pVideoProfile,
8219     VkVideoCapabilitiesKHR*                     pCapabilities);
8220 
8221 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
8222     VkPhysicalDevice                            physicalDevice,
8223     const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
8224     uint32_t*                                   pVideoFormatPropertyCount,
8225     VkVideoFormatPropertiesKHR*                 pVideoFormatProperties);
8226 
8227 VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
8228     VkDevice                                    device,
8229     const VkVideoSessionCreateInfoKHR*          pCreateInfo,
8230     const VkAllocationCallbacks*                pAllocator,
8231     VkVideoSessionKHR*                          pVideoSession);
8232 
8233 VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
8234     VkDevice                                    device,
8235     VkVideoSessionKHR                           videoSession,
8236     const VkAllocationCallbacks*                pAllocator);
8237 
8238 VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
8239     VkDevice                                    device,
8240     VkVideoSessionKHR                           videoSession,
8241     uint32_t*                                   pMemoryRequirementsCount,
8242     VkVideoSessionMemoryRequirementsKHR*        pMemoryRequirements);
8243 
8244 VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
8245     VkDevice                                    device,
8246     VkVideoSessionKHR                           videoSession,
8247     uint32_t                                    bindSessionMemoryInfoCount,
8248     const VkBindVideoSessionMemoryInfoKHR*      pBindSessionMemoryInfos);
8249 
8250 VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
8251     VkDevice                                    device,
8252     const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
8253     const VkAllocationCallbacks*                pAllocator,
8254     VkVideoSessionParametersKHR*                pVideoSessionParameters);
8255 
8256 VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
8257     VkDevice                                    device,
8258     VkVideoSessionParametersKHR                 videoSessionParameters,
8259     const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
8260 
8261 VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
8262     VkDevice                                    device,
8263     VkVideoSessionParametersKHR                 videoSessionParameters,
8264     const VkAllocationCallbacks*                pAllocator);
8265 
8266 VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
8267     VkCommandBuffer                             commandBuffer,
8268     const VkVideoBeginCodingInfoKHR*            pBeginInfo);
8269 
8270 VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
8271     VkCommandBuffer                             commandBuffer,
8272     const VkVideoEndCodingInfoKHR*              pEndCodingInfo);
8273 
8274 VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
8275     VkCommandBuffer                             commandBuffer,
8276     const VkVideoCodingControlInfoKHR*          pCodingControlInfo);
8277 #endif
8278 
8279 
8280 // VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
8281 #define VK_KHR_video_decode_queue 1
8282 #define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
8283 #define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
8284 
8285 typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
8286     VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
8287     VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
8288     VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8289 } VkVideoDecodeCapabilityFlagBitsKHR;
8290 typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
8291 
8292 typedef enum VkVideoDecodeUsageFlagBitsKHR {
8293     VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
8294     VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
8295     VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
8296     VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
8297     VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8298 } VkVideoDecodeUsageFlagBitsKHR;
8299 typedef VkFlags VkVideoDecodeUsageFlagsKHR;
8300 typedef VkFlags VkVideoDecodeFlagsKHR;
8301 typedef struct VkVideoDecodeCapabilitiesKHR {
8302     VkStructureType                    sType;
8303     void*                              pNext;
8304     VkVideoDecodeCapabilityFlagsKHR    flags;
8305 } VkVideoDecodeCapabilitiesKHR;
8306 
8307 typedef struct VkVideoDecodeUsageInfoKHR {
8308     VkStructureType               sType;
8309     const void*                   pNext;
8310     VkVideoDecodeUsageFlagsKHR    videoUsageHints;
8311 } VkVideoDecodeUsageInfoKHR;
8312 
8313 typedef struct VkVideoDecodeInfoKHR {
8314     VkStructureType                       sType;
8315     const void*                           pNext;
8316     VkVideoDecodeFlagsKHR                 flags;
8317     VkBuffer                              srcBuffer;
8318     VkDeviceSize                          srcBufferOffset;
8319     VkDeviceSize                          srcBufferRange;
8320     VkVideoPictureResourceInfoKHR         dstPictureResource;
8321     const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
8322     uint32_t                              referenceSlotCount;
8323     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
8324 } VkVideoDecodeInfoKHR;
8325 
8326 typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
8327 
8328 #ifndef VK_NO_PROTOTYPES
8329 VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
8330     VkCommandBuffer                             commandBuffer,
8331     const VkVideoDecodeInfoKHR*                 pDecodeInfo);
8332 #endif
8333 
8334 
8335 // VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
8336 #define VK_KHR_video_encode_h264 1
8337 #include "vk_video/vulkan_video_codec_h264std.h"
8338 #include "vk_video/vulkan_video_codec_h264std_encode.h"
8339 #define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
8340 #define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
8341 
8342 typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
8343     VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
8344     VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
8345     VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
8346     VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
8347     VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
8348     VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
8349     VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
8350     VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
8351     VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
8352     VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8353 } VkVideoEncodeH264CapabilityFlagBitsKHR;
8354 typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
8355 
8356 typedef enum VkVideoEncodeH264StdFlagBitsKHR {
8357     VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
8358     VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
8359     VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
8360     VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
8361     VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
8362     VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
8363     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
8364     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
8365     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
8366     VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
8367     VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
8368     VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
8369     VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
8370     VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
8371     VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
8372     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
8373     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
8374     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
8375     VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
8376     VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
8377     VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8378 } VkVideoEncodeH264StdFlagBitsKHR;
8379 typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
8380 
8381 typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
8382     VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
8383     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
8384     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
8385     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
8386     VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
8387     VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8388 } VkVideoEncodeH264RateControlFlagBitsKHR;
8389 typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
8390 typedef struct VkVideoEncodeH264CapabilitiesKHR {
8391     VkStructureType                        sType;
8392     void*                                  pNext;
8393     VkVideoEncodeH264CapabilityFlagsKHR    flags;
8394     StdVideoH264LevelIdc                   maxLevelIdc;
8395     uint32_t                               maxSliceCount;
8396     uint32_t                               maxPPictureL0ReferenceCount;
8397     uint32_t                               maxBPictureL0ReferenceCount;
8398     uint32_t                               maxL1ReferenceCount;
8399     uint32_t                               maxTemporalLayerCount;
8400     VkBool32                               expectDyadicTemporalLayerPattern;
8401     int32_t                                minQp;
8402     int32_t                                maxQp;
8403     VkBool32                               prefersGopRemainingFrames;
8404     VkBool32                               requiresGopRemainingFrames;
8405     VkVideoEncodeH264StdFlagsKHR           stdSyntaxFlags;
8406 } VkVideoEncodeH264CapabilitiesKHR;
8407 
8408 typedef struct VkVideoEncodeH264QpKHR {
8409     int32_t    qpI;
8410     int32_t    qpP;
8411     int32_t    qpB;
8412 } VkVideoEncodeH264QpKHR;
8413 
8414 typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
8415     VkStructureType                         sType;
8416     void*                                   pNext;
8417     VkVideoEncodeH264RateControlFlagsKHR    preferredRateControlFlags;
8418     uint32_t                                preferredGopFrameCount;
8419     uint32_t                                preferredIdrPeriod;
8420     uint32_t                                preferredConsecutiveBFrameCount;
8421     uint32_t                                preferredTemporalLayerCount;
8422     VkVideoEncodeH264QpKHR                  preferredConstantQp;
8423     uint32_t                                preferredMaxL0ReferenceCount;
8424     uint32_t                                preferredMaxL1ReferenceCount;
8425     VkBool32                                preferredStdEntropyCodingModeFlag;
8426 } VkVideoEncodeH264QualityLevelPropertiesKHR;
8427 
8428 typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
8429     VkStructureType         sType;
8430     const void*             pNext;
8431     VkBool32                useMaxLevelIdc;
8432     StdVideoH264LevelIdc    maxLevelIdc;
8433 } VkVideoEncodeH264SessionCreateInfoKHR;
8434 
8435 typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
8436     VkStructureType                            sType;
8437     const void*                                pNext;
8438     uint32_t                                   stdSPSCount;
8439     const StdVideoH264SequenceParameterSet*    pStdSPSs;
8440     uint32_t                                   stdPPSCount;
8441     const StdVideoH264PictureParameterSet*     pStdPPSs;
8442 } VkVideoEncodeH264SessionParametersAddInfoKHR;
8443 
8444 typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
8445     VkStructureType                                        sType;
8446     const void*                                            pNext;
8447     uint32_t                                               maxStdSPSCount;
8448     uint32_t                                               maxStdPPSCount;
8449     const VkVideoEncodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
8450 } VkVideoEncodeH264SessionParametersCreateInfoKHR;
8451 
8452 typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
8453     VkStructureType    sType;
8454     const void*        pNext;
8455     VkBool32           writeStdSPS;
8456     VkBool32           writeStdPPS;
8457     uint32_t           stdSPSId;
8458     uint32_t           stdPPSId;
8459 } VkVideoEncodeH264SessionParametersGetInfoKHR;
8460 
8461 typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
8462     VkStructureType    sType;
8463     void*              pNext;
8464     VkBool32           hasStdSPSOverrides;
8465     VkBool32           hasStdPPSOverrides;
8466 } VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
8467 
8468 typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
8469     VkStructureType                         sType;
8470     const void*                             pNext;
8471     int32_t                                 constantQp;
8472     const StdVideoEncodeH264SliceHeader*    pStdSliceHeader;
8473 } VkVideoEncodeH264NaluSliceInfoKHR;
8474 
8475 typedef struct VkVideoEncodeH264PictureInfoKHR {
8476     VkStructureType                             sType;
8477     const void*                                 pNext;
8478     uint32_t                                    naluSliceEntryCount;
8479     const VkVideoEncodeH264NaluSliceInfoKHR*    pNaluSliceEntries;
8480     const StdVideoEncodeH264PictureInfo*        pStdPictureInfo;
8481     VkBool32                                    generatePrefixNalu;
8482 } VkVideoEncodeH264PictureInfoKHR;
8483 
8484 typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
8485     VkStructureType                           sType;
8486     const void*                               pNext;
8487     const StdVideoEncodeH264ReferenceInfo*    pStdReferenceInfo;
8488 } VkVideoEncodeH264DpbSlotInfoKHR;
8489 
8490 typedef struct VkVideoEncodeH264ProfileInfoKHR {
8491     VkStructureType           sType;
8492     const void*               pNext;
8493     StdVideoH264ProfileIdc    stdProfileIdc;
8494 } VkVideoEncodeH264ProfileInfoKHR;
8495 
8496 typedef struct VkVideoEncodeH264RateControlInfoKHR {
8497     VkStructureType                         sType;
8498     const void*                             pNext;
8499     VkVideoEncodeH264RateControlFlagsKHR    flags;
8500     uint32_t                                gopFrameCount;
8501     uint32_t                                idrPeriod;
8502     uint32_t                                consecutiveBFrameCount;
8503     uint32_t                                temporalLayerCount;
8504 } VkVideoEncodeH264RateControlInfoKHR;
8505 
8506 typedef struct VkVideoEncodeH264FrameSizeKHR {
8507     uint32_t    frameISize;
8508     uint32_t    framePSize;
8509     uint32_t    frameBSize;
8510 } VkVideoEncodeH264FrameSizeKHR;
8511 
8512 typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
8513     VkStructureType                  sType;
8514     const void*                      pNext;
8515     VkBool32                         useMinQp;
8516     VkVideoEncodeH264QpKHR           minQp;
8517     VkBool32                         useMaxQp;
8518     VkVideoEncodeH264QpKHR           maxQp;
8519     VkBool32                         useMaxFrameSize;
8520     VkVideoEncodeH264FrameSizeKHR    maxFrameSize;
8521 } VkVideoEncodeH264RateControlLayerInfoKHR;
8522 
8523 typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
8524     VkStructureType    sType;
8525     const void*        pNext;
8526     VkBool32           useGopRemainingFrames;
8527     uint32_t           gopRemainingI;
8528     uint32_t           gopRemainingP;
8529     uint32_t           gopRemainingB;
8530 } VkVideoEncodeH264GopRemainingFrameInfoKHR;
8531 
8532 
8533 
8534 // VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
8535 #define VK_KHR_video_encode_h265 1
8536 #include "vk_video/vulkan_video_codec_h265std.h"
8537 #include "vk_video/vulkan_video_codec_h265std_encode.h"
8538 #define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
8539 #define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
8540 
8541 typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
8542     VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
8543     VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
8544     VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
8545     VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
8546     VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
8547     VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
8548     VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
8549     VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
8550     VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
8551     VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
8552     VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8553 } VkVideoEncodeH265CapabilityFlagBitsKHR;
8554 typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
8555 
8556 typedef enum VkVideoEncodeH265StdFlagBitsKHR {
8557     VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
8558     VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
8559     VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
8560     VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
8561     VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
8562     VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
8563     VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
8564     VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
8565     VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
8566     VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
8567     VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
8568     VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
8569     VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
8570     VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
8571     VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
8572     VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
8573     VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
8574     VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
8575     VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
8576     VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
8577     VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
8578     VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8579 } VkVideoEncodeH265StdFlagBitsKHR;
8580 typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
8581 
8582 typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
8583     VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
8584     VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
8585     VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
8586     VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8587 } VkVideoEncodeH265CtbSizeFlagBitsKHR;
8588 typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
8589 
8590 typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
8591     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
8592     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
8593     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
8594     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
8595     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8596 } VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
8597 typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
8598 
8599 typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
8600     VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
8601     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
8602     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
8603     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
8604     VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
8605     VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8606 } VkVideoEncodeH265RateControlFlagBitsKHR;
8607 typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
8608 typedef struct VkVideoEncodeH265CapabilitiesKHR {
8609     VkStructureType                                sType;
8610     void*                                          pNext;
8611     VkVideoEncodeH265CapabilityFlagsKHR            flags;
8612     StdVideoH265LevelIdc                           maxLevelIdc;
8613     uint32_t                                       maxSliceSegmentCount;
8614     VkExtent2D                                     maxTiles;
8615     VkVideoEncodeH265CtbSizeFlagsKHR               ctbSizes;
8616     VkVideoEncodeH265TransformBlockSizeFlagsKHR    transformBlockSizes;
8617     uint32_t                                       maxPPictureL0ReferenceCount;
8618     uint32_t                                       maxBPictureL0ReferenceCount;
8619     uint32_t                                       maxL1ReferenceCount;
8620     uint32_t                                       maxSubLayerCount;
8621     VkBool32                                       expectDyadicTemporalSubLayerPattern;
8622     int32_t                                        minQp;
8623     int32_t                                        maxQp;
8624     VkBool32                                       prefersGopRemainingFrames;
8625     VkBool32                                       requiresGopRemainingFrames;
8626     VkVideoEncodeH265StdFlagsKHR                   stdSyntaxFlags;
8627 } VkVideoEncodeH265CapabilitiesKHR;
8628 
8629 typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
8630     VkStructureType         sType;
8631     const void*             pNext;
8632     VkBool32                useMaxLevelIdc;
8633     StdVideoH265LevelIdc    maxLevelIdc;
8634 } VkVideoEncodeH265SessionCreateInfoKHR;
8635 
8636 typedef struct VkVideoEncodeH265QpKHR {
8637     int32_t    qpI;
8638     int32_t    qpP;
8639     int32_t    qpB;
8640 } VkVideoEncodeH265QpKHR;
8641 
8642 typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
8643     VkStructureType                         sType;
8644     void*                                   pNext;
8645     VkVideoEncodeH265RateControlFlagsKHR    preferredRateControlFlags;
8646     uint32_t                                preferredGopFrameCount;
8647     uint32_t                                preferredIdrPeriod;
8648     uint32_t                                preferredConsecutiveBFrameCount;
8649     uint32_t                                preferredSubLayerCount;
8650     VkVideoEncodeH265QpKHR                  preferredConstantQp;
8651     uint32_t                                preferredMaxL0ReferenceCount;
8652     uint32_t                                preferredMaxL1ReferenceCount;
8653 } VkVideoEncodeH265QualityLevelPropertiesKHR;
8654 
8655 typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
8656     VkStructureType                            sType;
8657     const void*                                pNext;
8658     uint32_t                                   stdVPSCount;
8659     const StdVideoH265VideoParameterSet*       pStdVPSs;
8660     uint32_t                                   stdSPSCount;
8661     const StdVideoH265SequenceParameterSet*    pStdSPSs;
8662     uint32_t                                   stdPPSCount;
8663     const StdVideoH265PictureParameterSet*     pStdPPSs;
8664 } VkVideoEncodeH265SessionParametersAddInfoKHR;
8665 
8666 typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
8667     VkStructureType                                        sType;
8668     const void*                                            pNext;
8669     uint32_t                                               maxStdVPSCount;
8670     uint32_t                                               maxStdSPSCount;
8671     uint32_t                                               maxStdPPSCount;
8672     const VkVideoEncodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
8673 } VkVideoEncodeH265SessionParametersCreateInfoKHR;
8674 
8675 typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
8676     VkStructureType    sType;
8677     const void*        pNext;
8678     VkBool32           writeStdVPS;
8679     VkBool32           writeStdSPS;
8680     VkBool32           writeStdPPS;
8681     uint32_t           stdVPSId;
8682     uint32_t           stdSPSId;
8683     uint32_t           stdPPSId;
8684 } VkVideoEncodeH265SessionParametersGetInfoKHR;
8685 
8686 typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
8687     VkStructureType    sType;
8688     void*              pNext;
8689     VkBool32           hasStdVPSOverrides;
8690     VkBool32           hasStdSPSOverrides;
8691     VkBool32           hasStdPPSOverrides;
8692 } VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
8693 
8694 typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
8695     VkStructureType                                sType;
8696     const void*                                    pNext;
8697     int32_t                                        constantQp;
8698     const StdVideoEncodeH265SliceSegmentHeader*    pStdSliceSegmentHeader;
8699 } VkVideoEncodeH265NaluSliceSegmentInfoKHR;
8700 
8701 typedef struct VkVideoEncodeH265PictureInfoKHR {
8702     VkStructureType                                    sType;
8703     const void*                                        pNext;
8704     uint32_t                                           naluSliceSegmentEntryCount;
8705     const VkVideoEncodeH265NaluSliceSegmentInfoKHR*    pNaluSliceSegmentEntries;
8706     const StdVideoEncodeH265PictureInfo*               pStdPictureInfo;
8707 } VkVideoEncodeH265PictureInfoKHR;
8708 
8709 typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
8710     VkStructureType                           sType;
8711     const void*                               pNext;
8712     const StdVideoEncodeH265ReferenceInfo*    pStdReferenceInfo;
8713 } VkVideoEncodeH265DpbSlotInfoKHR;
8714 
8715 typedef struct VkVideoEncodeH265ProfileInfoKHR {
8716     VkStructureType           sType;
8717     const void*               pNext;
8718     StdVideoH265ProfileIdc    stdProfileIdc;
8719 } VkVideoEncodeH265ProfileInfoKHR;
8720 
8721 typedef struct VkVideoEncodeH265RateControlInfoKHR {
8722     VkStructureType                         sType;
8723     const void*                             pNext;
8724     VkVideoEncodeH265RateControlFlagsKHR    flags;
8725     uint32_t                                gopFrameCount;
8726     uint32_t                                idrPeriod;
8727     uint32_t                                consecutiveBFrameCount;
8728     uint32_t                                subLayerCount;
8729 } VkVideoEncodeH265RateControlInfoKHR;
8730 
8731 typedef struct VkVideoEncodeH265FrameSizeKHR {
8732     uint32_t    frameISize;
8733     uint32_t    framePSize;
8734     uint32_t    frameBSize;
8735 } VkVideoEncodeH265FrameSizeKHR;
8736 
8737 typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
8738     VkStructureType                  sType;
8739     const void*                      pNext;
8740     VkBool32                         useMinQp;
8741     VkVideoEncodeH265QpKHR           minQp;
8742     VkBool32                         useMaxQp;
8743     VkVideoEncodeH265QpKHR           maxQp;
8744     VkBool32                         useMaxFrameSize;
8745     VkVideoEncodeH265FrameSizeKHR    maxFrameSize;
8746 } VkVideoEncodeH265RateControlLayerInfoKHR;
8747 
8748 typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
8749     VkStructureType    sType;
8750     const void*        pNext;
8751     VkBool32           useGopRemainingFrames;
8752     uint32_t           gopRemainingI;
8753     uint32_t           gopRemainingP;
8754     uint32_t           gopRemainingB;
8755 } VkVideoEncodeH265GopRemainingFrameInfoKHR;
8756 
8757 
8758 
8759 // VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
8760 #define VK_KHR_video_decode_h264 1
8761 #include "vk_video/vulkan_video_codec_h264std_decode.h"
8762 #define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
8763 #define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
8764 
8765 typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
8766     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
8767     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
8768     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
8769     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8770 } VkVideoDecodeH264PictureLayoutFlagBitsKHR;
8771 typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
8772 typedef struct VkVideoDecodeH264ProfileInfoKHR {
8773     VkStructureType                              sType;
8774     const void*                                  pNext;
8775     StdVideoH264ProfileIdc                       stdProfileIdc;
8776     VkVideoDecodeH264PictureLayoutFlagBitsKHR    pictureLayout;
8777 } VkVideoDecodeH264ProfileInfoKHR;
8778 
8779 typedef struct VkVideoDecodeH264CapabilitiesKHR {
8780     VkStructureType         sType;
8781     void*                   pNext;
8782     StdVideoH264LevelIdc    maxLevelIdc;
8783     VkOffset2D              fieldOffsetGranularity;
8784 } VkVideoDecodeH264CapabilitiesKHR;
8785 
8786 typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
8787     VkStructureType                            sType;
8788     const void*                                pNext;
8789     uint32_t                                   stdSPSCount;
8790     const StdVideoH264SequenceParameterSet*    pStdSPSs;
8791     uint32_t                                   stdPPSCount;
8792     const StdVideoH264PictureParameterSet*     pStdPPSs;
8793 } VkVideoDecodeH264SessionParametersAddInfoKHR;
8794 
8795 typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
8796     VkStructureType                                        sType;
8797     const void*                                            pNext;
8798     uint32_t                                               maxStdSPSCount;
8799     uint32_t                                               maxStdPPSCount;
8800     const VkVideoDecodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
8801 } VkVideoDecodeH264SessionParametersCreateInfoKHR;
8802 
8803 typedef struct VkVideoDecodeH264PictureInfoKHR {
8804     VkStructureType                         sType;
8805     const void*                             pNext;
8806     const StdVideoDecodeH264PictureInfo*    pStdPictureInfo;
8807     uint32_t                                sliceCount;
8808     const uint32_t*                         pSliceOffsets;
8809 } VkVideoDecodeH264PictureInfoKHR;
8810 
8811 typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
8812     VkStructureType                           sType;
8813     const void*                               pNext;
8814     const StdVideoDecodeH264ReferenceInfo*    pStdReferenceInfo;
8815 } VkVideoDecodeH264DpbSlotInfoKHR;
8816 
8817 
8818 
8819 // VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
8820 #define VK_KHR_dynamic_rendering 1
8821 #define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
8822 #define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
8823 typedef VkRenderingFlags VkRenderingFlagsKHR;
8824 
8825 typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
8826 
8827 typedef VkRenderingInfo VkRenderingInfoKHR;
8828 
8829 typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
8830 
8831 typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
8832 
8833 typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
8834 
8835 typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
8836 
8837 typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
8838     VkStructureType    sType;
8839     const void*        pNext;
8840     VkImageView        imageView;
8841     VkImageLayout      imageLayout;
8842     VkExtent2D         shadingRateAttachmentTexelSize;
8843 } VkRenderingFragmentShadingRateAttachmentInfoKHR;
8844 
8845 typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
8846     VkStructureType    sType;
8847     const void*        pNext;
8848     VkImageView        imageView;
8849     VkImageLayout      imageLayout;
8850 } VkRenderingFragmentDensityMapAttachmentInfoEXT;
8851 
8852 typedef struct VkAttachmentSampleCountInfoAMD {
8853     VkStructureType                 sType;
8854     const void*                     pNext;
8855     uint32_t                        colorAttachmentCount;
8856     const VkSampleCountFlagBits*    pColorAttachmentSamples;
8857     VkSampleCountFlagBits           depthStencilAttachmentSamples;
8858 } VkAttachmentSampleCountInfoAMD;
8859 
8860 typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
8861 
8862 typedef struct VkMultiviewPerViewAttributesInfoNVX {
8863     VkStructureType    sType;
8864     const void*        pNext;
8865     VkBool32           perViewAttributes;
8866     VkBool32           perViewAttributesPositionXOnly;
8867 } VkMultiviewPerViewAttributesInfoNVX;
8868 
8869 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
8870 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer                   commandBuffer);
8871 
8872 #ifndef VK_NO_PROTOTYPES
8873 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
8874     VkCommandBuffer                             commandBuffer,
8875     const VkRenderingInfo*                      pRenderingInfo);
8876 
8877 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
8878     VkCommandBuffer                             commandBuffer);
8879 #endif
8880 
8881 
8882 // VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
8883 #define VK_KHR_multiview 1
8884 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
8885 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
8886 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
8887 
8888 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
8889 
8890 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
8891 
8892 
8893 
8894 // VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
8895 #define VK_KHR_get_physical_device_properties2 1
8896 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
8897 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
8898 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
8899 
8900 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
8901 
8902 typedef VkFormatProperties2 VkFormatProperties2KHR;
8903 
8904 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
8905 
8906 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
8907 
8908 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
8909 
8910 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
8911 
8912 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
8913 
8914 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
8915 
8916 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
8917 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
8918 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
8919 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
8920 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
8921 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
8922 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
8923 
8924 #ifndef VK_NO_PROTOTYPES
8925 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
8926     VkPhysicalDevice                            physicalDevice,
8927     VkPhysicalDeviceFeatures2*                  pFeatures);
8928 
8929 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
8930     VkPhysicalDevice                            physicalDevice,
8931     VkPhysicalDeviceProperties2*                pProperties);
8932 
8933 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
8934     VkPhysicalDevice                            physicalDevice,
8935     VkFormat                                    format,
8936     VkFormatProperties2*                        pFormatProperties);
8937 
8938 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
8939     VkPhysicalDevice                            physicalDevice,
8940     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
8941     VkImageFormatProperties2*                   pImageFormatProperties);
8942 
8943 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
8944     VkPhysicalDevice                            physicalDevice,
8945     uint32_t*                                   pQueueFamilyPropertyCount,
8946     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
8947 
8948 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
8949     VkPhysicalDevice                            physicalDevice,
8950     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
8951 
8952 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
8953     VkPhysicalDevice                            physicalDevice,
8954     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
8955     uint32_t*                                   pPropertyCount,
8956     VkSparseImageFormatProperties2*             pProperties);
8957 #endif
8958 
8959 
8960 // VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
8961 #define VK_KHR_device_group 1
8962 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  4
8963 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
8964 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
8965 
8966 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
8967 
8968 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
8969 
8970 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
8971 
8972 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
8973 
8974 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
8975 
8976 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
8977 
8978 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
8979 
8980 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
8981 
8982 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
8983 
8984 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
8985 
8986 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
8987 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
8988 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);
8989 
8990 #ifndef VK_NO_PROTOTYPES
8991 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
8992     VkDevice                                    device,
8993     uint32_t                                    heapIndex,
8994     uint32_t                                    localDeviceIndex,
8995     uint32_t                                    remoteDeviceIndex,
8996     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
8997 
8998 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
8999     VkCommandBuffer                             commandBuffer,
9000     uint32_t                                    deviceMask);
9001 
9002 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
9003     VkCommandBuffer                             commandBuffer,
9004     uint32_t                                    baseGroupX,
9005     uint32_t                                    baseGroupY,
9006     uint32_t                                    baseGroupZ,
9007     uint32_t                                    groupCountX,
9008     uint32_t                                    groupCountY,
9009     uint32_t                                    groupCountZ);
9010 #endif
9011 
9012 
9013 // VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
9014 #define VK_KHR_shader_draw_parameters 1
9015 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
9016 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
9017 
9018 
9019 // VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
9020 #define VK_KHR_maintenance1 1
9021 #define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
9022 #define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
9023 #define VK_KHR_MAINTENANCE1_SPEC_VERSION  VK_KHR_MAINTENANCE_1_SPEC_VERSION
9024 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
9025 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
9026 
9027 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
9028 
9029 #ifndef VK_NO_PROTOTYPES
9030 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
9031     VkDevice                                    device,
9032     VkCommandPool                               commandPool,
9033     VkCommandPoolTrimFlags                      flags);
9034 #endif
9035 
9036 
9037 // VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
9038 #define VK_KHR_device_group_creation 1
9039 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
9040 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
9041 #define VK_MAX_DEVICE_GROUP_SIZE_KHR      VK_MAX_DEVICE_GROUP_SIZE
9042 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
9043 
9044 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
9045 
9046 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
9047 
9048 #ifndef VK_NO_PROTOTYPES
9049 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
9050     VkInstance                                  instance,
9051     uint32_t*                                   pPhysicalDeviceGroupCount,
9052     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
9053 #endif
9054 
9055 
9056 // VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
9057 #define VK_KHR_external_memory_capabilities 1
9058 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
9059 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
9060 #define VK_LUID_SIZE_KHR                  VK_LUID_SIZE
9061 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
9062 
9063 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
9064 
9065 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
9066 
9067 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
9068 
9069 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
9070 
9071 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
9072 
9073 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
9074 
9075 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
9076 
9077 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
9078 
9079 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
9080 
9081 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
9082 
9083 #ifndef VK_NO_PROTOTYPES
9084 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
9085     VkPhysicalDevice                            physicalDevice,
9086     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
9087     VkExternalBufferProperties*                 pExternalBufferProperties);
9088 #endif
9089 
9090 
9091 // VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
9092 #define VK_KHR_external_memory 1
9093 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
9094 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
9095 #define VK_QUEUE_FAMILY_EXTERNAL_KHR      VK_QUEUE_FAMILY_EXTERNAL
9096 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
9097 
9098 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
9099 
9100 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
9101 
9102 
9103 
9104 // VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
9105 #define VK_KHR_external_memory_fd 1
9106 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
9107 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
9108 typedef struct VkImportMemoryFdInfoKHR {
9109     VkStructureType                       sType;
9110     const void*                           pNext;
9111     VkExternalMemoryHandleTypeFlagBits    handleType;
9112     int                                   fd;
9113 } VkImportMemoryFdInfoKHR;
9114 
9115 typedef struct VkMemoryFdPropertiesKHR {
9116     VkStructureType    sType;
9117     void*              pNext;
9118     uint32_t           memoryTypeBits;
9119 } VkMemoryFdPropertiesKHR;
9120 
9121 typedef struct VkMemoryGetFdInfoKHR {
9122     VkStructureType                       sType;
9123     const void*                           pNext;
9124     VkDeviceMemory                        memory;
9125     VkExternalMemoryHandleTypeFlagBits    handleType;
9126 } VkMemoryGetFdInfoKHR;
9127 
9128 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
9129 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
9130 
9131 #ifndef VK_NO_PROTOTYPES
9132 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
9133     VkDevice                                    device,
9134     const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
9135     int*                                        pFd);
9136 
9137 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
9138     VkDevice                                    device,
9139     VkExternalMemoryHandleTypeFlagBits          handleType,
9140     int                                         fd,
9141     VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
9142 #endif
9143 
9144 
9145 // VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
9146 #define VK_KHR_external_semaphore_capabilities 1
9147 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
9148 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
9149 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
9150 
9151 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
9152 
9153 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
9154 
9155 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
9156 
9157 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
9158 
9159 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
9160 
9161 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
9162 
9163 #ifndef VK_NO_PROTOTYPES
9164 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
9165     VkPhysicalDevice                            physicalDevice,
9166     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
9167     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
9168 #endif
9169 
9170 
9171 // VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
9172 #define VK_KHR_external_semaphore 1
9173 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
9174 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
9175 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
9176 
9177 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
9178 
9179 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
9180 
9181 
9182 
9183 // VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
9184 #define VK_KHR_external_semaphore_fd 1
9185 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
9186 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
9187 typedef struct VkImportSemaphoreFdInfoKHR {
9188     VkStructureType                          sType;
9189     const void*                              pNext;
9190     VkSemaphore                              semaphore;
9191     VkSemaphoreImportFlags                   flags;
9192     VkExternalSemaphoreHandleTypeFlagBits    handleType;
9193     int                                      fd;
9194 } VkImportSemaphoreFdInfoKHR;
9195 
9196 typedef struct VkSemaphoreGetFdInfoKHR {
9197     VkStructureType                          sType;
9198     const void*                              pNext;
9199     VkSemaphore                              semaphore;
9200     VkExternalSemaphoreHandleTypeFlagBits    handleType;
9201 } VkSemaphoreGetFdInfoKHR;
9202 
9203 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
9204 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
9205 
9206 #ifndef VK_NO_PROTOTYPES
9207 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
9208     VkDevice                                    device,
9209     const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
9210 
9211 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
9212     VkDevice                                    device,
9213     const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
9214     int*                                        pFd);
9215 #endif
9216 
9217 
9218 // VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
9219 #define VK_KHR_push_descriptor 1
9220 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
9221 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
9222 typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
9223     VkStructureType    sType;
9224     void*              pNext;
9225     uint32_t           maxPushDescriptors;
9226 } VkPhysicalDevicePushDescriptorPropertiesKHR;
9227 
9228 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
9229 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
9230 
9231 #ifndef VK_NO_PROTOTYPES
9232 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
9233     VkCommandBuffer                             commandBuffer,
9234     VkPipelineBindPoint                         pipelineBindPoint,
9235     VkPipelineLayout                            layout,
9236     uint32_t                                    set,
9237     uint32_t                                    descriptorWriteCount,
9238     const VkWriteDescriptorSet*                 pDescriptorWrites);
9239 
9240 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
9241     VkCommandBuffer                             commandBuffer,
9242     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
9243     VkPipelineLayout                            layout,
9244     uint32_t                                    set,
9245     const void*                                 pData);
9246 #endif
9247 
9248 
9249 // VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
9250 #define VK_KHR_shader_float16_int8 1
9251 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
9252 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
9253 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
9254 
9255 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
9256 
9257 
9258 
9259 // VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
9260 #define VK_KHR_16bit_storage 1
9261 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
9262 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
9263 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
9264 
9265 
9266 
9267 // VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
9268 #define VK_KHR_incremental_present 1
9269 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
9270 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
9271 typedef struct VkRectLayerKHR {
9272     VkOffset2D    offset;
9273     VkExtent2D    extent;
9274     uint32_t      layer;
9275 } VkRectLayerKHR;
9276 
9277 typedef struct VkPresentRegionKHR {
9278     uint32_t                 rectangleCount;
9279     const VkRectLayerKHR*    pRectangles;
9280 } VkPresentRegionKHR;
9281 
9282 typedef struct VkPresentRegionsKHR {
9283     VkStructureType              sType;
9284     const void*                  pNext;
9285     uint32_t                     swapchainCount;
9286     const VkPresentRegionKHR*    pRegions;
9287 } VkPresentRegionsKHR;
9288 
9289 
9290 
9291 // VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
9292 #define VK_KHR_descriptor_update_template 1
9293 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
9294 
9295 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
9296 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
9297 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
9298 
9299 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
9300 
9301 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
9302 
9303 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
9304 
9305 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
9306 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
9307 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
9308 
9309 #ifndef VK_NO_PROTOTYPES
9310 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
9311     VkDevice                                    device,
9312     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
9313     const VkAllocationCallbacks*                pAllocator,
9314     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
9315 
9316 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
9317     VkDevice                                    device,
9318     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
9319     const VkAllocationCallbacks*                pAllocator);
9320 
9321 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
9322     VkDevice                                    device,
9323     VkDescriptorSet                             descriptorSet,
9324     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
9325     const void*                                 pData);
9326 #endif
9327 
9328 
9329 // VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
9330 #define VK_KHR_imageless_framebuffer 1
9331 #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
9332 #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
9333 typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
9334 
9335 typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
9336 
9337 typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
9338 
9339 typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
9340 
9341 
9342 
9343 // VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
9344 #define VK_KHR_create_renderpass2 1
9345 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
9346 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
9347 typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
9348 
9349 typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
9350 
9351 typedef VkAttachmentReference2 VkAttachmentReference2KHR;
9352 
9353 typedef VkSubpassDescription2 VkSubpassDescription2KHR;
9354 
9355 typedef VkSubpassDependency2 VkSubpassDependency2KHR;
9356 
9357 typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
9358 
9359 typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
9360 
9361 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
9362 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
9363 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
9364 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
9365 
9366 #ifndef VK_NO_PROTOTYPES
9367 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
9368     VkDevice                                    device,
9369     const VkRenderPassCreateInfo2*              pCreateInfo,
9370     const VkAllocationCallbacks*                pAllocator,
9371     VkRenderPass*                               pRenderPass);
9372 
9373 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
9374     VkCommandBuffer                             commandBuffer,
9375     const VkRenderPassBeginInfo*                pRenderPassBegin,
9376     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
9377 
9378 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
9379     VkCommandBuffer                             commandBuffer,
9380     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
9381     const VkSubpassEndInfo*                     pSubpassEndInfo);
9382 
9383 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
9384     VkCommandBuffer                             commandBuffer,
9385     const VkSubpassEndInfo*                     pSubpassEndInfo);
9386 #endif
9387 
9388 
9389 // VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
9390 #define VK_KHR_shared_presentable_image 1
9391 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
9392 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
9393 typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
9394     VkStructureType      sType;
9395     void*                pNext;
9396     VkImageUsageFlags    sharedPresentSupportedUsageFlags;
9397 } VkSharedPresentSurfaceCapabilitiesKHR;
9398 
9399 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
9400 
9401 #ifndef VK_NO_PROTOTYPES
9402 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
9403     VkDevice                                    device,
9404     VkSwapchainKHR                              swapchain);
9405 #endif
9406 
9407 
9408 // VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
9409 #define VK_KHR_external_fence_capabilities 1
9410 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
9411 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
9412 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
9413 
9414 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
9415 
9416 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
9417 
9418 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
9419 
9420 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
9421 
9422 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
9423 
9424 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
9425 
9426 #ifndef VK_NO_PROTOTYPES
9427 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
9428     VkPhysicalDevice                            physicalDevice,
9429     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
9430     VkExternalFenceProperties*                  pExternalFenceProperties);
9431 #endif
9432 
9433 
9434 // VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
9435 #define VK_KHR_external_fence 1
9436 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
9437 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
9438 typedef VkFenceImportFlags VkFenceImportFlagsKHR;
9439 
9440 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
9441 
9442 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
9443 
9444 
9445 
9446 // VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
9447 #define VK_KHR_external_fence_fd 1
9448 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
9449 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
9450 typedef struct VkImportFenceFdInfoKHR {
9451     VkStructureType                      sType;
9452     const void*                          pNext;
9453     VkFence                              fence;
9454     VkFenceImportFlags                   flags;
9455     VkExternalFenceHandleTypeFlagBits    handleType;
9456     int                                  fd;
9457 } VkImportFenceFdInfoKHR;
9458 
9459 typedef struct VkFenceGetFdInfoKHR {
9460     VkStructureType                      sType;
9461     const void*                          pNext;
9462     VkFence                              fence;
9463     VkExternalFenceHandleTypeFlagBits    handleType;
9464 } VkFenceGetFdInfoKHR;
9465 
9466 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
9467 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
9468 
9469 #ifndef VK_NO_PROTOTYPES
9470 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
9471     VkDevice                                    device,
9472     const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
9473 
9474 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
9475     VkDevice                                    device,
9476     const VkFenceGetFdInfoKHR*                  pGetFdInfo,
9477     int*                                        pFd);
9478 #endif
9479 
9480 
9481 // VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
9482 #define VK_KHR_performance_query 1
9483 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
9484 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
9485 
9486 typedef enum VkPerformanceCounterUnitKHR {
9487     VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
9488     VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
9489     VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
9490     VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
9491     VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
9492     VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
9493     VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
9494     VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
9495     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
9496     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
9497     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
9498     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
9499 } VkPerformanceCounterUnitKHR;
9500 
9501 typedef enum VkPerformanceCounterScopeKHR {
9502     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
9503     VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
9504     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
9505     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
9506     VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
9507     VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
9508     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
9509 } VkPerformanceCounterScopeKHR;
9510 
9511 typedef enum VkPerformanceCounterStorageKHR {
9512     VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
9513     VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
9514     VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
9515     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
9516     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
9517     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
9518     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
9519 } VkPerformanceCounterStorageKHR;
9520 
9521 typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
9522     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
9523     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
9524     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
9525     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
9526     VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9527 } VkPerformanceCounterDescriptionFlagBitsKHR;
9528 typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
9529 
9530 typedef enum VkAcquireProfilingLockFlagBitsKHR {
9531     VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9532 } VkAcquireProfilingLockFlagBitsKHR;
9533 typedef VkFlags VkAcquireProfilingLockFlagsKHR;
9534 typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
9535     VkStructureType    sType;
9536     void*              pNext;
9537     VkBool32           performanceCounterQueryPools;
9538     VkBool32           performanceCounterMultipleQueryPools;
9539 } VkPhysicalDevicePerformanceQueryFeaturesKHR;
9540 
9541 typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
9542     VkStructureType    sType;
9543     void*              pNext;
9544     VkBool32           allowCommandBufferQueryCopies;
9545 } VkPhysicalDevicePerformanceQueryPropertiesKHR;
9546 
9547 typedef struct VkPerformanceCounterKHR {
9548     VkStructureType                   sType;
9549     void*                             pNext;
9550     VkPerformanceCounterUnitKHR       unit;
9551     VkPerformanceCounterScopeKHR      scope;
9552     VkPerformanceCounterStorageKHR    storage;
9553     uint8_t                           uuid[VK_UUID_SIZE];
9554 } VkPerformanceCounterKHR;
9555 
9556 typedef struct VkPerformanceCounterDescriptionKHR {
9557     VkStructureType                            sType;
9558     void*                                      pNext;
9559     VkPerformanceCounterDescriptionFlagsKHR    flags;
9560     char                                       name[VK_MAX_DESCRIPTION_SIZE];
9561     char                                       category[VK_MAX_DESCRIPTION_SIZE];
9562     char                                       description[VK_MAX_DESCRIPTION_SIZE];
9563 } VkPerformanceCounterDescriptionKHR;
9564 
9565 typedef struct VkQueryPoolPerformanceCreateInfoKHR {
9566     VkStructureType    sType;
9567     const void*        pNext;
9568     uint32_t           queueFamilyIndex;
9569     uint32_t           counterIndexCount;
9570     const uint32_t*    pCounterIndices;
9571 } VkQueryPoolPerformanceCreateInfoKHR;
9572 
9573 typedef union VkPerformanceCounterResultKHR {
9574     int32_t     int32;
9575     int64_t     int64;
9576     uint32_t    uint32;
9577     uint64_t    uint64;
9578     float       float32;
9579     double      float64;
9580 } VkPerformanceCounterResultKHR;
9581 
9582 typedef struct VkAcquireProfilingLockInfoKHR {
9583     VkStructureType                   sType;
9584     const void*                       pNext;
9585     VkAcquireProfilingLockFlagsKHR    flags;
9586     uint64_t                          timeout;
9587 } VkAcquireProfilingLockInfoKHR;
9588 
9589 typedef struct VkPerformanceQuerySubmitInfoKHR {
9590     VkStructureType    sType;
9591     const void*        pNext;
9592     uint32_t           counterPassIndex;
9593 } VkPerformanceQuerySubmitInfoKHR;
9594 
9595 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
9596 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
9597 typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
9598 typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
9599 
9600 #ifndef VK_NO_PROTOTYPES
9601 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
9602     VkPhysicalDevice                            physicalDevice,
9603     uint32_t                                    queueFamilyIndex,
9604     uint32_t*                                   pCounterCount,
9605     VkPerformanceCounterKHR*                    pCounters,
9606     VkPerformanceCounterDescriptionKHR*         pCounterDescriptions);
9607 
9608 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
9609     VkPhysicalDevice                            physicalDevice,
9610     const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
9611     uint32_t*                                   pNumPasses);
9612 
9613 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
9614     VkDevice                                    device,
9615     const VkAcquireProfilingLockInfoKHR*        pInfo);
9616 
9617 VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
9618     VkDevice                                    device);
9619 #endif
9620 
9621 
9622 // VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
9623 #define VK_KHR_maintenance2 1
9624 #define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
9625 #define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
9626 #define VK_KHR_MAINTENANCE2_SPEC_VERSION  VK_KHR_MAINTENANCE_2_SPEC_VERSION
9627 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
9628 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
9629 
9630 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
9631 
9632 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
9633 
9634 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
9635 
9636 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
9637 
9638 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
9639 
9640 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
9641 
9642 
9643 
9644 // VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
9645 #define VK_KHR_get_surface_capabilities2 1
9646 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
9647 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
9648 typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
9649     VkStructureType    sType;
9650     const void*        pNext;
9651     VkSurfaceKHR       surface;
9652 } VkPhysicalDeviceSurfaceInfo2KHR;
9653 
9654 typedef struct VkSurfaceCapabilities2KHR {
9655     VkStructureType             sType;
9656     void*                       pNext;
9657     VkSurfaceCapabilitiesKHR    surfaceCapabilities;
9658 } VkSurfaceCapabilities2KHR;
9659 
9660 typedef struct VkSurfaceFormat2KHR {
9661     VkStructureType       sType;
9662     void*                 pNext;
9663     VkSurfaceFormatKHR    surfaceFormat;
9664 } VkSurfaceFormat2KHR;
9665 
9666 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
9667 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
9668 
9669 #ifndef VK_NO_PROTOTYPES
9670 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
9671     VkPhysicalDevice                            physicalDevice,
9672     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
9673     VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
9674 
9675 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
9676     VkPhysicalDevice                            physicalDevice,
9677     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
9678     uint32_t*                                   pSurfaceFormatCount,
9679     VkSurfaceFormat2KHR*                        pSurfaceFormats);
9680 #endif
9681 
9682 
9683 // VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
9684 #define VK_KHR_variable_pointers 1
9685 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
9686 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
9687 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
9688 
9689 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
9690 
9691 
9692 
9693 // VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
9694 #define VK_KHR_get_display_properties2 1
9695 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
9696 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
9697 typedef struct VkDisplayProperties2KHR {
9698     VkStructureType           sType;
9699     void*                     pNext;
9700     VkDisplayPropertiesKHR    displayProperties;
9701 } VkDisplayProperties2KHR;
9702 
9703 typedef struct VkDisplayPlaneProperties2KHR {
9704     VkStructureType                sType;
9705     void*                          pNext;
9706     VkDisplayPlanePropertiesKHR    displayPlaneProperties;
9707 } VkDisplayPlaneProperties2KHR;
9708 
9709 typedef struct VkDisplayModeProperties2KHR {
9710     VkStructureType               sType;
9711     void*                         pNext;
9712     VkDisplayModePropertiesKHR    displayModeProperties;
9713 } VkDisplayModeProperties2KHR;
9714 
9715 typedef struct VkDisplayPlaneInfo2KHR {
9716     VkStructureType     sType;
9717     const void*         pNext;
9718     VkDisplayModeKHR    mode;
9719     uint32_t            planeIndex;
9720 } VkDisplayPlaneInfo2KHR;
9721 
9722 typedef struct VkDisplayPlaneCapabilities2KHR {
9723     VkStructureType                  sType;
9724     void*                            pNext;
9725     VkDisplayPlaneCapabilitiesKHR    capabilities;
9726 } VkDisplayPlaneCapabilities2KHR;
9727 
9728 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
9729 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
9730 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
9731 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
9732 
9733 #ifndef VK_NO_PROTOTYPES
9734 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
9735     VkPhysicalDevice                            physicalDevice,
9736     uint32_t*                                   pPropertyCount,
9737     VkDisplayProperties2KHR*                    pProperties);
9738 
9739 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
9740     VkPhysicalDevice                            physicalDevice,
9741     uint32_t*                                   pPropertyCount,
9742     VkDisplayPlaneProperties2KHR*               pProperties);
9743 
9744 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
9745     VkPhysicalDevice                            physicalDevice,
9746     VkDisplayKHR                                display,
9747     uint32_t*                                   pPropertyCount,
9748     VkDisplayModeProperties2KHR*                pProperties);
9749 
9750 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
9751     VkPhysicalDevice                            physicalDevice,
9752     const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
9753     VkDisplayPlaneCapabilities2KHR*             pCapabilities);
9754 #endif
9755 
9756 
9757 // VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
9758 #define VK_KHR_dedicated_allocation 1
9759 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
9760 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
9761 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
9762 
9763 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
9764 
9765 
9766 
9767 // VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
9768 #define VK_KHR_storage_buffer_storage_class 1
9769 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
9770 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
9771 
9772 
9773 // VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
9774 #define VK_KHR_relaxed_block_layout 1
9775 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
9776 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
9777 
9778 
9779 // VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
9780 #define VK_KHR_get_memory_requirements2 1
9781 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
9782 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
9783 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
9784 
9785 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
9786 
9787 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
9788 
9789 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
9790 
9791 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
9792 
9793 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
9794 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
9795 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
9796 
9797 #ifndef VK_NO_PROTOTYPES
9798 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
9799     VkDevice                                    device,
9800     const VkImageMemoryRequirementsInfo2*       pInfo,
9801     VkMemoryRequirements2*                      pMemoryRequirements);
9802 
9803 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
9804     VkDevice                                    device,
9805     const VkBufferMemoryRequirementsInfo2*      pInfo,
9806     VkMemoryRequirements2*                      pMemoryRequirements);
9807 
9808 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
9809     VkDevice                                    device,
9810     const VkImageSparseMemoryRequirementsInfo2* pInfo,
9811     uint32_t*                                   pSparseMemoryRequirementCount,
9812     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
9813 #endif
9814 
9815 
9816 // VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
9817 #define VK_KHR_image_format_list 1
9818 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
9819 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
9820 typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
9821 
9822 
9823 
9824 // VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
9825 #define VK_KHR_sampler_ycbcr_conversion 1
9826 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
9827 
9828 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
9829 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
9830 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
9831 
9832 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
9833 
9834 typedef VkChromaLocation VkChromaLocationKHR;
9835 
9836 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
9837 
9838 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
9839 
9840 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
9841 
9842 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
9843 
9844 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
9845 
9846 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
9847 
9848 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
9849 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
9850 
9851 #ifndef VK_NO_PROTOTYPES
9852 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
9853     VkDevice                                    device,
9854     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
9855     const VkAllocationCallbacks*                pAllocator,
9856     VkSamplerYcbcrConversion*                   pYcbcrConversion);
9857 
9858 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
9859     VkDevice                                    device,
9860     VkSamplerYcbcrConversion                    ycbcrConversion,
9861     const VkAllocationCallbacks*                pAllocator);
9862 #endif
9863 
9864 
9865 // VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
9866 #define VK_KHR_bind_memory2 1
9867 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
9868 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
9869 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
9870 
9871 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
9872 
9873 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
9874 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
9875 
9876 #ifndef VK_NO_PROTOTYPES
9877 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
9878     VkDevice                                    device,
9879     uint32_t                                    bindInfoCount,
9880     const VkBindBufferMemoryInfo*               pBindInfos);
9881 
9882 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
9883     VkDevice                                    device,
9884     uint32_t                                    bindInfoCount,
9885     const VkBindImageMemoryInfo*                pBindInfos);
9886 #endif
9887 
9888 
9889 // VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
9890 #define VK_KHR_maintenance3 1
9891 #define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
9892 #define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
9893 #define VK_KHR_MAINTENANCE3_SPEC_VERSION  VK_KHR_MAINTENANCE_3_SPEC_VERSION
9894 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
9895 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
9896 
9897 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
9898 
9899 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
9900 
9901 #ifndef VK_NO_PROTOTYPES
9902 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
9903     VkDevice                                    device,
9904     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
9905     VkDescriptorSetLayoutSupport*               pSupport);
9906 #endif
9907 
9908 
9909 // VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
9910 #define VK_KHR_draw_indirect_count 1
9911 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
9912 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
9913 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
9914 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
9915 
9916 #ifndef VK_NO_PROTOTYPES
9917 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
9918     VkCommandBuffer                             commandBuffer,
9919     VkBuffer                                    buffer,
9920     VkDeviceSize                                offset,
9921     VkBuffer                                    countBuffer,
9922     VkDeviceSize                                countBufferOffset,
9923     uint32_t                                    maxDrawCount,
9924     uint32_t                                    stride);
9925 
9926 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
9927     VkCommandBuffer                             commandBuffer,
9928     VkBuffer                                    buffer,
9929     VkDeviceSize                                offset,
9930     VkBuffer                                    countBuffer,
9931     VkDeviceSize                                countBufferOffset,
9932     uint32_t                                    maxDrawCount,
9933     uint32_t                                    stride);
9934 #endif
9935 
9936 
9937 // VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
9938 #define VK_KHR_shader_subgroup_extended_types 1
9939 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
9940 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
9941 typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
9942 
9943 
9944 
9945 // VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
9946 #define VK_KHR_8bit_storage 1
9947 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1
9948 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
9949 typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
9950 
9951 
9952 
9953 // VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
9954 #define VK_KHR_shader_atomic_int64 1
9955 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
9956 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
9957 typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
9958 
9959 
9960 
9961 // VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
9962 #define VK_KHR_shader_clock 1
9963 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION  1
9964 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
9965 typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
9966     VkStructureType    sType;
9967     void*              pNext;
9968     VkBool32           shaderSubgroupClock;
9969     VkBool32           shaderDeviceClock;
9970 } VkPhysicalDeviceShaderClockFeaturesKHR;
9971 
9972 
9973 
9974 // VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
9975 #define VK_KHR_video_decode_h265 1
9976 #include "vk_video/vulkan_video_codec_h265std_decode.h"
9977 #define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
9978 #define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
9979 typedef struct VkVideoDecodeH265ProfileInfoKHR {
9980     VkStructureType           sType;
9981     const void*               pNext;
9982     StdVideoH265ProfileIdc    stdProfileIdc;
9983 } VkVideoDecodeH265ProfileInfoKHR;
9984 
9985 typedef struct VkVideoDecodeH265CapabilitiesKHR {
9986     VkStructureType         sType;
9987     void*                   pNext;
9988     StdVideoH265LevelIdc    maxLevelIdc;
9989 } VkVideoDecodeH265CapabilitiesKHR;
9990 
9991 typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
9992     VkStructureType                            sType;
9993     const void*                                pNext;
9994     uint32_t                                   stdVPSCount;
9995     const StdVideoH265VideoParameterSet*       pStdVPSs;
9996     uint32_t                                   stdSPSCount;
9997     const StdVideoH265SequenceParameterSet*    pStdSPSs;
9998     uint32_t                                   stdPPSCount;
9999     const StdVideoH265PictureParameterSet*     pStdPPSs;
10000 } VkVideoDecodeH265SessionParametersAddInfoKHR;
10001 
10002 typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
10003     VkStructureType                                        sType;
10004     const void*                                            pNext;
10005     uint32_t                                               maxStdVPSCount;
10006     uint32_t                                               maxStdSPSCount;
10007     uint32_t                                               maxStdPPSCount;
10008     const VkVideoDecodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
10009 } VkVideoDecodeH265SessionParametersCreateInfoKHR;
10010 
10011 typedef struct VkVideoDecodeH265PictureInfoKHR {
10012     VkStructureType                         sType;
10013     const void*                             pNext;
10014     const StdVideoDecodeH265PictureInfo*    pStdPictureInfo;
10015     uint32_t                                sliceSegmentCount;
10016     const uint32_t*                         pSliceSegmentOffsets;
10017 } VkVideoDecodeH265PictureInfoKHR;
10018 
10019 typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
10020     VkStructureType                           sType;
10021     const void*                               pNext;
10022     const StdVideoDecodeH265ReferenceInfo*    pStdReferenceInfo;
10023 } VkVideoDecodeH265DpbSlotInfoKHR;
10024 
10025 
10026 
10027 // VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
10028 #define VK_KHR_global_priority 1
10029 #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR   16U
10030 #define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
10031 #define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
10032 
10033 typedef enum VkQueueGlobalPriorityKHR {
10034     VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128,
10035     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256,
10036     VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512,
10037     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024,
10038     VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
10039     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
10040     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
10041     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR,
10042     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 0x7FFFFFFF
10043 } VkQueueGlobalPriorityKHR;
10044 typedef struct VkDeviceQueueGlobalPriorityCreateInfoKHR {
10045     VkStructureType             sType;
10046     const void*                 pNext;
10047     VkQueueGlobalPriorityKHR    globalPriority;
10048 } VkDeviceQueueGlobalPriorityCreateInfoKHR;
10049 
10050 typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR {
10051     VkStructureType    sType;
10052     void*              pNext;
10053     VkBool32           globalPriorityQuery;
10054 } VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
10055 
10056 typedef struct VkQueueFamilyGlobalPriorityPropertiesKHR {
10057     VkStructureType             sType;
10058     void*                       pNext;
10059     uint32_t                    priorityCount;
10060     VkQueueGlobalPriorityKHR    priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR];
10061 } VkQueueFamilyGlobalPriorityPropertiesKHR;
10062 
10063 
10064 
10065 // VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
10066 #define VK_KHR_driver_properties 1
10067 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
10068 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
10069 #define VK_MAX_DRIVER_NAME_SIZE_KHR       VK_MAX_DRIVER_NAME_SIZE
10070 #define VK_MAX_DRIVER_INFO_SIZE_KHR       VK_MAX_DRIVER_INFO_SIZE
10071 typedef VkDriverId VkDriverIdKHR;
10072 
10073 typedef VkConformanceVersion VkConformanceVersionKHR;
10074 
10075 typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
10076 
10077 
10078 
10079 // VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
10080 #define VK_KHR_shader_float_controls 1
10081 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
10082 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
10083 typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
10084 
10085 typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
10086 
10087 
10088 
10089 // VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
10090 #define VK_KHR_depth_stencil_resolve 1
10091 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
10092 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
10093 typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
10094 
10095 typedef VkResolveModeFlags VkResolveModeFlagsKHR;
10096 
10097 typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
10098 
10099 typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
10100 
10101 
10102 
10103 // VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
10104 #define VK_KHR_swapchain_mutable_format 1
10105 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
10106 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
10107 
10108 
10109 // VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
10110 #define VK_KHR_timeline_semaphore 1
10111 #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
10112 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
10113 typedef VkSemaphoreType VkSemaphoreTypeKHR;
10114 
10115 typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
10116 
10117 typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
10118 
10119 typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
10120 
10121 typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
10122 
10123 typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
10124 
10125 typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
10126 
10127 typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
10128 
10129 typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
10130 
10131 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
10132 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
10133 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
10134 
10135 #ifndef VK_NO_PROTOTYPES
10136 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
10137     VkDevice                                    device,
10138     VkSemaphore                                 semaphore,
10139     uint64_t*                                   pValue);
10140 
10141 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
10142     VkDevice                                    device,
10143     const VkSemaphoreWaitInfo*                  pWaitInfo,
10144     uint64_t                                    timeout);
10145 
10146 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
10147     VkDevice                                    device,
10148     const VkSemaphoreSignalInfo*                pSignalInfo);
10149 #endif
10150 
10151 
10152 // VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
10153 #define VK_KHR_vulkan_memory_model 1
10154 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
10155 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
10156 typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
10157 
10158 
10159 
10160 // VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
10161 #define VK_KHR_shader_terminate_invocation 1
10162 #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
10163 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
10164 typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
10165 
10166 
10167 
10168 // VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
10169 #define VK_KHR_fragment_shading_rate 1
10170 #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
10171 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
10172 
10173 typedef enum VkFragmentShadingRateCombinerOpKHR {
10174     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
10175     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
10176     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
10177     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
10178     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
10179     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
10180 } VkFragmentShadingRateCombinerOpKHR;
10181 typedef struct VkFragmentShadingRateAttachmentInfoKHR {
10182     VkStructureType                  sType;
10183     const void*                      pNext;
10184     const VkAttachmentReference2*    pFragmentShadingRateAttachment;
10185     VkExtent2D                       shadingRateAttachmentTexelSize;
10186 } VkFragmentShadingRateAttachmentInfoKHR;
10187 
10188 typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
10189     VkStructureType                       sType;
10190     const void*                           pNext;
10191     VkExtent2D                            fragmentSize;
10192     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
10193 } VkPipelineFragmentShadingRateStateCreateInfoKHR;
10194 
10195 typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
10196     VkStructureType    sType;
10197     void*              pNext;
10198     VkBool32           pipelineFragmentShadingRate;
10199     VkBool32           primitiveFragmentShadingRate;
10200     VkBool32           attachmentFragmentShadingRate;
10201 } VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
10202 
10203 typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
10204     VkStructureType          sType;
10205     void*                    pNext;
10206     VkExtent2D               minFragmentShadingRateAttachmentTexelSize;
10207     VkExtent2D               maxFragmentShadingRateAttachmentTexelSize;
10208     uint32_t                 maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
10209     VkBool32                 primitiveFragmentShadingRateWithMultipleViewports;
10210     VkBool32                 layeredShadingRateAttachments;
10211     VkBool32                 fragmentShadingRateNonTrivialCombinerOps;
10212     VkExtent2D               maxFragmentSize;
10213     uint32_t                 maxFragmentSizeAspectRatio;
10214     uint32_t                 maxFragmentShadingRateCoverageSamples;
10215     VkSampleCountFlagBits    maxFragmentShadingRateRasterizationSamples;
10216     VkBool32                 fragmentShadingRateWithShaderDepthStencilWrites;
10217     VkBool32                 fragmentShadingRateWithSampleMask;
10218     VkBool32                 fragmentShadingRateWithShaderSampleMask;
10219     VkBool32                 fragmentShadingRateWithConservativeRasterization;
10220     VkBool32                 fragmentShadingRateWithFragmentShaderInterlock;
10221     VkBool32                 fragmentShadingRateWithCustomSampleLocations;
10222     VkBool32                 fragmentShadingRateStrictMultiplyCombiner;
10223 } VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
10224 
10225 typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
10226     VkStructureType       sType;
10227     void*                 pNext;
10228     VkSampleCountFlags    sampleCounts;
10229     VkExtent2D            fragmentSize;
10230 } VkPhysicalDeviceFragmentShadingRateKHR;
10231 
10232 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
10233 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer           commandBuffer, const VkExtent2D*                           pFragmentSize, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
10234 
10235 #ifndef VK_NO_PROTOTYPES
10236 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
10237     VkPhysicalDevice                            physicalDevice,
10238     uint32_t*                                   pFragmentShadingRateCount,
10239     VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates);
10240 
10241 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
10242     VkCommandBuffer                             commandBuffer,
10243     const VkExtent2D*                           pFragmentSize,
10244     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
10245 #endif
10246 
10247 
10248 // VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
10249 #define VK_KHR_dynamic_rendering_local_read 1
10250 #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
10251 #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
10252 typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR {
10253     VkStructureType    sType;
10254     void*              pNext;
10255     VkBool32           dynamicRenderingLocalRead;
10256 } VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
10257 
10258 typedef struct VkRenderingAttachmentLocationInfoKHR {
10259     VkStructureType    sType;
10260     const void*        pNext;
10261     uint32_t           colorAttachmentCount;
10262     const uint32_t*    pColorAttachmentLocations;
10263 } VkRenderingAttachmentLocationInfoKHR;
10264 
10265 typedef struct VkRenderingInputAttachmentIndexInfoKHR {
10266     VkStructureType    sType;
10267     const void*        pNext;
10268     uint32_t           colorAttachmentCount;
10269     const uint32_t*    pColorAttachmentInputIndices;
10270     const uint32_t*    pDepthInputAttachmentIndex;
10271     const uint32_t*    pStencilInputAttachmentIndex;
10272 } VkRenderingInputAttachmentIndexInfoKHR;
10273 
10274 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfoKHR* pLocationInfo);
10275 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfoKHR* pLocationInfo);
10276 
10277 #ifndef VK_NO_PROTOTYPES
10278 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
10279     VkCommandBuffer                             commandBuffer,
10280     const VkRenderingAttachmentLocationInfoKHR* pLocationInfo);
10281 
10282 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
10283     VkCommandBuffer                             commandBuffer,
10284     const VkRenderingInputAttachmentIndexInfoKHR* pLocationInfo);
10285 #endif
10286 
10287 
10288 // VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
10289 #define VK_KHR_shader_quad_control 1
10290 #define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
10291 #define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
10292 typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
10293     VkStructureType    sType;
10294     void*              pNext;
10295     VkBool32           shaderQuadControl;
10296 } VkPhysicalDeviceShaderQuadControlFeaturesKHR;
10297 
10298 
10299 
10300 // VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
10301 #define VK_KHR_spirv_1_4 1
10302 #define VK_KHR_SPIRV_1_4_SPEC_VERSION     1
10303 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME   "VK_KHR_spirv_1_4"
10304 
10305 
10306 // VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
10307 #define VK_KHR_surface_protected_capabilities 1
10308 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
10309 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
10310 typedef struct VkSurfaceProtectedCapabilitiesKHR {
10311     VkStructureType    sType;
10312     const void*        pNext;
10313     VkBool32           supportsProtected;
10314 } VkSurfaceProtectedCapabilitiesKHR;
10315 
10316 
10317 
10318 // VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
10319 #define VK_KHR_separate_depth_stencil_layouts 1
10320 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
10321 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
10322 typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
10323 
10324 typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
10325 
10326 typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
10327 
10328 
10329 
10330 // VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
10331 #define VK_KHR_present_wait 1
10332 #define VK_KHR_PRESENT_WAIT_SPEC_VERSION  1
10333 #define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
10334 typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
10335     VkStructureType    sType;
10336     void*              pNext;
10337     VkBool32           presentWait;
10338 } VkPhysicalDevicePresentWaitFeaturesKHR;
10339 
10340 typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
10341 
10342 #ifndef VK_NO_PROTOTYPES
10343 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
10344     VkDevice                                    device,
10345     VkSwapchainKHR                              swapchain,
10346     uint64_t                                    presentId,
10347     uint64_t                                    timeout);
10348 #endif
10349 
10350 
10351 // VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
10352 #define VK_KHR_uniform_buffer_standard_layout 1
10353 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
10354 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
10355 typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
10356 
10357 
10358 
10359 // VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
10360 #define VK_KHR_buffer_device_address 1
10361 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
10362 #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
10363 typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
10364 
10365 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
10366 
10367 typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
10368 
10369 typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
10370 
10371 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
10372 
10373 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
10374 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
10375 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
10376 
10377 #ifndef VK_NO_PROTOTYPES
10378 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
10379     VkDevice                                    device,
10380     const VkBufferDeviceAddressInfo*            pInfo);
10381 
10382 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
10383     VkDevice                                    device,
10384     const VkBufferDeviceAddressInfo*            pInfo);
10385 
10386 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
10387     VkDevice                                    device,
10388     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
10389 #endif
10390 
10391 
10392 // VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
10393 #define VK_KHR_deferred_host_operations 1
10394 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
10395 #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
10396 #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
10397 typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
10398 typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
10399 typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
10400 typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
10401 typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
10402 
10403 #ifndef VK_NO_PROTOTYPES
10404 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
10405     VkDevice                                    device,
10406     const VkAllocationCallbacks*                pAllocator,
10407     VkDeferredOperationKHR*                     pDeferredOperation);
10408 
10409 VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
10410     VkDevice                                    device,
10411     VkDeferredOperationKHR                      operation,
10412     const VkAllocationCallbacks*                pAllocator);
10413 
10414 VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
10415     VkDevice                                    device,
10416     VkDeferredOperationKHR                      operation);
10417 
10418 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
10419     VkDevice                                    device,
10420     VkDeferredOperationKHR                      operation);
10421 
10422 VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
10423     VkDevice                                    device,
10424     VkDeferredOperationKHR                      operation);
10425 #endif
10426 
10427 
10428 // VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
10429 #define VK_KHR_pipeline_executable_properties 1
10430 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
10431 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
10432 
10433 typedef enum VkPipelineExecutableStatisticFormatKHR {
10434     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
10435     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
10436     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
10437     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
10438     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
10439 } VkPipelineExecutableStatisticFormatKHR;
10440 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
10441     VkStructureType    sType;
10442     void*              pNext;
10443     VkBool32           pipelineExecutableInfo;
10444 } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
10445 
10446 typedef struct VkPipelineInfoKHR {
10447     VkStructureType    sType;
10448     const void*        pNext;
10449     VkPipeline         pipeline;
10450 } VkPipelineInfoKHR;
10451 
10452 typedef struct VkPipelineExecutablePropertiesKHR {
10453     VkStructureType       sType;
10454     void*                 pNext;
10455     VkShaderStageFlags    stages;
10456     char                  name[VK_MAX_DESCRIPTION_SIZE];
10457     char                  description[VK_MAX_DESCRIPTION_SIZE];
10458     uint32_t              subgroupSize;
10459 } VkPipelineExecutablePropertiesKHR;
10460 
10461 typedef struct VkPipelineExecutableInfoKHR {
10462     VkStructureType    sType;
10463     const void*        pNext;
10464     VkPipeline         pipeline;
10465     uint32_t           executableIndex;
10466 } VkPipelineExecutableInfoKHR;
10467 
10468 typedef union VkPipelineExecutableStatisticValueKHR {
10469     VkBool32    b32;
10470     int64_t     i64;
10471     uint64_t    u64;
10472     double      f64;
10473 } VkPipelineExecutableStatisticValueKHR;
10474 
10475 typedef struct VkPipelineExecutableStatisticKHR {
10476     VkStructureType                           sType;
10477     void*                                     pNext;
10478     char                                      name[VK_MAX_DESCRIPTION_SIZE];
10479     char                                      description[VK_MAX_DESCRIPTION_SIZE];
10480     VkPipelineExecutableStatisticFormatKHR    format;
10481     VkPipelineExecutableStatisticValueKHR     value;
10482 } VkPipelineExecutableStatisticKHR;
10483 
10484 typedef struct VkPipelineExecutableInternalRepresentationKHR {
10485     VkStructureType    sType;
10486     void*              pNext;
10487     char               name[VK_MAX_DESCRIPTION_SIZE];
10488     char               description[VK_MAX_DESCRIPTION_SIZE];
10489     VkBool32           isText;
10490     size_t             dataSize;
10491     void*              pData;
10492 } VkPipelineExecutableInternalRepresentationKHR;
10493 
10494 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice                        device, const VkPipelineInfoKHR*        pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
10495 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
10496 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
10497 
10498 #ifndef VK_NO_PROTOTYPES
10499 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
10500     VkDevice                                    device,
10501     const VkPipelineInfoKHR*                    pPipelineInfo,
10502     uint32_t*                                   pExecutableCount,
10503     VkPipelineExecutablePropertiesKHR*          pProperties);
10504 
10505 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
10506     VkDevice                                    device,
10507     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
10508     uint32_t*                                   pStatisticCount,
10509     VkPipelineExecutableStatisticKHR*           pStatistics);
10510 
10511 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
10512     VkDevice                                    device,
10513     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
10514     uint32_t*                                   pInternalRepresentationCount,
10515     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
10516 #endif
10517 
10518 
10519 // VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
10520 #define VK_KHR_map_memory2 1
10521 #define VK_KHR_MAP_MEMORY_2_SPEC_VERSION  1
10522 #define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
10523 
10524 typedef enum VkMemoryUnmapFlagBitsKHR {
10525     VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
10526     VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10527 } VkMemoryUnmapFlagBitsKHR;
10528 typedef VkFlags VkMemoryUnmapFlagsKHR;
10529 typedef struct VkMemoryMapInfoKHR {
10530     VkStructureType     sType;
10531     const void*         pNext;
10532     VkMemoryMapFlags    flags;
10533     VkDeviceMemory      memory;
10534     VkDeviceSize        offset;
10535     VkDeviceSize        size;
10536 } VkMemoryMapInfoKHR;
10537 
10538 typedef struct VkMemoryUnmapInfoKHR {
10539     VkStructureType          sType;
10540     const void*              pNext;
10541     VkMemoryUnmapFlagsKHR    flags;
10542     VkDeviceMemory           memory;
10543 } VkMemoryUnmapInfoKHR;
10544 
10545 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfoKHR* pMemoryMapInfo, void** ppData);
10546 typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo);
10547 
10548 #ifndef VK_NO_PROTOTYPES
10549 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
10550     VkDevice                                    device,
10551     const VkMemoryMapInfoKHR*                   pMemoryMapInfo,
10552     void**                                      ppData);
10553 
10554 VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
10555     VkDevice                                    device,
10556     const VkMemoryUnmapInfoKHR*                 pMemoryUnmapInfo);
10557 #endif
10558 
10559 
10560 // VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
10561 #define VK_KHR_shader_integer_dot_product 1
10562 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
10563 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
10564 typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
10565 
10566 typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
10567 
10568 
10569 
10570 // VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
10571 #define VK_KHR_pipeline_library 1
10572 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
10573 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
10574 typedef struct VkPipelineLibraryCreateInfoKHR {
10575     VkStructureType      sType;
10576     const void*          pNext;
10577     uint32_t             libraryCount;
10578     const VkPipeline*    pLibraries;
10579 } VkPipelineLibraryCreateInfoKHR;
10580 
10581 
10582 
10583 // VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
10584 #define VK_KHR_shader_non_semantic_info 1
10585 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
10586 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
10587 
10588 
10589 // VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
10590 #define VK_KHR_present_id 1
10591 #define VK_KHR_PRESENT_ID_SPEC_VERSION    1
10592 #define VK_KHR_PRESENT_ID_EXTENSION_NAME  "VK_KHR_present_id"
10593 typedef struct VkPresentIdKHR {
10594     VkStructureType    sType;
10595     const void*        pNext;
10596     uint32_t           swapchainCount;
10597     const uint64_t*    pPresentIds;
10598 } VkPresentIdKHR;
10599 
10600 typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
10601     VkStructureType    sType;
10602     void*              pNext;
10603     VkBool32           presentId;
10604 } VkPhysicalDevicePresentIdFeaturesKHR;
10605 
10606 
10607 
10608 // VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
10609 #define VK_KHR_video_encode_queue 1
10610 #define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
10611 #define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
10612 
10613 typedef enum VkVideoEncodeTuningModeKHR {
10614     VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
10615     VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
10616     VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
10617     VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
10618     VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
10619     VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
10620 } VkVideoEncodeTuningModeKHR;
10621 
10622 typedef enum VkVideoEncodeFlagBitsKHR {
10623     VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10624 } VkVideoEncodeFlagBitsKHR;
10625 typedef VkFlags VkVideoEncodeFlagsKHR;
10626 
10627 typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
10628     VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
10629     VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
10630     VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10631 } VkVideoEncodeCapabilityFlagBitsKHR;
10632 typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
10633 
10634 typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
10635     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
10636     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
10637     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
10638     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
10639     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10640 } VkVideoEncodeRateControlModeFlagBitsKHR;
10641 typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
10642 
10643 typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
10644     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
10645     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
10646     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
10647     VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10648 } VkVideoEncodeFeedbackFlagBitsKHR;
10649 typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
10650 
10651 typedef enum VkVideoEncodeUsageFlagBitsKHR {
10652     VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
10653     VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
10654     VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
10655     VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
10656     VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
10657     VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10658 } VkVideoEncodeUsageFlagBitsKHR;
10659 typedef VkFlags VkVideoEncodeUsageFlagsKHR;
10660 
10661 typedef enum VkVideoEncodeContentFlagBitsKHR {
10662     VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
10663     VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
10664     VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
10665     VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
10666     VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10667 } VkVideoEncodeContentFlagBitsKHR;
10668 typedef VkFlags VkVideoEncodeContentFlagsKHR;
10669 typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
10670 typedef struct VkVideoEncodeInfoKHR {
10671     VkStructureType                       sType;
10672     const void*                           pNext;
10673     VkVideoEncodeFlagsKHR                 flags;
10674     VkBuffer                              dstBuffer;
10675     VkDeviceSize                          dstBufferOffset;
10676     VkDeviceSize                          dstBufferRange;
10677     VkVideoPictureResourceInfoKHR         srcPictureResource;
10678     const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
10679     uint32_t                              referenceSlotCount;
10680     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
10681     uint32_t                              precedingExternallyEncodedBytes;
10682 } VkVideoEncodeInfoKHR;
10683 
10684 typedef struct VkVideoEncodeCapabilitiesKHR {
10685     VkStructureType                         sType;
10686     void*                                   pNext;
10687     VkVideoEncodeCapabilityFlagsKHR         flags;
10688     VkVideoEncodeRateControlModeFlagsKHR    rateControlModes;
10689     uint32_t                                maxRateControlLayers;
10690     uint64_t                                maxBitrate;
10691     uint32_t                                maxQualityLevels;
10692     VkExtent2D                              encodeInputPictureGranularity;
10693     VkVideoEncodeFeedbackFlagsKHR           supportedEncodeFeedbackFlags;
10694 } VkVideoEncodeCapabilitiesKHR;
10695 
10696 typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
10697     VkStructureType                  sType;
10698     const void*                      pNext;
10699     VkVideoEncodeFeedbackFlagsKHR    encodeFeedbackFlags;
10700 } VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
10701 
10702 typedef struct VkVideoEncodeUsageInfoKHR {
10703     VkStructureType                 sType;
10704     const void*                     pNext;
10705     VkVideoEncodeUsageFlagsKHR      videoUsageHints;
10706     VkVideoEncodeContentFlagsKHR    videoContentHints;
10707     VkVideoEncodeTuningModeKHR      tuningMode;
10708 } VkVideoEncodeUsageInfoKHR;
10709 
10710 typedef struct VkVideoEncodeRateControlLayerInfoKHR {
10711     VkStructureType    sType;
10712     const void*        pNext;
10713     uint64_t           averageBitrate;
10714     uint64_t           maxBitrate;
10715     uint32_t           frameRateNumerator;
10716     uint32_t           frameRateDenominator;
10717 } VkVideoEncodeRateControlLayerInfoKHR;
10718 
10719 typedef struct VkVideoEncodeRateControlInfoKHR {
10720     VkStructureType                                sType;
10721     const void*                                    pNext;
10722     VkVideoEncodeRateControlFlagsKHR               flags;
10723     VkVideoEncodeRateControlModeFlagBitsKHR        rateControlMode;
10724     uint32_t                                       layerCount;
10725     const VkVideoEncodeRateControlLayerInfoKHR*    pLayers;
10726     uint32_t                                       virtualBufferSizeInMs;
10727     uint32_t                                       initialVirtualBufferSizeInMs;
10728 } VkVideoEncodeRateControlInfoKHR;
10729 
10730 typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
10731     VkStructureType                 sType;
10732     const void*                     pNext;
10733     const VkVideoProfileInfoKHR*    pVideoProfile;
10734     uint32_t                        qualityLevel;
10735 } VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
10736 
10737 typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
10738     VkStructureType                            sType;
10739     void*                                      pNext;
10740     VkVideoEncodeRateControlModeFlagBitsKHR    preferredRateControlMode;
10741     uint32_t                                   preferredRateControlLayerCount;
10742 } VkVideoEncodeQualityLevelPropertiesKHR;
10743 
10744 typedef struct VkVideoEncodeQualityLevelInfoKHR {
10745     VkStructureType    sType;
10746     const void*        pNext;
10747     uint32_t           qualityLevel;
10748 } VkVideoEncodeQualityLevelInfoKHR;
10749 
10750 typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
10751     VkStructureType                sType;
10752     const void*                    pNext;
10753     VkVideoSessionParametersKHR    videoSessionParameters;
10754 } VkVideoEncodeSessionParametersGetInfoKHR;
10755 
10756 typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
10757     VkStructureType    sType;
10758     void*              pNext;
10759     VkBool32           hasOverrides;
10760 } VkVideoEncodeSessionParametersFeedbackInfoKHR;
10761 
10762 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
10763 typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
10764 typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
10765 
10766 #ifndef VK_NO_PROTOTYPES
10767 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
10768     VkPhysicalDevice                            physicalDevice,
10769     const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
10770     VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties);
10771 
10772 VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
10773     VkDevice                                    device,
10774     const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
10775     VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
10776     size_t*                                     pDataSize,
10777     void*                                       pData);
10778 
10779 VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
10780     VkCommandBuffer                             commandBuffer,
10781     const VkVideoEncodeInfoKHR*                 pEncodeInfo);
10782 #endif
10783 
10784 
10785 // VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
10786 #define VK_KHR_synchronization2 1
10787 #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
10788 #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
10789 typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
10790 
10791 typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
10792 
10793 typedef VkAccessFlags2 VkAccessFlags2KHR;
10794 
10795 typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
10796 
10797 typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
10798 
10799 typedef VkSubmitFlags VkSubmitFlagsKHR;
10800 
10801 typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
10802 
10803 typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
10804 
10805 typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
10806 
10807 typedef VkDependencyInfo VkDependencyInfoKHR;
10808 
10809 typedef VkSubmitInfo2 VkSubmitInfo2KHR;
10810 
10811 typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
10812 
10813 typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
10814 
10815 typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
10816 
10817 typedef struct VkQueueFamilyCheckpointProperties2NV {
10818     VkStructureType          sType;
10819     void*                    pNext;
10820     VkPipelineStageFlags2    checkpointExecutionStageMask;
10821 } VkQueueFamilyCheckpointProperties2NV;
10822 
10823 typedef struct VkCheckpointData2NV {
10824     VkStructureType          sType;
10825     void*                    pNext;
10826     VkPipelineStageFlags2    stage;
10827     void*                    pCheckpointMarker;
10828 } VkCheckpointData2NV;
10829 
10830 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
10831 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
10832 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
10833 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
10834 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
10835 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
10836 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkBuffer                                            dstBuffer, VkDeviceSize                                        dstOffset, uint32_t                                            marker);
10837 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
10838 
10839 #ifndef VK_NO_PROTOTYPES
10840 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
10841     VkCommandBuffer                             commandBuffer,
10842     VkEvent                                     event,
10843     const VkDependencyInfo*                     pDependencyInfo);
10844 
10845 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
10846     VkCommandBuffer                             commandBuffer,
10847     VkEvent                                     event,
10848     VkPipelineStageFlags2                       stageMask);
10849 
10850 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
10851     VkCommandBuffer                             commandBuffer,
10852     uint32_t                                    eventCount,
10853     const VkEvent*                              pEvents,
10854     const VkDependencyInfo*                     pDependencyInfos);
10855 
10856 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
10857     VkCommandBuffer                             commandBuffer,
10858     const VkDependencyInfo*                     pDependencyInfo);
10859 
10860 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
10861     VkCommandBuffer                             commandBuffer,
10862     VkPipelineStageFlags2                       stage,
10863     VkQueryPool                                 queryPool,
10864     uint32_t                                    query);
10865 
10866 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
10867     VkQueue                                     queue,
10868     uint32_t                                    submitCount,
10869     const VkSubmitInfo2*                        pSubmits,
10870     VkFence                                     fence);
10871 
10872 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
10873     VkCommandBuffer                             commandBuffer,
10874     VkPipelineStageFlags2                       stage,
10875     VkBuffer                                    dstBuffer,
10876     VkDeviceSize                                dstOffset,
10877     uint32_t                                    marker);
10878 
10879 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
10880     VkQueue                                     queue,
10881     uint32_t*                                   pCheckpointDataCount,
10882     VkCheckpointData2NV*                        pCheckpointData);
10883 #endif
10884 
10885 
10886 // VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
10887 #define VK_KHR_fragment_shader_barycentric 1
10888 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
10889 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
10890 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
10891     VkStructureType    sType;
10892     void*              pNext;
10893     VkBool32           fragmentShaderBarycentric;
10894 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
10895 
10896 typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
10897     VkStructureType    sType;
10898     void*              pNext;
10899     VkBool32           triStripVertexOrderIndependentOfProvokingVertex;
10900 } VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
10901 
10902 
10903 
10904 // VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
10905 #define VK_KHR_shader_subgroup_uniform_control_flow 1
10906 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
10907 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
10908 typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
10909     VkStructureType    sType;
10910     void*              pNext;
10911     VkBool32           shaderSubgroupUniformControlFlow;
10912 } VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
10913 
10914 
10915 
10916 // VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
10917 #define VK_KHR_zero_initialize_workgroup_memory 1
10918 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
10919 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
10920 typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
10921 
10922 
10923 
10924 // VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
10925 #define VK_KHR_workgroup_memory_explicit_layout 1
10926 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
10927 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
10928 typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
10929     VkStructureType    sType;
10930     void*              pNext;
10931     VkBool32           workgroupMemoryExplicitLayout;
10932     VkBool32           workgroupMemoryExplicitLayoutScalarBlockLayout;
10933     VkBool32           workgroupMemoryExplicitLayout8BitAccess;
10934     VkBool32           workgroupMemoryExplicitLayout16BitAccess;
10935 } VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
10936 
10937 
10938 
10939 // VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
10940 #define VK_KHR_copy_commands2 1
10941 #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
10942 #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
10943 typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
10944 
10945 typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
10946 
10947 typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
10948 
10949 typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
10950 
10951 typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
10952 
10953 typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
10954 
10955 typedef VkBufferCopy2 VkBufferCopy2KHR;
10956 
10957 typedef VkImageCopy2 VkImageCopy2KHR;
10958 
10959 typedef VkImageBlit2 VkImageBlit2KHR;
10960 
10961 typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
10962 
10963 typedef VkImageResolve2 VkImageResolve2KHR;
10964 
10965 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
10966 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
10967 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
10968 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
10969 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
10970 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
10971 
10972 #ifndef VK_NO_PROTOTYPES
10973 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
10974     VkCommandBuffer                             commandBuffer,
10975     const VkCopyBufferInfo2*                    pCopyBufferInfo);
10976 
10977 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
10978     VkCommandBuffer                             commandBuffer,
10979     const VkCopyImageInfo2*                     pCopyImageInfo);
10980 
10981 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
10982     VkCommandBuffer                             commandBuffer,
10983     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
10984 
10985 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
10986     VkCommandBuffer                             commandBuffer,
10987     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
10988 
10989 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
10990     VkCommandBuffer                             commandBuffer,
10991     const VkBlitImageInfo2*                     pBlitImageInfo);
10992 
10993 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
10994     VkCommandBuffer                             commandBuffer,
10995     const VkResolveImageInfo2*                  pResolveImageInfo);
10996 #endif
10997 
10998 
10999 // VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
11000 #define VK_KHR_format_feature_flags2 1
11001 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
11002 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
11003 typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
11004 
11005 typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
11006 
11007 typedef VkFormatProperties3 VkFormatProperties3KHR;
11008 
11009 
11010 
11011 // VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
11012 #define VK_KHR_ray_tracing_maintenance1 1
11013 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
11014 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
11015 typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
11016     VkStructureType    sType;
11017     void*              pNext;
11018     VkBool32           rayTracingMaintenance1;
11019     VkBool32           rayTracingPipelineTraceRaysIndirect2;
11020 } VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
11021 
11022 typedef struct VkTraceRaysIndirectCommand2KHR {
11023     VkDeviceAddress    raygenShaderRecordAddress;
11024     VkDeviceSize       raygenShaderRecordSize;
11025     VkDeviceAddress    missShaderBindingTableAddress;
11026     VkDeviceSize       missShaderBindingTableSize;
11027     VkDeviceSize       missShaderBindingTableStride;
11028     VkDeviceAddress    hitShaderBindingTableAddress;
11029     VkDeviceSize       hitShaderBindingTableSize;
11030     VkDeviceSize       hitShaderBindingTableStride;
11031     VkDeviceAddress    callableShaderBindingTableAddress;
11032     VkDeviceSize       callableShaderBindingTableSize;
11033     VkDeviceSize       callableShaderBindingTableStride;
11034     uint32_t           width;
11035     uint32_t           height;
11036     uint32_t           depth;
11037 } VkTraceRaysIndirectCommand2KHR;
11038 
11039 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
11040 
11041 #ifndef VK_NO_PROTOTYPES
11042 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
11043     VkCommandBuffer                             commandBuffer,
11044     VkDeviceAddress                             indirectDeviceAddress);
11045 #endif
11046 
11047 
11048 // VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
11049 #define VK_KHR_portability_enumeration 1
11050 #define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
11051 #define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
11052 
11053 
11054 // VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
11055 #define VK_KHR_maintenance4 1
11056 #define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
11057 #define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
11058 typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
11059 
11060 typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
11061 
11062 typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
11063 
11064 typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
11065 
11066 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11067 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11068 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11069 
11070 #ifndef VK_NO_PROTOTYPES
11071 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
11072     VkDevice                                    device,
11073     const VkDeviceBufferMemoryRequirements*     pInfo,
11074     VkMemoryRequirements2*                      pMemoryRequirements);
11075 
11076 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
11077     VkDevice                                    device,
11078     const VkDeviceImageMemoryRequirements*      pInfo,
11079     VkMemoryRequirements2*                      pMemoryRequirements);
11080 
11081 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
11082     VkDevice                                    device,
11083     const VkDeviceImageMemoryRequirements*      pInfo,
11084     uint32_t*                                   pSparseMemoryRequirementCount,
11085     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
11086 #endif
11087 
11088 
11089 // VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
11090 #define VK_KHR_shader_subgroup_rotate 1
11091 #define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
11092 #define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
11093 typedef struct VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR {
11094     VkStructureType    sType;
11095     void*              pNext;
11096     VkBool32           shaderSubgroupRotate;
11097     VkBool32           shaderSubgroupRotateClustered;
11098 } VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
11099 
11100 
11101 
11102 // VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
11103 #define VK_KHR_shader_maximal_reconvergence 1
11104 #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
11105 #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
11106 typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
11107     VkStructureType    sType;
11108     void*              pNext;
11109     VkBool32           shaderMaximalReconvergence;
11110 } VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
11111 
11112 
11113 
11114 // VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
11115 #define VK_KHR_maintenance5 1
11116 #define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
11117 #define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
11118 typedef VkFlags64 VkPipelineCreateFlags2KHR;
11119 
11120 // Flag bits for VkPipelineCreateFlagBits2KHR
11121 typedef VkFlags64 VkPipelineCreateFlagBits2KHR;
11122 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
11123 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
11124 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
11125 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL;
11126 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
11127 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
11128 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
11129 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
11130 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
11131 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
11132 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
11133 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
11134 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
11135 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
11136 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
11137 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
11138 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
11139 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
11140 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
11141 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
11142 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
11143 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
11144 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
11145 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
11146 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
11147 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
11148 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
11149 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
11150 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
11151 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
11152 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
11153 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
11154 
11155 typedef VkFlags64 VkBufferUsageFlags2KHR;
11156 
11157 // Flag bits for VkBufferUsageFlagBits2KHR
11158 typedef VkFlags64 VkBufferUsageFlagBits2KHR;
11159 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
11160 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
11161 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
11162 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
11163 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
11164 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
11165 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
11166 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
11167 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
11168 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
11169 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
11170 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
11171 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
11172 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
11173 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
11174 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
11175 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
11176 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
11177 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
11178 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
11179 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
11180 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
11181 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
11182 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
11183 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
11184 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
11185 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
11186 
11187 typedef struct VkPhysicalDeviceMaintenance5FeaturesKHR {
11188     VkStructureType    sType;
11189     void*              pNext;
11190     VkBool32           maintenance5;
11191 } VkPhysicalDeviceMaintenance5FeaturesKHR;
11192 
11193 typedef struct VkPhysicalDeviceMaintenance5PropertiesKHR {
11194     VkStructureType    sType;
11195     void*              pNext;
11196     VkBool32           earlyFragmentMultisampleCoverageAfterSampleCounting;
11197     VkBool32           earlyFragmentSampleMaskTestBeforeSampleCounting;
11198     VkBool32           depthStencilSwizzleOneSupport;
11199     VkBool32           polygonModePointSize;
11200     VkBool32           nonStrictSinglePixelWideLinesUseParallelogram;
11201     VkBool32           nonStrictWideLinesUseParallelogram;
11202 } VkPhysicalDeviceMaintenance5PropertiesKHR;
11203 
11204 typedef struct VkRenderingAreaInfoKHR {
11205     VkStructureType    sType;
11206     const void*        pNext;
11207     uint32_t           viewMask;
11208     uint32_t           colorAttachmentCount;
11209     const VkFormat*    pColorAttachmentFormats;
11210     VkFormat           depthAttachmentFormat;
11211     VkFormat           stencilAttachmentFormat;
11212 } VkRenderingAreaInfoKHR;
11213 
11214 typedef struct VkImageSubresource2KHR {
11215     VkStructureType       sType;
11216     void*                 pNext;
11217     VkImageSubresource    imageSubresource;
11218 } VkImageSubresource2KHR;
11219 
11220 typedef struct VkDeviceImageSubresourceInfoKHR {
11221     VkStructureType                  sType;
11222     const void*                      pNext;
11223     const VkImageCreateInfo*         pCreateInfo;
11224     const VkImageSubresource2KHR*    pSubresource;
11225 } VkDeviceImageSubresourceInfoKHR;
11226 
11227 typedef struct VkSubresourceLayout2KHR {
11228     VkStructureType        sType;
11229     void*                  pNext;
11230     VkSubresourceLayout    subresourceLayout;
11231 } VkSubresourceLayout2KHR;
11232 
11233 typedef struct VkPipelineCreateFlags2CreateInfoKHR {
11234     VkStructureType              sType;
11235     const void*                  pNext;
11236     VkPipelineCreateFlags2KHR    flags;
11237 } VkPipelineCreateFlags2CreateInfoKHR;
11238 
11239 typedef struct VkBufferUsageFlags2CreateInfoKHR {
11240     VkStructureType           sType;
11241     const void*               pNext;
11242     VkBufferUsageFlags2KHR    usage;
11243 } VkBufferUsageFlags2CreateInfoKHR;
11244 
11245 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
11246 typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfoKHR* pRenderingAreaInfo, VkExtent2D* pGranularity);
11247 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfoKHR* pInfo, VkSubresourceLayout2KHR* pLayout);
11248 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout);
11249 
11250 #ifndef VK_NO_PROTOTYPES
11251 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
11252     VkCommandBuffer                             commandBuffer,
11253     VkBuffer                                    buffer,
11254     VkDeviceSize                                offset,
11255     VkDeviceSize                                size,
11256     VkIndexType                                 indexType);
11257 
11258 VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
11259     VkDevice                                    device,
11260     const VkRenderingAreaInfoKHR*               pRenderingAreaInfo,
11261     VkExtent2D*                                 pGranularity);
11262 
11263 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
11264     VkDevice                                    device,
11265     const VkDeviceImageSubresourceInfoKHR*      pInfo,
11266     VkSubresourceLayout2KHR*                    pLayout);
11267 
11268 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
11269     VkDevice                                    device,
11270     VkImage                                     image,
11271     const VkImageSubresource2KHR*               pSubresource,
11272     VkSubresourceLayout2KHR*                    pLayout);
11273 #endif
11274 
11275 
11276 // VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
11277 #define VK_KHR_ray_tracing_position_fetch 1
11278 #define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
11279 #define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
11280 typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
11281     VkStructureType    sType;
11282     void*              pNext;
11283     VkBool32           rayTracingPositionFetch;
11284 } VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
11285 
11286 
11287 
11288 // VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
11289 #define VK_KHR_cooperative_matrix 1
11290 #define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
11291 #define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
11292 
11293 typedef enum VkComponentTypeKHR {
11294     VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
11295     VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
11296     VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
11297     VK_COMPONENT_TYPE_SINT8_KHR = 3,
11298     VK_COMPONENT_TYPE_SINT16_KHR = 4,
11299     VK_COMPONENT_TYPE_SINT32_KHR = 5,
11300     VK_COMPONENT_TYPE_SINT64_KHR = 6,
11301     VK_COMPONENT_TYPE_UINT8_KHR = 7,
11302     VK_COMPONENT_TYPE_UINT16_KHR = 8,
11303     VK_COMPONENT_TYPE_UINT32_KHR = 9,
11304     VK_COMPONENT_TYPE_UINT64_KHR = 10,
11305     VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
11306     VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
11307     VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
11308     VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
11309     VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
11310     VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
11311     VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
11312     VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
11313     VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
11314     VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
11315     VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
11316     VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
11317 } VkComponentTypeKHR;
11318 
11319 typedef enum VkScopeKHR {
11320     VK_SCOPE_DEVICE_KHR = 1,
11321     VK_SCOPE_WORKGROUP_KHR = 2,
11322     VK_SCOPE_SUBGROUP_KHR = 3,
11323     VK_SCOPE_QUEUE_FAMILY_KHR = 5,
11324     VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
11325     VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
11326     VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
11327     VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
11328     VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
11329 } VkScopeKHR;
11330 typedef struct VkCooperativeMatrixPropertiesKHR {
11331     VkStructureType       sType;
11332     void*                 pNext;
11333     uint32_t              MSize;
11334     uint32_t              NSize;
11335     uint32_t              KSize;
11336     VkComponentTypeKHR    AType;
11337     VkComponentTypeKHR    BType;
11338     VkComponentTypeKHR    CType;
11339     VkComponentTypeKHR    ResultType;
11340     VkBool32              saturatingAccumulation;
11341     VkScopeKHR            scope;
11342 } VkCooperativeMatrixPropertiesKHR;
11343 
11344 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
11345     VkStructureType    sType;
11346     void*              pNext;
11347     VkBool32           cooperativeMatrix;
11348     VkBool32           cooperativeMatrixRobustBufferAccess;
11349 } VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
11350 
11351 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
11352     VkStructureType       sType;
11353     void*                 pNext;
11354     VkShaderStageFlags    cooperativeMatrixSupportedStages;
11355 } VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
11356 
11357 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
11358 
11359 #ifndef VK_NO_PROTOTYPES
11360 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
11361     VkPhysicalDevice                            physicalDevice,
11362     uint32_t*                                   pPropertyCount,
11363     VkCooperativeMatrixPropertiesKHR*           pProperties);
11364 #endif
11365 
11366 
11367 // VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
11368 #define VK_KHR_video_decode_av1 1
11369 #include "vk_video/vulkan_video_codec_av1std.h"
11370 #include "vk_video/vulkan_video_codec_av1std_decode.h"
11371 #define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
11372 #define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
11373 #define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
11374 typedef struct VkVideoDecodeAV1ProfileInfoKHR {
11375     VkStructureType       sType;
11376     const void*           pNext;
11377     StdVideoAV1Profile    stdProfile;
11378     VkBool32              filmGrainSupport;
11379 } VkVideoDecodeAV1ProfileInfoKHR;
11380 
11381 typedef struct VkVideoDecodeAV1CapabilitiesKHR {
11382     VkStructureType     sType;
11383     void*               pNext;
11384     StdVideoAV1Level    maxLevel;
11385 } VkVideoDecodeAV1CapabilitiesKHR;
11386 
11387 typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
11388     VkStructureType                     sType;
11389     const void*                         pNext;
11390     const StdVideoAV1SequenceHeader*    pStdSequenceHeader;
11391 } VkVideoDecodeAV1SessionParametersCreateInfoKHR;
11392 
11393 typedef struct VkVideoDecodeAV1PictureInfoKHR {
11394     VkStructureType                        sType;
11395     const void*                            pNext;
11396     const StdVideoDecodeAV1PictureInfo*    pStdPictureInfo;
11397     int32_t                                referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
11398     uint32_t                               frameHeaderOffset;
11399     uint32_t                               tileCount;
11400     const uint32_t*                        pTileOffsets;
11401     const uint32_t*                        pTileSizes;
11402 } VkVideoDecodeAV1PictureInfoKHR;
11403 
11404 typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
11405     VkStructureType                          sType;
11406     const void*                              pNext;
11407     const StdVideoDecodeAV1ReferenceInfo*    pStdReferenceInfo;
11408 } VkVideoDecodeAV1DpbSlotInfoKHR;
11409 
11410 
11411 
11412 // VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
11413 #define VK_KHR_video_maintenance1 1
11414 #define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
11415 #define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
11416 typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
11417     VkStructureType    sType;
11418     void*              pNext;
11419     VkBool32           videoMaintenance1;
11420 } VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
11421 
11422 typedef struct VkVideoInlineQueryInfoKHR {
11423     VkStructureType    sType;
11424     const void*        pNext;
11425     VkQueryPool        queryPool;
11426     uint32_t           firstQuery;
11427     uint32_t           queryCount;
11428 } VkVideoInlineQueryInfoKHR;
11429 
11430 
11431 
11432 // VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
11433 #define VK_KHR_vertex_attribute_divisor 1
11434 #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
11435 #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
11436 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR {
11437     VkStructureType    sType;
11438     void*              pNext;
11439     uint32_t           maxVertexAttribDivisor;
11440     VkBool32           supportsNonZeroFirstInstance;
11441 } VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
11442 
11443 typedef struct VkVertexInputBindingDivisorDescriptionKHR {
11444     uint32_t    binding;
11445     uint32_t    divisor;
11446 } VkVertexInputBindingDivisorDescriptionKHR;
11447 
11448 typedef struct VkPipelineVertexInputDivisorStateCreateInfoKHR {
11449     VkStructureType                                     sType;
11450     const void*                                         pNext;
11451     uint32_t                                            vertexBindingDivisorCount;
11452     const VkVertexInputBindingDivisorDescriptionKHR*    pVertexBindingDivisors;
11453 } VkPipelineVertexInputDivisorStateCreateInfoKHR;
11454 
11455 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR {
11456     VkStructureType    sType;
11457     void*              pNext;
11458     VkBool32           vertexAttributeInstanceRateDivisor;
11459     VkBool32           vertexAttributeInstanceRateZeroDivisor;
11460 } VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
11461 
11462 
11463 
11464 // VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
11465 #define VK_KHR_load_store_op_none 1
11466 #define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
11467 #define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
11468 
11469 
11470 // VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
11471 #define VK_KHR_shader_float_controls2 1
11472 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
11473 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
11474 typedef struct VkPhysicalDeviceShaderFloatControls2FeaturesKHR {
11475     VkStructureType    sType;
11476     void*              pNext;
11477     VkBool32           shaderFloatControls2;
11478 } VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
11479 
11480 
11481 
11482 // VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
11483 #define VK_KHR_index_type_uint8 1
11484 #define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
11485 #define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
11486 typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesKHR {
11487     VkStructureType    sType;
11488     void*              pNext;
11489     VkBool32           indexTypeUint8;
11490 } VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
11491 
11492 
11493 
11494 // VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
11495 #define VK_KHR_line_rasterization 1
11496 #define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
11497 #define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
11498 
11499 typedef enum VkLineRasterizationModeKHR {
11500     VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = 0,
11501     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = 1,
11502     VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = 2,
11503     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = 3,
11504     VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR,
11505     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR,
11506     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR,
11507     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR,
11508     VK_LINE_RASTERIZATION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
11509 } VkLineRasterizationModeKHR;
11510 typedef struct VkPhysicalDeviceLineRasterizationFeaturesKHR {
11511     VkStructureType    sType;
11512     void*              pNext;
11513     VkBool32           rectangularLines;
11514     VkBool32           bresenhamLines;
11515     VkBool32           smoothLines;
11516     VkBool32           stippledRectangularLines;
11517     VkBool32           stippledBresenhamLines;
11518     VkBool32           stippledSmoothLines;
11519 } VkPhysicalDeviceLineRasterizationFeaturesKHR;
11520 
11521 typedef struct VkPhysicalDeviceLineRasterizationPropertiesKHR {
11522     VkStructureType    sType;
11523     void*              pNext;
11524     uint32_t           lineSubPixelPrecisionBits;
11525 } VkPhysicalDeviceLineRasterizationPropertiesKHR;
11526 
11527 typedef struct VkPipelineRasterizationLineStateCreateInfoKHR {
11528     VkStructureType               sType;
11529     const void*                   pNext;
11530     VkLineRasterizationModeKHR    lineRasterizationMode;
11531     VkBool32                      stippledLineEnable;
11532     uint32_t                      lineStippleFactor;
11533     uint16_t                      lineStipplePattern;
11534 } VkPipelineRasterizationLineStateCreateInfoKHR;
11535 
11536 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
11537 
11538 #ifndef VK_NO_PROTOTYPES
11539 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
11540     VkCommandBuffer                             commandBuffer,
11541     uint32_t                                    lineStippleFactor,
11542     uint16_t                                    lineStipplePattern);
11543 #endif
11544 
11545 
11546 // VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
11547 #define VK_KHR_calibrated_timestamps 1
11548 #define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
11549 #define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
11550 
11551 typedef enum VkTimeDomainKHR {
11552     VK_TIME_DOMAIN_DEVICE_KHR = 0,
11553     VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
11554     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
11555     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
11556     VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
11557     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
11558     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
11559     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
11560     VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
11561 } VkTimeDomainKHR;
11562 typedef struct VkCalibratedTimestampInfoKHR {
11563     VkStructureType    sType;
11564     const void*        pNext;
11565     VkTimeDomainKHR    timeDomain;
11566 } VkCalibratedTimestampInfoKHR;
11567 
11568 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
11569 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
11570 
11571 #ifndef VK_NO_PROTOTYPES
11572 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
11573     VkPhysicalDevice                            physicalDevice,
11574     uint32_t*                                   pTimeDomainCount,
11575     VkTimeDomainKHR*                            pTimeDomains);
11576 
11577 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
11578     VkDevice                                    device,
11579     uint32_t                                    timestampCount,
11580     const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
11581     uint64_t*                                   pTimestamps,
11582     uint64_t*                                   pMaxDeviation);
11583 #endif
11584 
11585 
11586 // VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
11587 #define VK_KHR_shader_expect_assume 1
11588 #define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
11589 #define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
11590 typedef struct VkPhysicalDeviceShaderExpectAssumeFeaturesKHR {
11591     VkStructureType    sType;
11592     void*              pNext;
11593     VkBool32           shaderExpectAssume;
11594 } VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
11595 
11596 
11597 
11598 // VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
11599 #define VK_KHR_maintenance6 1
11600 #define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
11601 #define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
11602 typedef struct VkPhysicalDeviceMaintenance6FeaturesKHR {
11603     VkStructureType    sType;
11604     void*              pNext;
11605     VkBool32           maintenance6;
11606 } VkPhysicalDeviceMaintenance6FeaturesKHR;
11607 
11608 typedef struct VkPhysicalDeviceMaintenance6PropertiesKHR {
11609     VkStructureType    sType;
11610     void*              pNext;
11611     VkBool32           blockTexelViewCompatibleMultipleLayers;
11612     uint32_t           maxCombinedImageSamplerDescriptorCount;
11613     VkBool32           fragmentShadingRateClampCombinerInputs;
11614 } VkPhysicalDeviceMaintenance6PropertiesKHR;
11615 
11616 typedef struct VkBindMemoryStatusKHR {
11617     VkStructureType    sType;
11618     const void*        pNext;
11619     VkResult*          pResult;
11620 } VkBindMemoryStatusKHR;
11621 
11622 typedef struct VkBindDescriptorSetsInfoKHR {
11623     VkStructureType           sType;
11624     const void*               pNext;
11625     VkShaderStageFlags        stageFlags;
11626     VkPipelineLayout          layout;
11627     uint32_t                  firstSet;
11628     uint32_t                  descriptorSetCount;
11629     const VkDescriptorSet*    pDescriptorSets;
11630     uint32_t                  dynamicOffsetCount;
11631     const uint32_t*           pDynamicOffsets;
11632 } VkBindDescriptorSetsInfoKHR;
11633 
11634 typedef struct VkPushConstantsInfoKHR {
11635     VkStructureType       sType;
11636     const void*           pNext;
11637     VkPipelineLayout      layout;
11638     VkShaderStageFlags    stageFlags;
11639     uint32_t              offset;
11640     uint32_t              size;
11641     const void*           pValues;
11642 } VkPushConstantsInfoKHR;
11643 
11644 typedef struct VkPushDescriptorSetInfoKHR {
11645     VkStructureType                sType;
11646     const void*                    pNext;
11647     VkShaderStageFlags             stageFlags;
11648     VkPipelineLayout               layout;
11649     uint32_t                       set;
11650     uint32_t                       descriptorWriteCount;
11651     const VkWriteDescriptorSet*    pDescriptorWrites;
11652 } VkPushDescriptorSetInfoKHR;
11653 
11654 typedef struct VkPushDescriptorSetWithTemplateInfoKHR {
11655     VkStructureType               sType;
11656     const void*                   pNext;
11657     VkDescriptorUpdateTemplate    descriptorUpdateTemplate;
11658     VkPipelineLayout              layout;
11659     uint32_t                      set;
11660     const void*                   pData;
11661 } VkPushDescriptorSetWithTemplateInfoKHR;
11662 
11663 typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
11664     VkStructureType        sType;
11665     const void*            pNext;
11666     VkShaderStageFlags     stageFlags;
11667     VkPipelineLayout       layout;
11668     uint32_t               firstSet;
11669     uint32_t               setCount;
11670     const uint32_t*        pBufferIndices;
11671     const VkDeviceSize*    pOffsets;
11672 } VkSetDescriptorBufferOffsetsInfoEXT;
11673 
11674 typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
11675     VkStructureType       sType;
11676     const void*           pNext;
11677     VkShaderStageFlags    stageFlags;
11678     VkPipelineLayout      layout;
11679     uint32_t              set;
11680 } VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
11681 
11682 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfoKHR* pBindDescriptorSetsInfo);
11683 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfoKHR* pPushConstantsInfo);
11684 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfoKHR* pPushDescriptorSetInfo);
11685 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo);
11686 typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
11687 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
11688 
11689 #ifndef VK_NO_PROTOTYPES
11690 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
11691     VkCommandBuffer                             commandBuffer,
11692     const VkBindDescriptorSetsInfoKHR*          pBindDescriptorSetsInfo);
11693 
11694 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
11695     VkCommandBuffer                             commandBuffer,
11696     const VkPushConstantsInfoKHR*               pPushConstantsInfo);
11697 
11698 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
11699     VkCommandBuffer                             commandBuffer,
11700     const VkPushDescriptorSetInfoKHR*           pPushDescriptorSetInfo);
11701 
11702 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
11703     VkCommandBuffer                             commandBuffer,
11704     const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo);
11705 
11706 VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
11707     VkCommandBuffer                             commandBuffer,
11708     const VkSetDescriptorBufferOffsetsInfoEXT*  pSetDescriptorBufferOffsetsInfo);
11709 
11710 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
11711     VkCommandBuffer                             commandBuffer,
11712     const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
11713 #endif
11714 
11715 
11716 // VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
11717 #define VK_EXT_debug_report 1
11718 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
11719 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  10
11720 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
11721 
11722 typedef enum VkDebugReportObjectTypeEXT {
11723     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
11724     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
11725     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
11726     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
11727     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
11728     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
11729     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
11730     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
11731     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
11732     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
11733     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
11734     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
11735     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
11736     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
11737     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
11738     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
11739     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
11740     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
11741     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
11742     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
11743     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
11744     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
11745     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
11746     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
11747     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
11748     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
11749     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
11750     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
11751     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
11752     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
11753     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
11754     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
11755     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
11756     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
11757     VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
11758     VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
11759     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
11760     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
11761     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
11762     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
11763     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
11764     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
11765     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
11766     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
11767     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
11768     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
11769 } VkDebugReportObjectTypeEXT;
11770 
11771 typedef enum VkDebugReportFlagBitsEXT {
11772     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
11773     VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
11774     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
11775     VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
11776     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
11777     VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
11778 } VkDebugReportFlagBitsEXT;
11779 typedef VkFlags VkDebugReportFlagsEXT;
11780 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
11781     VkDebugReportFlagsEXT                       flags,
11782     VkDebugReportObjectTypeEXT                  objectType,
11783     uint64_t                                    object,
11784     size_t                                      location,
11785     int32_t                                     messageCode,
11786     const char*                                 pLayerPrefix,
11787     const char*                                 pMessage,
11788     void*                                       pUserData);
11789 
11790 typedef struct VkDebugReportCallbackCreateInfoEXT {
11791     VkStructureType                 sType;
11792     const void*                     pNext;
11793     VkDebugReportFlagsEXT           flags;
11794     PFN_vkDebugReportCallbackEXT    pfnCallback;
11795     void*                           pUserData;
11796 } VkDebugReportCallbackCreateInfoEXT;
11797 
11798 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
11799 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
11800 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);
11801 
11802 #ifndef VK_NO_PROTOTYPES
11803 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
11804     VkInstance                                  instance,
11805     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
11806     const VkAllocationCallbacks*                pAllocator,
11807     VkDebugReportCallbackEXT*                   pCallback);
11808 
11809 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
11810     VkInstance                                  instance,
11811     VkDebugReportCallbackEXT                    callback,
11812     const VkAllocationCallbacks*                pAllocator);
11813 
11814 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
11815     VkInstance                                  instance,
11816     VkDebugReportFlagsEXT                       flags,
11817     VkDebugReportObjectTypeEXT                  objectType,
11818     uint64_t                                    object,
11819     size_t                                      location,
11820     int32_t                                     messageCode,
11821     const char*                                 pLayerPrefix,
11822     const char*                                 pMessage);
11823 #endif
11824 
11825 
11826 // VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
11827 #define VK_NV_glsl_shader 1
11828 #define VK_NV_GLSL_SHADER_SPEC_VERSION    1
11829 #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
11830 
11831 
11832 // VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
11833 #define VK_EXT_depth_range_unrestricted 1
11834 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
11835 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
11836 
11837 
11838 // VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
11839 #define VK_IMG_filter_cubic 1
11840 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
11841 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
11842 
11843 
11844 // VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
11845 #define VK_AMD_rasterization_order 1
11846 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
11847 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
11848 
11849 typedef enum VkRasterizationOrderAMD {
11850     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
11851     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
11852     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
11853 } VkRasterizationOrderAMD;
11854 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
11855     VkStructureType            sType;
11856     const void*                pNext;
11857     VkRasterizationOrderAMD    rasterizationOrder;
11858 } VkPipelineRasterizationStateRasterizationOrderAMD;
11859 
11860 
11861 
11862 // VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
11863 #define VK_AMD_shader_trinary_minmax 1
11864 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
11865 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
11866 
11867 
11868 // VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
11869 #define VK_AMD_shader_explicit_vertex_parameter 1
11870 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
11871 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
11872 
11873 
11874 // VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
11875 #define VK_EXT_debug_marker 1
11876 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
11877 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
11878 typedef struct VkDebugMarkerObjectNameInfoEXT {
11879     VkStructureType               sType;
11880     const void*                   pNext;
11881     VkDebugReportObjectTypeEXT    objectType;
11882     uint64_t                      object;
11883     const char*                   pObjectName;
11884 } VkDebugMarkerObjectNameInfoEXT;
11885 
11886 typedef struct VkDebugMarkerObjectTagInfoEXT {
11887     VkStructureType               sType;
11888     const void*                   pNext;
11889     VkDebugReportObjectTypeEXT    objectType;
11890     uint64_t                      object;
11891     uint64_t                      tagName;
11892     size_t                        tagSize;
11893     const void*                   pTag;
11894 } VkDebugMarkerObjectTagInfoEXT;
11895 
11896 typedef struct VkDebugMarkerMarkerInfoEXT {
11897     VkStructureType    sType;
11898     const void*        pNext;
11899     const char*        pMarkerName;
11900     float              color[4];
11901 } VkDebugMarkerMarkerInfoEXT;
11902 
11903 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
11904 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
11905 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
11906 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
11907 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
11908 
11909 #ifndef VK_NO_PROTOTYPES
11910 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
11911     VkDevice                                    device,
11912     const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
11913 
11914 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
11915     VkDevice                                    device,
11916     const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
11917 
11918 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
11919     VkCommandBuffer                             commandBuffer,
11920     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
11921 
11922 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
11923     VkCommandBuffer                             commandBuffer);
11924 
11925 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
11926     VkCommandBuffer                             commandBuffer,
11927     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
11928 #endif
11929 
11930 
11931 // VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
11932 #define VK_AMD_gcn_shader 1
11933 #define VK_AMD_GCN_SHADER_SPEC_VERSION    1
11934 #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
11935 
11936 
11937 // VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
11938 #define VK_NV_dedicated_allocation 1
11939 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
11940 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
11941 typedef struct VkDedicatedAllocationImageCreateInfoNV {
11942     VkStructureType    sType;
11943     const void*        pNext;
11944     VkBool32           dedicatedAllocation;
11945 } VkDedicatedAllocationImageCreateInfoNV;
11946 
11947 typedef struct VkDedicatedAllocationBufferCreateInfoNV {
11948     VkStructureType    sType;
11949     const void*        pNext;
11950     VkBool32           dedicatedAllocation;
11951 } VkDedicatedAllocationBufferCreateInfoNV;
11952 
11953 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
11954     VkStructureType    sType;
11955     const void*        pNext;
11956     VkImage            image;
11957     VkBuffer           buffer;
11958 } VkDedicatedAllocationMemoryAllocateInfoNV;
11959 
11960 
11961 
11962 // VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
11963 #define VK_EXT_transform_feedback 1
11964 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
11965 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
11966 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
11967 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
11968     VkStructureType    sType;
11969     void*              pNext;
11970     VkBool32           transformFeedback;
11971     VkBool32           geometryStreams;
11972 } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
11973 
11974 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
11975     VkStructureType    sType;
11976     void*              pNext;
11977     uint32_t           maxTransformFeedbackStreams;
11978     uint32_t           maxTransformFeedbackBuffers;
11979     VkDeviceSize       maxTransformFeedbackBufferSize;
11980     uint32_t           maxTransformFeedbackStreamDataSize;
11981     uint32_t           maxTransformFeedbackBufferDataSize;
11982     uint32_t           maxTransformFeedbackBufferDataStride;
11983     VkBool32           transformFeedbackQueries;
11984     VkBool32           transformFeedbackStreamsLinesTriangles;
11985     VkBool32           transformFeedbackRasterizationStreamSelect;
11986     VkBool32           transformFeedbackDraw;
11987 } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
11988 
11989 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
11990     VkStructureType                                     sType;
11991     const void*                                         pNext;
11992     VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
11993     uint32_t                                            rasterizationStream;
11994 } VkPipelineRasterizationStateStreamCreateInfoEXT;
11995 
11996 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
11997 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
11998 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
11999 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
12000 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
12001 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
12002 
12003 #ifndef VK_NO_PROTOTYPES
12004 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
12005     VkCommandBuffer                             commandBuffer,
12006     uint32_t                                    firstBinding,
12007     uint32_t                                    bindingCount,
12008     const VkBuffer*                             pBuffers,
12009     const VkDeviceSize*                         pOffsets,
12010     const VkDeviceSize*                         pSizes);
12011 
12012 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
12013     VkCommandBuffer                             commandBuffer,
12014     uint32_t                                    firstCounterBuffer,
12015     uint32_t                                    counterBufferCount,
12016     const VkBuffer*                             pCounterBuffers,
12017     const VkDeviceSize*                         pCounterBufferOffsets);
12018 
12019 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
12020     VkCommandBuffer                             commandBuffer,
12021     uint32_t                                    firstCounterBuffer,
12022     uint32_t                                    counterBufferCount,
12023     const VkBuffer*                             pCounterBuffers,
12024     const VkDeviceSize*                         pCounterBufferOffsets);
12025 
12026 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
12027     VkCommandBuffer                             commandBuffer,
12028     VkQueryPool                                 queryPool,
12029     uint32_t                                    query,
12030     VkQueryControlFlags                         flags,
12031     uint32_t                                    index);
12032 
12033 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
12034     VkCommandBuffer                             commandBuffer,
12035     VkQueryPool                                 queryPool,
12036     uint32_t                                    query,
12037     uint32_t                                    index);
12038 
12039 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
12040     VkCommandBuffer                             commandBuffer,
12041     uint32_t                                    instanceCount,
12042     uint32_t                                    firstInstance,
12043     VkBuffer                                    counterBuffer,
12044     VkDeviceSize                                counterBufferOffset,
12045     uint32_t                                    counterOffset,
12046     uint32_t                                    vertexStride);
12047 #endif
12048 
12049 
12050 // VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
12051 #define VK_NVX_binary_import 1
12052 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
12053 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
12054 #define VK_NVX_BINARY_IMPORT_SPEC_VERSION 1
12055 #define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
12056 typedef struct VkCuModuleCreateInfoNVX {
12057     VkStructureType    sType;
12058     const void*        pNext;
12059     size_t             dataSize;
12060     const void*        pData;
12061 } VkCuModuleCreateInfoNVX;
12062 
12063 typedef struct VkCuFunctionCreateInfoNVX {
12064     VkStructureType    sType;
12065     const void*        pNext;
12066     VkCuModuleNVX      module;
12067     const char*        pName;
12068 } VkCuFunctionCreateInfoNVX;
12069 
12070 typedef struct VkCuLaunchInfoNVX {
12071     VkStructureType        sType;
12072     const void*            pNext;
12073     VkCuFunctionNVX        function;
12074     uint32_t               gridDimX;
12075     uint32_t               gridDimY;
12076     uint32_t               gridDimZ;
12077     uint32_t               blockDimX;
12078     uint32_t               blockDimY;
12079     uint32_t               blockDimZ;
12080     uint32_t               sharedMemBytes;
12081     size_t                 paramCount;
12082     const void* const *    pParams;
12083     size_t                 extraCount;
12084     const void* const *    pExtras;
12085 } VkCuLaunchInfoNVX;
12086 
12087 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
12088 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
12089 typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
12090 typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
12091 typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
12092 
12093 #ifndef VK_NO_PROTOTYPES
12094 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
12095     VkDevice                                    device,
12096     const VkCuModuleCreateInfoNVX*              pCreateInfo,
12097     const VkAllocationCallbacks*                pAllocator,
12098     VkCuModuleNVX*                              pModule);
12099 
12100 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
12101     VkDevice                                    device,
12102     const VkCuFunctionCreateInfoNVX*            pCreateInfo,
12103     const VkAllocationCallbacks*                pAllocator,
12104     VkCuFunctionNVX*                            pFunction);
12105 
12106 VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
12107     VkDevice                                    device,
12108     VkCuModuleNVX                               module,
12109     const VkAllocationCallbacks*                pAllocator);
12110 
12111 VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
12112     VkDevice                                    device,
12113     VkCuFunctionNVX                             function,
12114     const VkAllocationCallbacks*                pAllocator);
12115 
12116 VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
12117     VkCommandBuffer                             commandBuffer,
12118     const VkCuLaunchInfoNVX*                    pLaunchInfo);
12119 #endif
12120 
12121 
12122 // VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
12123 #define VK_NVX_image_view_handle 1
12124 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
12125 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
12126 typedef struct VkImageViewHandleInfoNVX {
12127     VkStructureType     sType;
12128     const void*         pNext;
12129     VkImageView         imageView;
12130     VkDescriptorType    descriptorType;
12131     VkSampler           sampler;
12132 } VkImageViewHandleInfoNVX;
12133 
12134 typedef struct VkImageViewAddressPropertiesNVX {
12135     VkStructureType    sType;
12136     void*              pNext;
12137     VkDeviceAddress    deviceAddress;
12138     VkDeviceSize       size;
12139 } VkImageViewAddressPropertiesNVX;
12140 
12141 typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
12142 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
12143 
12144 #ifndef VK_NO_PROTOTYPES
12145 VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
12146     VkDevice                                    device,
12147     const VkImageViewHandleInfoNVX*             pInfo);
12148 
12149 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
12150     VkDevice                                    device,
12151     VkImageView                                 imageView,
12152     VkImageViewAddressPropertiesNVX*            pProperties);
12153 #endif
12154 
12155 
12156 // VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
12157 #define VK_AMD_draw_indirect_count 1
12158 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
12159 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
12160 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
12161 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
12162 
12163 #ifndef VK_NO_PROTOTYPES
12164 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
12165     VkCommandBuffer                             commandBuffer,
12166     VkBuffer                                    buffer,
12167     VkDeviceSize                                offset,
12168     VkBuffer                                    countBuffer,
12169     VkDeviceSize                                countBufferOffset,
12170     uint32_t                                    maxDrawCount,
12171     uint32_t                                    stride);
12172 
12173 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
12174     VkCommandBuffer                             commandBuffer,
12175     VkBuffer                                    buffer,
12176     VkDeviceSize                                offset,
12177     VkBuffer                                    countBuffer,
12178     VkDeviceSize                                countBufferOffset,
12179     uint32_t                                    maxDrawCount,
12180     uint32_t                                    stride);
12181 #endif
12182 
12183 
12184 // VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
12185 #define VK_AMD_negative_viewport_height 1
12186 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
12187 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
12188 
12189 
12190 // VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
12191 #define VK_AMD_gpu_shader_half_float 1
12192 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
12193 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
12194 
12195 
12196 // VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
12197 #define VK_AMD_shader_ballot 1
12198 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
12199 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
12200 
12201 
12202 // VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
12203 #define VK_AMD_texture_gather_bias_lod 1
12204 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
12205 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
12206 typedef struct VkTextureLODGatherFormatPropertiesAMD {
12207     VkStructureType    sType;
12208     void*              pNext;
12209     VkBool32           supportsTextureGatherLODBiasAMD;
12210 } VkTextureLODGatherFormatPropertiesAMD;
12211 
12212 
12213 
12214 // VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
12215 #define VK_AMD_shader_info 1
12216 #define VK_AMD_SHADER_INFO_SPEC_VERSION   1
12217 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
12218 
12219 typedef enum VkShaderInfoTypeAMD {
12220     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
12221     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
12222     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
12223     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
12224 } VkShaderInfoTypeAMD;
12225 typedef struct VkShaderResourceUsageAMD {
12226     uint32_t    numUsedVgprs;
12227     uint32_t    numUsedSgprs;
12228     uint32_t    ldsSizePerLocalWorkGroup;
12229     size_t      ldsUsageSizeInBytes;
12230     size_t      scratchMemUsageInBytes;
12231 } VkShaderResourceUsageAMD;
12232 
12233 typedef struct VkShaderStatisticsInfoAMD {
12234     VkShaderStageFlags          shaderStageMask;
12235     VkShaderResourceUsageAMD    resourceUsage;
12236     uint32_t                    numPhysicalVgprs;
12237     uint32_t                    numPhysicalSgprs;
12238     uint32_t                    numAvailableVgprs;
12239     uint32_t                    numAvailableSgprs;
12240     uint32_t                    computeWorkGroupSize[3];
12241 } VkShaderStatisticsInfoAMD;
12242 
12243 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
12244 
12245 #ifndef VK_NO_PROTOTYPES
12246 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
12247     VkDevice                                    device,
12248     VkPipeline                                  pipeline,
12249     VkShaderStageFlagBits                       shaderStage,
12250     VkShaderInfoTypeAMD                         infoType,
12251     size_t*                                     pInfoSize,
12252     void*                                       pInfo);
12253 #endif
12254 
12255 
12256 // VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
12257 #define VK_AMD_shader_image_load_store_lod 1
12258 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
12259 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
12260 
12261 
12262 // VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
12263 #define VK_NV_corner_sampled_image 1
12264 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
12265 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
12266 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
12267     VkStructureType    sType;
12268     void*              pNext;
12269     VkBool32           cornerSampledImage;
12270 } VkPhysicalDeviceCornerSampledImageFeaturesNV;
12271 
12272 
12273 
12274 // VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
12275 #define VK_IMG_format_pvrtc 1
12276 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
12277 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
12278 
12279 
12280 // VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
12281 #define VK_NV_external_memory_capabilities 1
12282 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
12283 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
12284 
12285 typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
12286     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
12287     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
12288     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
12289     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
12290     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
12291 } VkExternalMemoryHandleTypeFlagBitsNV;
12292 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
12293 
12294 typedef enum VkExternalMemoryFeatureFlagBitsNV {
12295     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
12296     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
12297     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
12298     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
12299 } VkExternalMemoryFeatureFlagBitsNV;
12300 typedef VkFlags VkExternalMemoryFeatureFlagsNV;
12301 typedef struct VkExternalImageFormatPropertiesNV {
12302     VkImageFormatProperties              imageFormatProperties;
12303     VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
12304     VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
12305     VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
12306 } VkExternalImageFormatPropertiesNV;
12307 
12308 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
12309 
12310 #ifndef VK_NO_PROTOTYPES
12311 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
12312     VkPhysicalDevice                            physicalDevice,
12313     VkFormat                                    format,
12314     VkImageType                                 type,
12315     VkImageTiling                               tiling,
12316     VkImageUsageFlags                           usage,
12317     VkImageCreateFlags                          flags,
12318     VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
12319     VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
12320 #endif
12321 
12322 
12323 // VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
12324 #define VK_NV_external_memory 1
12325 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
12326 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
12327 typedef struct VkExternalMemoryImageCreateInfoNV {
12328     VkStructureType                      sType;
12329     const void*                          pNext;
12330     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
12331 } VkExternalMemoryImageCreateInfoNV;
12332 
12333 typedef struct VkExportMemoryAllocateInfoNV {
12334     VkStructureType                      sType;
12335     const void*                          pNext;
12336     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
12337 } VkExportMemoryAllocateInfoNV;
12338 
12339 
12340 
12341 // VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
12342 #define VK_EXT_validation_flags 1
12343 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
12344 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
12345 
12346 typedef enum VkValidationCheckEXT {
12347     VK_VALIDATION_CHECK_ALL_EXT = 0,
12348     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
12349     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
12350 } VkValidationCheckEXT;
12351 typedef struct VkValidationFlagsEXT {
12352     VkStructureType                sType;
12353     const void*                    pNext;
12354     uint32_t                       disabledValidationCheckCount;
12355     const VkValidationCheckEXT*    pDisabledValidationChecks;
12356 } VkValidationFlagsEXT;
12357 
12358 
12359 
12360 // VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
12361 #define VK_EXT_shader_subgroup_ballot 1
12362 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
12363 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
12364 
12365 
12366 // VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
12367 #define VK_EXT_shader_subgroup_vote 1
12368 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
12369 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
12370 
12371 
12372 // VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
12373 #define VK_EXT_texture_compression_astc_hdr 1
12374 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
12375 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
12376 typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
12377 
12378 
12379 
12380 // VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
12381 #define VK_EXT_astc_decode_mode 1
12382 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
12383 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
12384 typedef struct VkImageViewASTCDecodeModeEXT {
12385     VkStructureType    sType;
12386     const void*        pNext;
12387     VkFormat           decodeMode;
12388 } VkImageViewASTCDecodeModeEXT;
12389 
12390 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
12391     VkStructureType    sType;
12392     void*              pNext;
12393     VkBool32           decodeModeSharedExponent;
12394 } VkPhysicalDeviceASTCDecodeFeaturesEXT;
12395 
12396 
12397 
12398 // VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
12399 #define VK_EXT_pipeline_robustness 1
12400 #define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
12401 #define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
12402 
12403 typedef enum VkPipelineRobustnessBufferBehaviorEXT {
12404     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0,
12405     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1,
12406     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2,
12407     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3,
12408     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 0x7FFFFFFF
12409 } VkPipelineRobustnessBufferBehaviorEXT;
12410 
12411 typedef enum VkPipelineRobustnessImageBehaviorEXT {
12412     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0,
12413     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1,
12414     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2,
12415     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3,
12416     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 0x7FFFFFFF
12417 } VkPipelineRobustnessImageBehaviorEXT;
12418 typedef struct VkPhysicalDevicePipelineRobustnessFeaturesEXT {
12419     VkStructureType    sType;
12420     void*              pNext;
12421     VkBool32           pipelineRobustness;
12422 } VkPhysicalDevicePipelineRobustnessFeaturesEXT;
12423 
12424 typedef struct VkPhysicalDevicePipelineRobustnessPropertiesEXT {
12425     VkStructureType                          sType;
12426     void*                                    pNext;
12427     VkPipelineRobustnessBufferBehaviorEXT    defaultRobustnessStorageBuffers;
12428     VkPipelineRobustnessBufferBehaviorEXT    defaultRobustnessUniformBuffers;
12429     VkPipelineRobustnessBufferBehaviorEXT    defaultRobustnessVertexInputs;
12430     VkPipelineRobustnessImageBehaviorEXT     defaultRobustnessImages;
12431 } VkPhysicalDevicePipelineRobustnessPropertiesEXT;
12432 
12433 typedef struct VkPipelineRobustnessCreateInfoEXT {
12434     VkStructureType                          sType;
12435     const void*                              pNext;
12436     VkPipelineRobustnessBufferBehaviorEXT    storageBuffers;
12437     VkPipelineRobustnessBufferBehaviorEXT    uniformBuffers;
12438     VkPipelineRobustnessBufferBehaviorEXT    vertexInputs;
12439     VkPipelineRobustnessImageBehaviorEXT     images;
12440 } VkPipelineRobustnessCreateInfoEXT;
12441 
12442 
12443 
12444 // VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
12445 #define VK_EXT_conditional_rendering 1
12446 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
12447 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
12448 
12449 typedef enum VkConditionalRenderingFlagBitsEXT {
12450     VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
12451     VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12452 } VkConditionalRenderingFlagBitsEXT;
12453 typedef VkFlags VkConditionalRenderingFlagsEXT;
12454 typedef struct VkConditionalRenderingBeginInfoEXT {
12455     VkStructureType                   sType;
12456     const void*                       pNext;
12457     VkBuffer                          buffer;
12458     VkDeviceSize                      offset;
12459     VkConditionalRenderingFlagsEXT    flags;
12460 } VkConditionalRenderingBeginInfoEXT;
12461 
12462 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
12463     VkStructureType    sType;
12464     void*              pNext;
12465     VkBool32           conditionalRendering;
12466     VkBool32           inheritedConditionalRendering;
12467 } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
12468 
12469 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
12470     VkStructureType    sType;
12471     const void*        pNext;
12472     VkBool32           conditionalRenderingEnable;
12473 } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
12474 
12475 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
12476 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
12477 
12478 #ifndef VK_NO_PROTOTYPES
12479 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
12480     VkCommandBuffer                             commandBuffer,
12481     const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin);
12482 
12483 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
12484     VkCommandBuffer                             commandBuffer);
12485 #endif
12486 
12487 
12488 // VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
12489 #define VK_NV_clip_space_w_scaling 1
12490 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
12491 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
12492 typedef struct VkViewportWScalingNV {
12493     float    xcoeff;
12494     float    ycoeff;
12495 } VkViewportWScalingNV;
12496 
12497 typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
12498     VkStructureType                sType;
12499     const void*                    pNext;
12500     VkBool32                       viewportWScalingEnable;
12501     uint32_t                       viewportCount;
12502     const VkViewportWScalingNV*    pViewportWScalings;
12503 } VkPipelineViewportWScalingStateCreateInfoNV;
12504 
12505 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
12506 
12507 #ifndef VK_NO_PROTOTYPES
12508 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
12509     VkCommandBuffer                             commandBuffer,
12510     uint32_t                                    firstViewport,
12511     uint32_t                                    viewportCount,
12512     const VkViewportWScalingNV*                 pViewportWScalings);
12513 #endif
12514 
12515 
12516 // VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
12517 #define VK_EXT_direct_mode_display 1
12518 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
12519 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
12520 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
12521 
12522 #ifndef VK_NO_PROTOTYPES
12523 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
12524     VkPhysicalDevice                            physicalDevice,
12525     VkDisplayKHR                                display);
12526 #endif
12527 
12528 
12529 // VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
12530 #define VK_EXT_display_surface_counter 1
12531 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
12532 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
12533 
12534 typedef enum VkSurfaceCounterFlagBitsEXT {
12535     VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
12536     VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
12537     VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12538 } VkSurfaceCounterFlagBitsEXT;
12539 typedef VkFlags VkSurfaceCounterFlagsEXT;
12540 typedef struct VkSurfaceCapabilities2EXT {
12541     VkStructureType                  sType;
12542     void*                            pNext;
12543     uint32_t                         minImageCount;
12544     uint32_t                         maxImageCount;
12545     VkExtent2D                       currentExtent;
12546     VkExtent2D                       minImageExtent;
12547     VkExtent2D                       maxImageExtent;
12548     uint32_t                         maxImageArrayLayers;
12549     VkSurfaceTransformFlagsKHR       supportedTransforms;
12550     VkSurfaceTransformFlagBitsKHR    currentTransform;
12551     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
12552     VkImageUsageFlags                supportedUsageFlags;
12553     VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
12554 } VkSurfaceCapabilities2EXT;
12555 
12556 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
12557 
12558 #ifndef VK_NO_PROTOTYPES
12559 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
12560     VkPhysicalDevice                            physicalDevice,
12561     VkSurfaceKHR                                surface,
12562     VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
12563 #endif
12564 
12565 
12566 // VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
12567 #define VK_EXT_display_control 1
12568 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
12569 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
12570 
12571 typedef enum VkDisplayPowerStateEXT {
12572     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
12573     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
12574     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
12575     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
12576 } VkDisplayPowerStateEXT;
12577 
12578 typedef enum VkDeviceEventTypeEXT {
12579     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
12580     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
12581 } VkDeviceEventTypeEXT;
12582 
12583 typedef enum VkDisplayEventTypeEXT {
12584     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
12585     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
12586 } VkDisplayEventTypeEXT;
12587 typedef struct VkDisplayPowerInfoEXT {
12588     VkStructureType           sType;
12589     const void*               pNext;
12590     VkDisplayPowerStateEXT    powerState;
12591 } VkDisplayPowerInfoEXT;
12592 
12593 typedef struct VkDeviceEventInfoEXT {
12594     VkStructureType         sType;
12595     const void*             pNext;
12596     VkDeviceEventTypeEXT    deviceEvent;
12597 } VkDeviceEventInfoEXT;
12598 
12599 typedef struct VkDisplayEventInfoEXT {
12600     VkStructureType          sType;
12601     const void*              pNext;
12602     VkDisplayEventTypeEXT    displayEvent;
12603 } VkDisplayEventInfoEXT;
12604 
12605 typedef struct VkSwapchainCounterCreateInfoEXT {
12606     VkStructureType             sType;
12607     const void*                 pNext;
12608     VkSurfaceCounterFlagsEXT    surfaceCounters;
12609 } VkSwapchainCounterCreateInfoEXT;
12610 
12611 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
12612 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
12613 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
12614 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
12615 
12616 #ifndef VK_NO_PROTOTYPES
12617 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
12618     VkDevice                                    device,
12619     VkDisplayKHR                                display,
12620     const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
12621 
12622 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
12623     VkDevice                                    device,
12624     const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
12625     const VkAllocationCallbacks*                pAllocator,
12626     VkFence*                                    pFence);
12627 
12628 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
12629     VkDevice                                    device,
12630     VkDisplayKHR                                display,
12631     const VkDisplayEventInfoEXT*                pDisplayEventInfo,
12632     const VkAllocationCallbacks*                pAllocator,
12633     VkFence*                                    pFence);
12634 
12635 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
12636     VkDevice                                    device,
12637     VkSwapchainKHR                              swapchain,
12638     VkSurfaceCounterFlagBitsEXT                 counter,
12639     uint64_t*                                   pCounterValue);
12640 #endif
12641 
12642 
12643 // VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
12644 #define VK_GOOGLE_display_timing 1
12645 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
12646 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
12647 typedef struct VkRefreshCycleDurationGOOGLE {
12648     uint64_t    refreshDuration;
12649 } VkRefreshCycleDurationGOOGLE;
12650 
12651 typedef struct VkPastPresentationTimingGOOGLE {
12652     uint32_t    presentID;
12653     uint64_t    desiredPresentTime;
12654     uint64_t    actualPresentTime;
12655     uint64_t    earliestPresentTime;
12656     uint64_t    presentMargin;
12657 } VkPastPresentationTimingGOOGLE;
12658 
12659 typedef struct VkPresentTimeGOOGLE {
12660     uint32_t    presentID;
12661     uint64_t    desiredPresentTime;
12662 } VkPresentTimeGOOGLE;
12663 
12664 typedef struct VkPresentTimesInfoGOOGLE {
12665     VkStructureType               sType;
12666     const void*                   pNext;
12667     uint32_t                      swapchainCount;
12668     const VkPresentTimeGOOGLE*    pTimes;
12669 } VkPresentTimesInfoGOOGLE;
12670 
12671 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
12672 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
12673 
12674 #ifndef VK_NO_PROTOTYPES
12675 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
12676     VkDevice                                    device,
12677     VkSwapchainKHR                              swapchain,
12678     VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
12679 
12680 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
12681     VkDevice                                    device,
12682     VkSwapchainKHR                              swapchain,
12683     uint32_t*                                   pPresentationTimingCount,
12684     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
12685 #endif
12686 
12687 
12688 // VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
12689 #define VK_NV_sample_mask_override_coverage 1
12690 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
12691 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
12692 
12693 
12694 // VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
12695 #define VK_NV_geometry_shader_passthrough 1
12696 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
12697 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
12698 
12699 
12700 // VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
12701 #define VK_NV_viewport_array2 1
12702 #define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
12703 #define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
12704 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
12705 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
12706 
12707 
12708 // VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
12709 #define VK_NVX_multiview_per_view_attributes 1
12710 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
12711 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
12712 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
12713     VkStructureType    sType;
12714     void*              pNext;
12715     VkBool32           perViewPositionAllComponents;
12716 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
12717 
12718 
12719 
12720 // VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
12721 #define VK_NV_viewport_swizzle 1
12722 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
12723 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
12724 
12725 typedef enum VkViewportCoordinateSwizzleNV {
12726     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
12727     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
12728     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
12729     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
12730     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
12731     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
12732     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
12733     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
12734     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
12735 } VkViewportCoordinateSwizzleNV;
12736 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
12737 typedef struct VkViewportSwizzleNV {
12738     VkViewportCoordinateSwizzleNV    x;
12739     VkViewportCoordinateSwizzleNV    y;
12740     VkViewportCoordinateSwizzleNV    z;
12741     VkViewportCoordinateSwizzleNV    w;
12742 } VkViewportSwizzleNV;
12743 
12744 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
12745     VkStructureType                                sType;
12746     const void*                                    pNext;
12747     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
12748     uint32_t                                       viewportCount;
12749     const VkViewportSwizzleNV*                     pViewportSwizzles;
12750 } VkPipelineViewportSwizzleStateCreateInfoNV;
12751 
12752 
12753 
12754 // VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
12755 #define VK_EXT_discard_rectangles 1
12756 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
12757 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
12758 
12759 typedef enum VkDiscardRectangleModeEXT {
12760     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
12761     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
12762     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
12763 } VkDiscardRectangleModeEXT;
12764 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
12765 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
12766     VkStructureType    sType;
12767     void*              pNext;
12768     uint32_t           maxDiscardRectangles;
12769 } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
12770 
12771 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
12772     VkStructureType                                  sType;
12773     const void*                                      pNext;
12774     VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
12775     VkDiscardRectangleModeEXT                        discardRectangleMode;
12776     uint32_t                                         discardRectangleCount;
12777     const VkRect2D*                                  pDiscardRectangles;
12778 } VkPipelineDiscardRectangleStateCreateInfoEXT;
12779 
12780 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
12781 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
12782 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
12783 
12784 #ifndef VK_NO_PROTOTYPES
12785 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
12786     VkCommandBuffer                             commandBuffer,
12787     uint32_t                                    firstDiscardRectangle,
12788     uint32_t                                    discardRectangleCount,
12789     const VkRect2D*                             pDiscardRectangles);
12790 
12791 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
12792     VkCommandBuffer                             commandBuffer,
12793     VkBool32                                    discardRectangleEnable);
12794 
12795 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
12796     VkCommandBuffer                             commandBuffer,
12797     VkDiscardRectangleModeEXT                   discardRectangleMode);
12798 #endif
12799 
12800 
12801 // VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
12802 #define VK_EXT_conservative_rasterization 1
12803 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
12804 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
12805 
12806 typedef enum VkConservativeRasterizationModeEXT {
12807     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
12808     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
12809     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
12810     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
12811 } VkConservativeRasterizationModeEXT;
12812 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
12813 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
12814     VkStructureType    sType;
12815     void*              pNext;
12816     float              primitiveOverestimationSize;
12817     float              maxExtraPrimitiveOverestimationSize;
12818     float              extraPrimitiveOverestimationSizeGranularity;
12819     VkBool32           primitiveUnderestimation;
12820     VkBool32           conservativePointAndLineRasterization;
12821     VkBool32           degenerateTrianglesRasterized;
12822     VkBool32           degenerateLinesRasterized;
12823     VkBool32           fullyCoveredFragmentShaderInputVariable;
12824     VkBool32           conservativeRasterizationPostDepthCoverage;
12825 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
12826 
12827 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
12828     VkStructureType                                           sType;
12829     const void*                                               pNext;
12830     VkPipelineRasterizationConservativeStateCreateFlagsEXT    flags;
12831     VkConservativeRasterizationModeEXT                        conservativeRasterizationMode;
12832     float                                                     extraPrimitiveOverestimationSize;
12833 } VkPipelineRasterizationConservativeStateCreateInfoEXT;
12834 
12835 
12836 
12837 // VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
12838 #define VK_EXT_depth_clip_enable 1
12839 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
12840 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
12841 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
12842 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
12843     VkStructureType    sType;
12844     void*              pNext;
12845     VkBool32           depthClipEnable;
12846 } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
12847 
12848 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
12849     VkStructureType                                        sType;
12850     const void*                                            pNext;
12851     VkPipelineRasterizationDepthClipStateCreateFlagsEXT    flags;
12852     VkBool32                                               depthClipEnable;
12853 } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
12854 
12855 
12856 
12857 // VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
12858 #define VK_EXT_swapchain_colorspace 1
12859 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4
12860 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
12861 
12862 
12863 // VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
12864 #define VK_EXT_hdr_metadata 1
12865 #define VK_EXT_HDR_METADATA_SPEC_VERSION  2
12866 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
12867 typedef struct VkXYColorEXT {
12868     float    x;
12869     float    y;
12870 } VkXYColorEXT;
12871 
12872 typedef struct VkHdrMetadataEXT {
12873     VkStructureType    sType;
12874     const void*        pNext;
12875     VkXYColorEXT       displayPrimaryRed;
12876     VkXYColorEXT       displayPrimaryGreen;
12877     VkXYColorEXT       displayPrimaryBlue;
12878     VkXYColorEXT       whitePoint;
12879     float              maxLuminance;
12880     float              minLuminance;
12881     float              maxContentLightLevel;
12882     float              maxFrameAverageLightLevel;
12883 } VkHdrMetadataEXT;
12884 
12885 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
12886 
12887 #ifndef VK_NO_PROTOTYPES
12888 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
12889     VkDevice                                    device,
12890     uint32_t                                    swapchainCount,
12891     const VkSwapchainKHR*                       pSwapchains,
12892     const VkHdrMetadataEXT*                     pMetadata);
12893 #endif
12894 
12895 
12896 // VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
12897 #define VK_IMG_relaxed_line_rasterization 1
12898 #define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
12899 #define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
12900 typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
12901     VkStructureType    sType;
12902     void*              pNext;
12903     VkBool32           relaxedLineRasterization;
12904 } VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
12905 
12906 
12907 
12908 // VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
12909 #define VK_EXT_external_memory_dma_buf 1
12910 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
12911 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
12912 
12913 
12914 // VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
12915 #define VK_EXT_queue_family_foreign 1
12916 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
12917 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
12918 #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~2U)
12919 
12920 
12921 // VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
12922 #define VK_EXT_debug_utils 1
12923 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
12924 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   2
12925 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
12926 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
12927 
12928 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
12929     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
12930     VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
12931     VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
12932     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
12933     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12934 } VkDebugUtilsMessageSeverityFlagBitsEXT;
12935 
12936 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
12937     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
12938     VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
12939     VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
12940     VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
12941     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12942 } VkDebugUtilsMessageTypeFlagBitsEXT;
12943 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
12944 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
12945 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
12946 typedef struct VkDebugUtilsLabelEXT {
12947     VkStructureType    sType;
12948     const void*        pNext;
12949     const char*        pLabelName;
12950     float              color[4];
12951 } VkDebugUtilsLabelEXT;
12952 
12953 typedef struct VkDebugUtilsObjectNameInfoEXT {
12954     VkStructureType    sType;
12955     const void*        pNext;
12956     VkObjectType       objectType;
12957     uint64_t           objectHandle;
12958     const char*        pObjectName;
12959 } VkDebugUtilsObjectNameInfoEXT;
12960 
12961 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
12962     VkStructureType                              sType;
12963     const void*                                  pNext;
12964     VkDebugUtilsMessengerCallbackDataFlagsEXT    flags;
12965     const char*                                  pMessageIdName;
12966     int32_t                                      messageIdNumber;
12967     const char*                                  pMessage;
12968     uint32_t                                     queueLabelCount;
12969     const VkDebugUtilsLabelEXT*                  pQueueLabels;
12970     uint32_t                                     cmdBufLabelCount;
12971     const VkDebugUtilsLabelEXT*                  pCmdBufLabels;
12972     uint32_t                                     objectCount;
12973     const VkDebugUtilsObjectNameInfoEXT*         pObjects;
12974 } VkDebugUtilsMessengerCallbackDataEXT;
12975 
12976 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
12977     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
12978     VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,
12979     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
12980     void*                                            pUserData);
12981 
12982 typedef struct VkDebugUtilsMessengerCreateInfoEXT {
12983     VkStructureType                         sType;
12984     const void*                             pNext;
12985     VkDebugUtilsMessengerCreateFlagsEXT     flags;
12986     VkDebugUtilsMessageSeverityFlagsEXT     messageSeverity;
12987     VkDebugUtilsMessageTypeFlagsEXT         messageType;
12988     PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
12989     void*                                   pUserData;
12990 } VkDebugUtilsMessengerCreateInfoEXT;
12991 
12992 typedef struct VkDebugUtilsObjectTagInfoEXT {
12993     VkStructureType    sType;
12994     const void*        pNext;
12995     VkObjectType       objectType;
12996     uint64_t           objectHandle;
12997     uint64_t           tagName;
12998     size_t             tagSize;
12999     const void*        pTag;
13000 } VkDebugUtilsObjectTagInfoEXT;
13001 
13002 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
13003 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
13004 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
13005 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
13006 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
13007 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
13008 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
13009 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
13010 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
13011 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
13012 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
13013 
13014 #ifndef VK_NO_PROTOTYPES
13015 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
13016     VkDevice                                    device,
13017     const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
13018 
13019 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
13020     VkDevice                                    device,
13021     const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
13022 
13023 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
13024     VkQueue                                     queue,
13025     const VkDebugUtilsLabelEXT*                 pLabelInfo);
13026 
13027 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
13028     VkQueue                                     queue);
13029 
13030 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
13031     VkQueue                                     queue,
13032     const VkDebugUtilsLabelEXT*                 pLabelInfo);
13033 
13034 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
13035     VkCommandBuffer                             commandBuffer,
13036     const VkDebugUtilsLabelEXT*                 pLabelInfo);
13037 
13038 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
13039     VkCommandBuffer                             commandBuffer);
13040 
13041 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
13042     VkCommandBuffer                             commandBuffer,
13043     const VkDebugUtilsLabelEXT*                 pLabelInfo);
13044 
13045 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
13046     VkInstance                                  instance,
13047     const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo,
13048     const VkAllocationCallbacks*                pAllocator,
13049     VkDebugUtilsMessengerEXT*                   pMessenger);
13050 
13051 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
13052     VkInstance                                  instance,
13053     VkDebugUtilsMessengerEXT                    messenger,
13054     const VkAllocationCallbacks*                pAllocator);
13055 
13056 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
13057     VkInstance                                  instance,
13058     VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
13059     VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
13060     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
13061 #endif
13062 
13063 
13064 // VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
13065 #define VK_EXT_sampler_filter_minmax 1
13066 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
13067 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
13068 typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
13069 
13070 typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
13071 
13072 typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
13073 
13074 
13075 
13076 // VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
13077 #define VK_AMD_gpu_shader_int16 1
13078 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
13079 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
13080 
13081 
13082 // VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
13083 #define VK_AMD_mixed_attachment_samples 1
13084 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
13085 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
13086 
13087 
13088 // VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
13089 #define VK_AMD_shader_fragment_mask 1
13090 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
13091 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
13092 
13093 
13094 // VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
13095 #define VK_EXT_inline_uniform_block 1
13096 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
13097 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
13098 typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
13099 
13100 typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
13101 
13102 typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
13103 
13104 typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
13105 
13106 
13107 
13108 // VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
13109 #define VK_EXT_shader_stencil_export 1
13110 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
13111 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
13112 
13113 
13114 // VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
13115 #define VK_EXT_sample_locations 1
13116 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
13117 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
13118 typedef struct VkSampleLocationEXT {
13119     float    x;
13120     float    y;
13121 } VkSampleLocationEXT;
13122 
13123 typedef struct VkSampleLocationsInfoEXT {
13124     VkStructureType               sType;
13125     const void*                   pNext;
13126     VkSampleCountFlagBits         sampleLocationsPerPixel;
13127     VkExtent2D                    sampleLocationGridSize;
13128     uint32_t                      sampleLocationsCount;
13129     const VkSampleLocationEXT*    pSampleLocations;
13130 } VkSampleLocationsInfoEXT;
13131 
13132 typedef struct VkAttachmentSampleLocationsEXT {
13133     uint32_t                    attachmentIndex;
13134     VkSampleLocationsInfoEXT    sampleLocationsInfo;
13135 } VkAttachmentSampleLocationsEXT;
13136 
13137 typedef struct VkSubpassSampleLocationsEXT {
13138     uint32_t                    subpassIndex;
13139     VkSampleLocationsInfoEXT    sampleLocationsInfo;
13140 } VkSubpassSampleLocationsEXT;
13141 
13142 typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
13143     VkStructureType                          sType;
13144     const void*                              pNext;
13145     uint32_t                                 attachmentInitialSampleLocationsCount;
13146     const VkAttachmentSampleLocationsEXT*    pAttachmentInitialSampleLocations;
13147     uint32_t                                 postSubpassSampleLocationsCount;
13148     const VkSubpassSampleLocationsEXT*       pPostSubpassSampleLocations;
13149 } VkRenderPassSampleLocationsBeginInfoEXT;
13150 
13151 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
13152     VkStructureType             sType;
13153     const void*                 pNext;
13154     VkBool32                    sampleLocationsEnable;
13155     VkSampleLocationsInfoEXT    sampleLocationsInfo;
13156 } VkPipelineSampleLocationsStateCreateInfoEXT;
13157 
13158 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
13159     VkStructureType       sType;
13160     void*                 pNext;
13161     VkSampleCountFlags    sampleLocationSampleCounts;
13162     VkExtent2D            maxSampleLocationGridSize;
13163     float                 sampleLocationCoordinateRange[2];
13164     uint32_t              sampleLocationSubPixelBits;
13165     VkBool32              variableSampleLocations;
13166 } VkPhysicalDeviceSampleLocationsPropertiesEXT;
13167 
13168 typedef struct VkMultisamplePropertiesEXT {
13169     VkStructureType    sType;
13170     void*              pNext;
13171     VkExtent2D         maxSampleLocationGridSize;
13172 } VkMultisamplePropertiesEXT;
13173 
13174 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
13175 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
13176 
13177 #ifndef VK_NO_PROTOTYPES
13178 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
13179     VkCommandBuffer                             commandBuffer,
13180     const VkSampleLocationsInfoEXT*             pSampleLocationsInfo);
13181 
13182 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
13183     VkPhysicalDevice                            physicalDevice,
13184     VkSampleCountFlagBits                       samples,
13185     VkMultisamplePropertiesEXT*                 pMultisampleProperties);
13186 #endif
13187 
13188 
13189 // VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
13190 #define VK_EXT_blend_operation_advanced 1
13191 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
13192 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
13193 
13194 typedef enum VkBlendOverlapEXT {
13195     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
13196     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
13197     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
13198     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
13199 } VkBlendOverlapEXT;
13200 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
13201     VkStructureType    sType;
13202     void*              pNext;
13203     VkBool32           advancedBlendCoherentOperations;
13204 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
13205 
13206 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
13207     VkStructureType    sType;
13208     void*              pNext;
13209     uint32_t           advancedBlendMaxColorAttachments;
13210     VkBool32           advancedBlendIndependentBlend;
13211     VkBool32           advancedBlendNonPremultipliedSrcColor;
13212     VkBool32           advancedBlendNonPremultipliedDstColor;
13213     VkBool32           advancedBlendCorrelatedOverlap;
13214     VkBool32           advancedBlendAllOperations;
13215 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
13216 
13217 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
13218     VkStructureType      sType;
13219     const void*          pNext;
13220     VkBool32             srcPremultiplied;
13221     VkBool32             dstPremultiplied;
13222     VkBlendOverlapEXT    blendOverlap;
13223 } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
13224 
13225 
13226 
13227 // VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
13228 #define VK_NV_fragment_coverage_to_color 1
13229 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
13230 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
13231 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
13232 typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
13233     VkStructureType                                sType;
13234     const void*                                    pNext;
13235     VkPipelineCoverageToColorStateCreateFlagsNV    flags;
13236     VkBool32                                       coverageToColorEnable;
13237     uint32_t                                       coverageToColorLocation;
13238 } VkPipelineCoverageToColorStateCreateInfoNV;
13239 
13240 
13241 
13242 // VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
13243 #define VK_NV_framebuffer_mixed_samples 1
13244 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
13245 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
13246 
13247 typedef enum VkCoverageModulationModeNV {
13248     VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
13249     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
13250     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
13251     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
13252     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
13253 } VkCoverageModulationModeNV;
13254 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
13255 typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
13256     VkStructureType                                   sType;
13257     const void*                                       pNext;
13258     VkPipelineCoverageModulationStateCreateFlagsNV    flags;
13259     VkCoverageModulationModeNV                        coverageModulationMode;
13260     VkBool32                                          coverageModulationTableEnable;
13261     uint32_t                                          coverageModulationTableCount;
13262     const float*                                      pCoverageModulationTable;
13263 } VkPipelineCoverageModulationStateCreateInfoNV;
13264 
13265 
13266 
13267 // VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
13268 #define VK_NV_fill_rectangle 1
13269 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
13270 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
13271 
13272 
13273 // VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
13274 #define VK_NV_shader_sm_builtins 1
13275 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
13276 #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
13277 typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
13278     VkStructureType    sType;
13279     void*              pNext;
13280     uint32_t           shaderSMCount;
13281     uint32_t           shaderWarpsPerSM;
13282 } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
13283 
13284 typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
13285     VkStructureType    sType;
13286     void*              pNext;
13287     VkBool32           shaderSMBuiltins;
13288 } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
13289 
13290 
13291 
13292 // VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
13293 #define VK_EXT_post_depth_coverage 1
13294 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
13295 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
13296 
13297 
13298 // VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
13299 #define VK_EXT_image_drm_format_modifier 1
13300 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
13301 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
13302 typedef struct VkDrmFormatModifierPropertiesEXT {
13303     uint64_t                drmFormatModifier;
13304     uint32_t                drmFormatModifierPlaneCount;
13305     VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
13306 } VkDrmFormatModifierPropertiesEXT;
13307 
13308 typedef struct VkDrmFormatModifierPropertiesListEXT {
13309     VkStructureType                      sType;
13310     void*                                pNext;
13311     uint32_t                             drmFormatModifierCount;
13312     VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties;
13313 } VkDrmFormatModifierPropertiesListEXT;
13314 
13315 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
13316     VkStructureType    sType;
13317     const void*        pNext;
13318     uint64_t           drmFormatModifier;
13319     VkSharingMode      sharingMode;
13320     uint32_t           queueFamilyIndexCount;
13321     const uint32_t*    pQueueFamilyIndices;
13322 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
13323 
13324 typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
13325     VkStructureType    sType;
13326     const void*        pNext;
13327     uint32_t           drmFormatModifierCount;
13328     const uint64_t*    pDrmFormatModifiers;
13329 } VkImageDrmFormatModifierListCreateInfoEXT;
13330 
13331 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
13332     VkStructureType               sType;
13333     const void*                   pNext;
13334     uint64_t                      drmFormatModifier;
13335     uint32_t                      drmFormatModifierPlaneCount;
13336     const VkSubresourceLayout*    pPlaneLayouts;
13337 } VkImageDrmFormatModifierExplicitCreateInfoEXT;
13338 
13339 typedef struct VkImageDrmFormatModifierPropertiesEXT {
13340     VkStructureType    sType;
13341     void*              pNext;
13342     uint64_t           drmFormatModifier;
13343 } VkImageDrmFormatModifierPropertiesEXT;
13344 
13345 typedef struct VkDrmFormatModifierProperties2EXT {
13346     uint64_t                 drmFormatModifier;
13347     uint32_t                 drmFormatModifierPlaneCount;
13348     VkFormatFeatureFlags2    drmFormatModifierTilingFeatures;
13349 } VkDrmFormatModifierProperties2EXT;
13350 
13351 typedef struct VkDrmFormatModifierPropertiesList2EXT {
13352     VkStructureType                       sType;
13353     void*                                 pNext;
13354     uint32_t                              drmFormatModifierCount;
13355     VkDrmFormatModifierProperties2EXT*    pDrmFormatModifierProperties;
13356 } VkDrmFormatModifierPropertiesList2EXT;
13357 
13358 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
13359 
13360 #ifndef VK_NO_PROTOTYPES
13361 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
13362     VkDevice                                    device,
13363     VkImage                                     image,
13364     VkImageDrmFormatModifierPropertiesEXT*      pProperties);
13365 #endif
13366 
13367 
13368 // VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
13369 #define VK_EXT_validation_cache 1
13370 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
13371 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
13372 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
13373 
13374 typedef enum VkValidationCacheHeaderVersionEXT {
13375     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
13376     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
13377 } VkValidationCacheHeaderVersionEXT;
13378 typedef VkFlags VkValidationCacheCreateFlagsEXT;
13379 typedef struct VkValidationCacheCreateInfoEXT {
13380     VkStructureType                    sType;
13381     const void*                        pNext;
13382     VkValidationCacheCreateFlagsEXT    flags;
13383     size_t                             initialDataSize;
13384     const void*                        pInitialData;
13385 } VkValidationCacheCreateInfoEXT;
13386 
13387 typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
13388     VkStructureType         sType;
13389     const void*             pNext;
13390     VkValidationCacheEXT    validationCache;
13391 } VkShaderModuleValidationCacheCreateInfoEXT;
13392 
13393 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
13394 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
13395 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
13396 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
13397 
13398 #ifndef VK_NO_PROTOTYPES
13399 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
13400     VkDevice                                    device,
13401     const VkValidationCacheCreateInfoEXT*       pCreateInfo,
13402     const VkAllocationCallbacks*                pAllocator,
13403     VkValidationCacheEXT*                       pValidationCache);
13404 
13405 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
13406     VkDevice                                    device,
13407     VkValidationCacheEXT                        validationCache,
13408     const VkAllocationCallbacks*                pAllocator);
13409 
13410 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
13411     VkDevice                                    device,
13412     VkValidationCacheEXT                        dstCache,
13413     uint32_t                                    srcCacheCount,
13414     const VkValidationCacheEXT*                 pSrcCaches);
13415 
13416 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
13417     VkDevice                                    device,
13418     VkValidationCacheEXT                        validationCache,
13419     size_t*                                     pDataSize,
13420     void*                                       pData);
13421 #endif
13422 
13423 
13424 // VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
13425 #define VK_EXT_descriptor_indexing 1
13426 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
13427 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
13428 typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
13429 
13430 typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
13431 
13432 typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
13433 
13434 typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
13435 
13436 typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
13437 
13438 typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
13439 
13440 typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
13441 
13442 
13443 
13444 // VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
13445 #define VK_EXT_shader_viewport_index_layer 1
13446 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
13447 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
13448 
13449 
13450 // VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
13451 #define VK_NV_shading_rate_image 1
13452 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
13453 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
13454 
13455 typedef enum VkShadingRatePaletteEntryNV {
13456     VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
13457     VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
13458     VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
13459     VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
13460     VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
13461     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
13462     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
13463     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
13464     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
13465     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
13466     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
13467     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
13468     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
13469 } VkShadingRatePaletteEntryNV;
13470 
13471 typedef enum VkCoarseSampleOrderTypeNV {
13472     VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
13473     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
13474     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
13475     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
13476     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
13477 } VkCoarseSampleOrderTypeNV;
13478 typedef struct VkShadingRatePaletteNV {
13479     uint32_t                              shadingRatePaletteEntryCount;
13480     const VkShadingRatePaletteEntryNV*    pShadingRatePaletteEntries;
13481 } VkShadingRatePaletteNV;
13482 
13483 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
13484     VkStructureType                  sType;
13485     const void*                      pNext;
13486     VkBool32                         shadingRateImageEnable;
13487     uint32_t                         viewportCount;
13488     const VkShadingRatePaletteNV*    pShadingRatePalettes;
13489 } VkPipelineViewportShadingRateImageStateCreateInfoNV;
13490 
13491 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
13492     VkStructureType    sType;
13493     void*              pNext;
13494     VkBool32           shadingRateImage;
13495     VkBool32           shadingRateCoarseSampleOrder;
13496 } VkPhysicalDeviceShadingRateImageFeaturesNV;
13497 
13498 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
13499     VkStructureType    sType;
13500     void*              pNext;
13501     VkExtent2D         shadingRateTexelSize;
13502     uint32_t           shadingRatePaletteSize;
13503     uint32_t           shadingRateMaxCoarseSamples;
13504 } VkPhysicalDeviceShadingRateImagePropertiesNV;
13505 
13506 typedef struct VkCoarseSampleLocationNV {
13507     uint32_t    pixelX;
13508     uint32_t    pixelY;
13509     uint32_t    sample;
13510 } VkCoarseSampleLocationNV;
13511 
13512 typedef struct VkCoarseSampleOrderCustomNV {
13513     VkShadingRatePaletteEntryNV        shadingRate;
13514     uint32_t                           sampleCount;
13515     uint32_t                           sampleLocationCount;
13516     const VkCoarseSampleLocationNV*    pSampleLocations;
13517 } VkCoarseSampleOrderCustomNV;
13518 
13519 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
13520     VkStructureType                       sType;
13521     const void*                           pNext;
13522     VkCoarseSampleOrderTypeNV             sampleOrderType;
13523     uint32_t                              customSampleOrderCount;
13524     const VkCoarseSampleOrderCustomNV*    pCustomSampleOrders;
13525 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
13526 
13527 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
13528 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
13529 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
13530 
13531 #ifndef VK_NO_PROTOTYPES
13532 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
13533     VkCommandBuffer                             commandBuffer,
13534     VkImageView                                 imageView,
13535     VkImageLayout                               imageLayout);
13536 
13537 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
13538     VkCommandBuffer                             commandBuffer,
13539     uint32_t                                    firstViewport,
13540     uint32_t                                    viewportCount,
13541     const VkShadingRatePaletteNV*               pShadingRatePalettes);
13542 
13543 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
13544     VkCommandBuffer                             commandBuffer,
13545     VkCoarseSampleOrderTypeNV                   sampleOrderType,
13546     uint32_t                                    customSampleOrderCount,
13547     const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders);
13548 #endif
13549 
13550 
13551 // VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
13552 #define VK_NV_ray_tracing 1
13553 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
13554 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
13555 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
13556 #define VK_SHADER_UNUSED_KHR              (~0U)
13557 #define VK_SHADER_UNUSED_NV               VK_SHADER_UNUSED_KHR
13558 
13559 typedef enum VkRayTracingShaderGroupTypeKHR {
13560     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
13561     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
13562     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
13563     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
13564     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
13565     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
13566     VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
13567 } VkRayTracingShaderGroupTypeKHR;
13568 typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
13569 
13570 
13571 typedef enum VkGeometryTypeKHR {
13572     VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
13573     VK_GEOMETRY_TYPE_AABBS_KHR = 1,
13574     VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
13575     VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
13576     VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
13577     VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
13578 } VkGeometryTypeKHR;
13579 typedef VkGeometryTypeKHR VkGeometryTypeNV;
13580 
13581 
13582 typedef enum VkAccelerationStructureTypeKHR {
13583     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
13584     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
13585     VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
13586     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
13587     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
13588     VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
13589 } VkAccelerationStructureTypeKHR;
13590 typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
13591 
13592 
13593 typedef enum VkCopyAccelerationStructureModeKHR {
13594     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
13595     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
13596     VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
13597     VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
13598     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
13599     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
13600     VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
13601 } VkCopyAccelerationStructureModeKHR;
13602 typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
13603 
13604 
13605 typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
13606     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
13607     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
13608     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
13609     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
13610 } VkAccelerationStructureMemoryRequirementsTypeNV;
13611 
13612 typedef enum VkGeometryFlagBitsKHR {
13613     VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
13614     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
13615     VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
13616     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
13617     VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13618 } VkGeometryFlagBitsKHR;
13619 typedef VkFlags VkGeometryFlagsKHR;
13620 typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
13621 
13622 typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
13623 
13624 
13625 typedef enum VkGeometryInstanceFlagBitsKHR {
13626     VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
13627     VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
13628     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
13629     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
13630     VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0x00000010,
13631     VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000020,
13632     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
13633     VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
13634     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
13635     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
13636     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
13637     VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13638 } VkGeometryInstanceFlagBitsKHR;
13639 typedef VkFlags VkGeometryInstanceFlagsKHR;
13640 typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
13641 
13642 typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
13643 
13644 
13645 typedef enum VkBuildAccelerationStructureFlagBitsKHR {
13646     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
13647     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
13648     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
13649     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
13650     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
13651     VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
13652     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x00000040,
13653     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000080,
13654     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x00000100,
13655 #ifdef VK_ENABLE_BETA_EXTENSIONS
13656     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = 0x00000200,
13657 #endif
13658     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = 0x00000800,
13659     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
13660     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
13661     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
13662     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
13663     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
13664     VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13665 } VkBuildAccelerationStructureFlagBitsKHR;
13666 typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
13667 typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
13668 
13669 typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
13670 
13671 typedef struct VkRayTracingShaderGroupCreateInfoNV {
13672     VkStructureType                   sType;
13673     const void*                       pNext;
13674     VkRayTracingShaderGroupTypeKHR    type;
13675     uint32_t                          generalShader;
13676     uint32_t                          closestHitShader;
13677     uint32_t                          anyHitShader;
13678     uint32_t                          intersectionShader;
13679 } VkRayTracingShaderGroupCreateInfoNV;
13680 
13681 typedef struct VkRayTracingPipelineCreateInfoNV {
13682     VkStructureType                               sType;
13683     const void*                                   pNext;
13684     VkPipelineCreateFlags                         flags;
13685     uint32_t                                      stageCount;
13686     const VkPipelineShaderStageCreateInfo*        pStages;
13687     uint32_t                                      groupCount;
13688     const VkRayTracingShaderGroupCreateInfoNV*    pGroups;
13689     uint32_t                                      maxRecursionDepth;
13690     VkPipelineLayout                              layout;
13691     VkPipeline                                    basePipelineHandle;
13692     int32_t                                       basePipelineIndex;
13693 } VkRayTracingPipelineCreateInfoNV;
13694 
13695 typedef struct VkGeometryTrianglesNV {
13696     VkStructureType    sType;
13697     const void*        pNext;
13698     VkBuffer           vertexData;
13699     VkDeviceSize       vertexOffset;
13700     uint32_t           vertexCount;
13701     VkDeviceSize       vertexStride;
13702     VkFormat           vertexFormat;
13703     VkBuffer           indexData;
13704     VkDeviceSize       indexOffset;
13705     uint32_t           indexCount;
13706     VkIndexType        indexType;
13707     VkBuffer           transformData;
13708     VkDeviceSize       transformOffset;
13709 } VkGeometryTrianglesNV;
13710 
13711 typedef struct VkGeometryAABBNV {
13712     VkStructureType    sType;
13713     const void*        pNext;
13714     VkBuffer           aabbData;
13715     uint32_t           numAABBs;
13716     uint32_t           stride;
13717     VkDeviceSize       offset;
13718 } VkGeometryAABBNV;
13719 
13720 typedef struct VkGeometryDataNV {
13721     VkGeometryTrianglesNV    triangles;
13722     VkGeometryAABBNV         aabbs;
13723 } VkGeometryDataNV;
13724 
13725 typedef struct VkGeometryNV {
13726     VkStructureType       sType;
13727     const void*           pNext;
13728     VkGeometryTypeKHR     geometryType;
13729     VkGeometryDataNV      geometry;
13730     VkGeometryFlagsKHR    flags;
13731 } VkGeometryNV;
13732 
13733 typedef struct VkAccelerationStructureInfoNV {
13734     VkStructureType                        sType;
13735     const void*                            pNext;
13736     VkAccelerationStructureTypeNV          type;
13737     VkBuildAccelerationStructureFlagsNV    flags;
13738     uint32_t                               instanceCount;
13739     uint32_t                               geometryCount;
13740     const VkGeometryNV*                    pGeometries;
13741 } VkAccelerationStructureInfoNV;
13742 
13743 typedef struct VkAccelerationStructureCreateInfoNV {
13744     VkStructureType                  sType;
13745     const void*                      pNext;
13746     VkDeviceSize                     compactedSize;
13747     VkAccelerationStructureInfoNV    info;
13748 } VkAccelerationStructureCreateInfoNV;
13749 
13750 typedef struct VkBindAccelerationStructureMemoryInfoNV {
13751     VkStructureType              sType;
13752     const void*                  pNext;
13753     VkAccelerationStructureNV    accelerationStructure;
13754     VkDeviceMemory               memory;
13755     VkDeviceSize                 memoryOffset;
13756     uint32_t                     deviceIndexCount;
13757     const uint32_t*              pDeviceIndices;
13758 } VkBindAccelerationStructureMemoryInfoNV;
13759 
13760 typedef struct VkWriteDescriptorSetAccelerationStructureNV {
13761     VkStructureType                     sType;
13762     const void*                         pNext;
13763     uint32_t                            accelerationStructureCount;
13764     const VkAccelerationStructureNV*    pAccelerationStructures;
13765 } VkWriteDescriptorSetAccelerationStructureNV;
13766 
13767 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
13768     VkStructureType                                    sType;
13769     const void*                                        pNext;
13770     VkAccelerationStructureMemoryRequirementsTypeNV    type;
13771     VkAccelerationStructureNV                          accelerationStructure;
13772 } VkAccelerationStructureMemoryRequirementsInfoNV;
13773 
13774 typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
13775     VkStructureType    sType;
13776     void*              pNext;
13777     uint32_t           shaderGroupHandleSize;
13778     uint32_t           maxRecursionDepth;
13779     uint32_t           maxShaderGroupStride;
13780     uint32_t           shaderGroupBaseAlignment;
13781     uint64_t           maxGeometryCount;
13782     uint64_t           maxInstanceCount;
13783     uint64_t           maxTriangleCount;
13784     uint32_t           maxDescriptorSetAccelerationStructures;
13785 } VkPhysicalDeviceRayTracingPropertiesNV;
13786 
13787 typedef struct VkTransformMatrixKHR {
13788     float    matrix[3][4];
13789 } VkTransformMatrixKHR;
13790 
13791 typedef VkTransformMatrixKHR VkTransformMatrixNV;
13792 
13793 typedef struct VkAabbPositionsKHR {
13794     float    minX;
13795     float    minY;
13796     float    minZ;
13797     float    maxX;
13798     float    maxY;
13799     float    maxZ;
13800 } VkAabbPositionsKHR;
13801 
13802 typedef VkAabbPositionsKHR VkAabbPositionsNV;
13803 
13804 typedef struct VkAccelerationStructureInstanceKHR {
13805     VkTransformMatrixKHR          transform;
13806     uint32_t                      instanceCustomIndex:24;
13807     uint32_t                      mask:8;
13808     uint32_t                      instanceShaderBindingTableRecordOffset:24;
13809     VkGeometryInstanceFlagsKHR    flags:8;
13810     uint64_t                      accelerationStructureReference;
13811 } VkAccelerationStructureInstanceKHR;
13812 
13813 typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
13814 
13815 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
13816 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
13817 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
13818 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
13819 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);
13820 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
13821 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);
13822 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
13823 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
13824 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
13825 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
13826 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
13827 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
13828 
13829 #ifndef VK_NO_PROTOTYPES
13830 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
13831     VkDevice                                    device,
13832     const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
13833     const VkAllocationCallbacks*                pAllocator,
13834     VkAccelerationStructureNV*                  pAccelerationStructure);
13835 
13836 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
13837     VkDevice                                    device,
13838     VkAccelerationStructureNV                   accelerationStructure,
13839     const VkAllocationCallbacks*                pAllocator);
13840 
13841 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
13842     VkDevice                                    device,
13843     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
13844     VkMemoryRequirements2KHR*                   pMemoryRequirements);
13845 
13846 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
13847     VkDevice                                    device,
13848     uint32_t                                    bindInfoCount,
13849     const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
13850 
13851 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
13852     VkCommandBuffer                             commandBuffer,
13853     const VkAccelerationStructureInfoNV*        pInfo,
13854     VkBuffer                                    instanceData,
13855     VkDeviceSize                                instanceOffset,
13856     VkBool32                                    update,
13857     VkAccelerationStructureNV                   dst,
13858     VkAccelerationStructureNV                   src,
13859     VkBuffer                                    scratch,
13860     VkDeviceSize                                scratchOffset);
13861 
13862 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
13863     VkCommandBuffer                             commandBuffer,
13864     VkAccelerationStructureNV                   dst,
13865     VkAccelerationStructureNV                   src,
13866     VkCopyAccelerationStructureModeKHR          mode);
13867 
13868 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
13869     VkCommandBuffer                             commandBuffer,
13870     VkBuffer                                    raygenShaderBindingTableBuffer,
13871     VkDeviceSize                                raygenShaderBindingOffset,
13872     VkBuffer                                    missShaderBindingTableBuffer,
13873     VkDeviceSize                                missShaderBindingOffset,
13874     VkDeviceSize                                missShaderBindingStride,
13875     VkBuffer                                    hitShaderBindingTableBuffer,
13876     VkDeviceSize                                hitShaderBindingOffset,
13877     VkDeviceSize                                hitShaderBindingStride,
13878     VkBuffer                                    callableShaderBindingTableBuffer,
13879     VkDeviceSize                                callableShaderBindingOffset,
13880     VkDeviceSize                                callableShaderBindingStride,
13881     uint32_t                                    width,
13882     uint32_t                                    height,
13883     uint32_t                                    depth);
13884 
13885 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
13886     VkDevice                                    device,
13887     VkPipelineCache                             pipelineCache,
13888     uint32_t                                    createInfoCount,
13889     const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
13890     const VkAllocationCallbacks*                pAllocator,
13891     VkPipeline*                                 pPipelines);
13892 
13893 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
13894     VkDevice                                    device,
13895     VkPipeline                                  pipeline,
13896     uint32_t                                    firstGroup,
13897     uint32_t                                    groupCount,
13898     size_t                                      dataSize,
13899     void*                                       pData);
13900 
13901 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
13902     VkDevice                                    device,
13903     VkPipeline                                  pipeline,
13904     uint32_t                                    firstGroup,
13905     uint32_t                                    groupCount,
13906     size_t                                      dataSize,
13907     void*                                       pData);
13908 
13909 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
13910     VkDevice                                    device,
13911     VkAccelerationStructureNV                   accelerationStructure,
13912     size_t                                      dataSize,
13913     void*                                       pData);
13914 
13915 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
13916     VkCommandBuffer                             commandBuffer,
13917     uint32_t                                    accelerationStructureCount,
13918     const VkAccelerationStructureNV*            pAccelerationStructures,
13919     VkQueryType                                 queryType,
13920     VkQueryPool                                 queryPool,
13921     uint32_t                                    firstQuery);
13922 
13923 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
13924     VkDevice                                    device,
13925     VkPipeline                                  pipeline,
13926     uint32_t                                    shader);
13927 #endif
13928 
13929 
13930 // VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
13931 #define VK_NV_representative_fragment_test 1
13932 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
13933 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
13934 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
13935     VkStructureType    sType;
13936     void*              pNext;
13937     VkBool32           representativeFragmentTest;
13938 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
13939 
13940 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
13941     VkStructureType    sType;
13942     const void*        pNext;
13943     VkBool32           representativeFragmentTestEnable;
13944 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
13945 
13946 
13947 
13948 // VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
13949 #define VK_EXT_filter_cubic 1
13950 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION  3
13951 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
13952 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
13953     VkStructureType    sType;
13954     void*              pNext;
13955     VkImageViewType    imageViewType;
13956 } VkPhysicalDeviceImageViewImageFormatInfoEXT;
13957 
13958 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
13959     VkStructureType    sType;
13960     void*              pNext;
13961     VkBool32           filterCubic;
13962     VkBool32           filterCubicMinmax;
13963 } VkFilterCubicImageViewImageFormatPropertiesEXT;
13964 
13965 
13966 
13967 // VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
13968 #define VK_QCOM_render_pass_shader_resolve 1
13969 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
13970 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
13971 
13972 
13973 // VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
13974 #define VK_EXT_global_priority 1
13975 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
13976 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
13977 typedef VkQueueGlobalPriorityKHR VkQueueGlobalPriorityEXT;
13978 
13979 typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT;
13980 
13981 
13982 
13983 // VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
13984 #define VK_EXT_external_memory_host 1
13985 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
13986 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
13987 typedef struct VkImportMemoryHostPointerInfoEXT {
13988     VkStructureType                       sType;
13989     const void*                           pNext;
13990     VkExternalMemoryHandleTypeFlagBits    handleType;
13991     void*                                 pHostPointer;
13992 } VkImportMemoryHostPointerInfoEXT;
13993 
13994 typedef struct VkMemoryHostPointerPropertiesEXT {
13995     VkStructureType    sType;
13996     void*              pNext;
13997     uint32_t           memoryTypeBits;
13998 } VkMemoryHostPointerPropertiesEXT;
13999 
14000 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
14001     VkStructureType    sType;
14002     void*              pNext;
14003     VkDeviceSize       minImportedHostPointerAlignment;
14004 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
14005 
14006 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
14007 
14008 #ifndef VK_NO_PROTOTYPES
14009 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
14010     VkDevice                                    device,
14011     VkExternalMemoryHandleTypeFlagBits          handleType,
14012     const void*                                 pHostPointer,
14013     VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties);
14014 #endif
14015 
14016 
14017 // VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
14018 #define VK_AMD_buffer_marker 1
14019 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
14020 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
14021 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
14022 
14023 #ifndef VK_NO_PROTOTYPES
14024 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
14025     VkCommandBuffer                             commandBuffer,
14026     VkPipelineStageFlagBits                     pipelineStage,
14027     VkBuffer                                    dstBuffer,
14028     VkDeviceSize                                dstOffset,
14029     uint32_t                                    marker);
14030 #endif
14031 
14032 
14033 // VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
14034 #define VK_AMD_pipeline_compiler_control 1
14035 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
14036 #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
14037 
14038 typedef enum VkPipelineCompilerControlFlagBitsAMD {
14039     VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
14040 } VkPipelineCompilerControlFlagBitsAMD;
14041 typedef VkFlags VkPipelineCompilerControlFlagsAMD;
14042 typedef struct VkPipelineCompilerControlCreateInfoAMD {
14043     VkStructureType                      sType;
14044     const void*                          pNext;
14045     VkPipelineCompilerControlFlagsAMD    compilerControlFlags;
14046 } VkPipelineCompilerControlCreateInfoAMD;
14047 
14048 
14049 
14050 // VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
14051 #define VK_EXT_calibrated_timestamps 1
14052 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
14053 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
14054 typedef VkTimeDomainKHR VkTimeDomainEXT;
14055 
14056 typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
14057 
14058 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
14059 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
14060 
14061 #ifndef VK_NO_PROTOTYPES
14062 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
14063     VkPhysicalDevice                            physicalDevice,
14064     uint32_t*                                   pTimeDomainCount,
14065     VkTimeDomainKHR*                            pTimeDomains);
14066 
14067 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
14068     VkDevice                                    device,
14069     uint32_t                                    timestampCount,
14070     const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
14071     uint64_t*                                   pTimestamps,
14072     uint64_t*                                   pMaxDeviation);
14073 #endif
14074 
14075 
14076 // VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
14077 #define VK_AMD_shader_core_properties 1
14078 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
14079 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
14080 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
14081     VkStructureType    sType;
14082     void*              pNext;
14083     uint32_t           shaderEngineCount;
14084     uint32_t           shaderArraysPerEngineCount;
14085     uint32_t           computeUnitsPerShaderArray;
14086     uint32_t           simdPerComputeUnit;
14087     uint32_t           wavefrontsPerSimd;
14088     uint32_t           wavefrontSize;
14089     uint32_t           sgprsPerSimd;
14090     uint32_t           minSgprAllocation;
14091     uint32_t           maxSgprAllocation;
14092     uint32_t           sgprAllocationGranularity;
14093     uint32_t           vgprsPerSimd;
14094     uint32_t           minVgprAllocation;
14095     uint32_t           maxVgprAllocation;
14096     uint32_t           vgprAllocationGranularity;
14097 } VkPhysicalDeviceShaderCorePropertiesAMD;
14098 
14099 
14100 
14101 // VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
14102 #define VK_AMD_memory_overallocation_behavior 1
14103 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
14104 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
14105 
14106 typedef enum VkMemoryOverallocationBehaviorAMD {
14107     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
14108     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
14109     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
14110     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
14111 } VkMemoryOverallocationBehaviorAMD;
14112 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
14113     VkStructureType                      sType;
14114     const void*                          pNext;
14115     VkMemoryOverallocationBehaviorAMD    overallocationBehavior;
14116 } VkDeviceMemoryOverallocationCreateInfoAMD;
14117 
14118 
14119 
14120 // VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
14121 #define VK_EXT_vertex_attribute_divisor 1
14122 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
14123 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
14124 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
14125     VkStructureType    sType;
14126     void*              pNext;
14127     uint32_t           maxVertexAttribDivisor;
14128 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
14129 
14130 typedef VkVertexInputBindingDivisorDescriptionKHR VkVertexInputBindingDivisorDescriptionEXT;
14131 
14132 typedef VkPipelineVertexInputDivisorStateCreateInfoKHR VkPipelineVertexInputDivisorStateCreateInfoEXT;
14133 
14134 typedef VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
14135 
14136 
14137 
14138 // VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
14139 #define VK_EXT_pipeline_creation_feedback 1
14140 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
14141 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
14142 typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
14143 
14144 typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
14145 
14146 typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
14147 
14148 typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
14149 
14150 
14151 
14152 // VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
14153 #define VK_NV_shader_subgroup_partitioned 1
14154 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
14155 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
14156 
14157 
14158 // VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
14159 #define VK_NV_compute_shader_derivatives 1
14160 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
14161 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
14162 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
14163     VkStructureType    sType;
14164     void*              pNext;
14165     VkBool32           computeDerivativeGroupQuads;
14166     VkBool32           computeDerivativeGroupLinear;
14167 } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
14168 
14169 
14170 
14171 // VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
14172 #define VK_NV_mesh_shader 1
14173 #define VK_NV_MESH_SHADER_SPEC_VERSION    1
14174 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
14175 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
14176     VkStructureType    sType;
14177     void*              pNext;
14178     VkBool32           taskShader;
14179     VkBool32           meshShader;
14180 } VkPhysicalDeviceMeshShaderFeaturesNV;
14181 
14182 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
14183     VkStructureType    sType;
14184     void*              pNext;
14185     uint32_t           maxDrawMeshTasksCount;
14186     uint32_t           maxTaskWorkGroupInvocations;
14187     uint32_t           maxTaskWorkGroupSize[3];
14188     uint32_t           maxTaskTotalMemorySize;
14189     uint32_t           maxTaskOutputCount;
14190     uint32_t           maxMeshWorkGroupInvocations;
14191     uint32_t           maxMeshWorkGroupSize[3];
14192     uint32_t           maxMeshTotalMemorySize;
14193     uint32_t           maxMeshOutputVertices;
14194     uint32_t           maxMeshOutputPrimitives;
14195     uint32_t           maxMeshMultiviewViewCount;
14196     uint32_t           meshOutputPerVertexGranularity;
14197     uint32_t           meshOutputPerPrimitiveGranularity;
14198 } VkPhysicalDeviceMeshShaderPropertiesNV;
14199 
14200 typedef struct VkDrawMeshTasksIndirectCommandNV {
14201     uint32_t    taskCount;
14202     uint32_t    firstTask;
14203 } VkDrawMeshTasksIndirectCommandNV;
14204 
14205 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
14206 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
14207 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
14208 
14209 #ifndef VK_NO_PROTOTYPES
14210 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
14211     VkCommandBuffer                             commandBuffer,
14212     uint32_t                                    taskCount,
14213     uint32_t                                    firstTask);
14214 
14215 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
14216     VkCommandBuffer                             commandBuffer,
14217     VkBuffer                                    buffer,
14218     VkDeviceSize                                offset,
14219     uint32_t                                    drawCount,
14220     uint32_t                                    stride);
14221 
14222 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
14223     VkCommandBuffer                             commandBuffer,
14224     VkBuffer                                    buffer,
14225     VkDeviceSize                                offset,
14226     VkBuffer                                    countBuffer,
14227     VkDeviceSize                                countBufferOffset,
14228     uint32_t                                    maxDrawCount,
14229     uint32_t                                    stride);
14230 #endif
14231 
14232 
14233 // VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
14234 #define VK_NV_fragment_shader_barycentric 1
14235 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
14236 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
14237 typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
14238 
14239 
14240 
14241 // VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
14242 #define VK_NV_shader_image_footprint 1
14243 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
14244 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
14245 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
14246     VkStructureType    sType;
14247     void*              pNext;
14248     VkBool32           imageFootprint;
14249 } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
14250 
14251 
14252 
14253 // VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
14254 #define VK_NV_scissor_exclusive 1
14255 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
14256 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
14257 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
14258     VkStructureType    sType;
14259     const void*        pNext;
14260     uint32_t           exclusiveScissorCount;
14261     const VkRect2D*    pExclusiveScissors;
14262 } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
14263 
14264 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
14265     VkStructureType    sType;
14266     void*              pNext;
14267     VkBool32           exclusiveScissor;
14268 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
14269 
14270 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
14271 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
14272 
14273 #ifndef VK_NO_PROTOTYPES
14274 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
14275     VkCommandBuffer                             commandBuffer,
14276     uint32_t                                    firstExclusiveScissor,
14277     uint32_t                                    exclusiveScissorCount,
14278     const VkBool32*                             pExclusiveScissorEnables);
14279 
14280 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
14281     VkCommandBuffer                             commandBuffer,
14282     uint32_t                                    firstExclusiveScissor,
14283     uint32_t                                    exclusiveScissorCount,
14284     const VkRect2D*                             pExclusiveScissors);
14285 #endif
14286 
14287 
14288 // VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
14289 #define VK_NV_device_diagnostic_checkpoints 1
14290 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
14291 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
14292 typedef struct VkQueueFamilyCheckpointPropertiesNV {
14293     VkStructureType         sType;
14294     void*                   pNext;
14295     VkPipelineStageFlags    checkpointExecutionStageMask;
14296 } VkQueueFamilyCheckpointPropertiesNV;
14297 
14298 typedef struct VkCheckpointDataNV {
14299     VkStructureType            sType;
14300     void*                      pNext;
14301     VkPipelineStageFlagBits    stage;
14302     void*                      pCheckpointMarker;
14303 } VkCheckpointDataNV;
14304 
14305 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
14306 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
14307 
14308 #ifndef VK_NO_PROTOTYPES
14309 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
14310     VkCommandBuffer                             commandBuffer,
14311     const void*                                 pCheckpointMarker);
14312 
14313 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
14314     VkQueue                                     queue,
14315     uint32_t*                                   pCheckpointDataCount,
14316     VkCheckpointDataNV*                         pCheckpointData);
14317 #endif
14318 
14319 
14320 // VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
14321 #define VK_INTEL_shader_integer_functions2 1
14322 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
14323 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
14324 typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
14325     VkStructureType    sType;
14326     void*              pNext;
14327     VkBool32           shaderIntegerFunctions2;
14328 } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
14329 
14330 
14331 
14332 // VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
14333 #define VK_INTEL_performance_query 1
14334 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
14335 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
14336 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
14337 
14338 typedef enum VkPerformanceConfigurationTypeINTEL {
14339     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
14340     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
14341 } VkPerformanceConfigurationTypeINTEL;
14342 
14343 typedef enum VkQueryPoolSamplingModeINTEL {
14344     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
14345     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
14346 } VkQueryPoolSamplingModeINTEL;
14347 
14348 typedef enum VkPerformanceOverrideTypeINTEL {
14349     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
14350     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
14351     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
14352 } VkPerformanceOverrideTypeINTEL;
14353 
14354 typedef enum VkPerformanceParameterTypeINTEL {
14355     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
14356     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
14357     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
14358 } VkPerformanceParameterTypeINTEL;
14359 
14360 typedef enum VkPerformanceValueTypeINTEL {
14361     VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
14362     VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
14363     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
14364     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
14365     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
14366     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
14367 } VkPerformanceValueTypeINTEL;
14368 typedef union VkPerformanceValueDataINTEL {
14369     uint32_t       value32;
14370     uint64_t       value64;
14371     float          valueFloat;
14372     VkBool32       valueBool;
14373     const char*    valueString;
14374 } VkPerformanceValueDataINTEL;
14375 
14376 typedef struct VkPerformanceValueINTEL {
14377     VkPerformanceValueTypeINTEL    type;
14378     VkPerformanceValueDataINTEL    data;
14379 } VkPerformanceValueINTEL;
14380 
14381 typedef struct VkInitializePerformanceApiInfoINTEL {
14382     VkStructureType    sType;
14383     const void*        pNext;
14384     void*              pUserData;
14385 } VkInitializePerformanceApiInfoINTEL;
14386 
14387 typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
14388     VkStructureType                 sType;
14389     const void*                     pNext;
14390     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
14391 } VkQueryPoolPerformanceQueryCreateInfoINTEL;
14392 
14393 typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
14394 
14395 typedef struct VkPerformanceMarkerInfoINTEL {
14396     VkStructureType    sType;
14397     const void*        pNext;
14398     uint64_t           marker;
14399 } VkPerformanceMarkerInfoINTEL;
14400 
14401 typedef struct VkPerformanceStreamMarkerInfoINTEL {
14402     VkStructureType    sType;
14403     const void*        pNext;
14404     uint32_t           marker;
14405 } VkPerformanceStreamMarkerInfoINTEL;
14406 
14407 typedef struct VkPerformanceOverrideInfoINTEL {
14408     VkStructureType                   sType;
14409     const void*                       pNext;
14410     VkPerformanceOverrideTypeINTEL    type;
14411     VkBool32                          enable;
14412     uint64_t                          parameter;
14413 } VkPerformanceOverrideInfoINTEL;
14414 
14415 typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
14416     VkStructureType                        sType;
14417     const void*                            pNext;
14418     VkPerformanceConfigurationTypeINTEL    type;
14419 } VkPerformanceConfigurationAcquireInfoINTEL;
14420 
14421 typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
14422 typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
14423 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
14424 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
14425 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
14426 typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
14427 typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
14428 typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
14429 typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
14430 
14431 #ifndef VK_NO_PROTOTYPES
14432 VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
14433     VkDevice                                    device,
14434     const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo);
14435 
14436 VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
14437     VkDevice                                    device);
14438 
14439 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
14440     VkCommandBuffer                             commandBuffer,
14441     const VkPerformanceMarkerInfoINTEL*         pMarkerInfo);
14442 
14443 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
14444     VkCommandBuffer                             commandBuffer,
14445     const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo);
14446 
14447 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
14448     VkCommandBuffer                             commandBuffer,
14449     const VkPerformanceOverrideInfoINTEL*       pOverrideInfo);
14450 
14451 VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
14452     VkDevice                                    device,
14453     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
14454     VkPerformanceConfigurationINTEL*            pConfiguration);
14455 
14456 VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
14457     VkDevice                                    device,
14458     VkPerformanceConfigurationINTEL             configuration);
14459 
14460 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
14461     VkQueue                                     queue,
14462     VkPerformanceConfigurationINTEL             configuration);
14463 
14464 VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
14465     VkDevice                                    device,
14466     VkPerformanceParameterTypeINTEL             parameter,
14467     VkPerformanceValueINTEL*                    pValue);
14468 #endif
14469 
14470 
14471 // VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
14472 #define VK_EXT_pci_bus_info 1
14473 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  2
14474 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
14475 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
14476     VkStructureType    sType;
14477     void*              pNext;
14478     uint32_t           pciDomain;
14479     uint32_t           pciBus;
14480     uint32_t           pciDevice;
14481     uint32_t           pciFunction;
14482 } VkPhysicalDevicePCIBusInfoPropertiesEXT;
14483 
14484 
14485 
14486 // VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
14487 #define VK_AMD_display_native_hdr 1
14488 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
14489 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
14490 typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
14491     VkStructureType    sType;
14492     void*              pNext;
14493     VkBool32           localDimmingSupport;
14494 } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
14495 
14496 typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
14497     VkStructureType    sType;
14498     const void*        pNext;
14499     VkBool32           localDimmingEnable;
14500 } VkSwapchainDisplayNativeHdrCreateInfoAMD;
14501 
14502 typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
14503 
14504 #ifndef VK_NO_PROTOTYPES
14505 VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
14506     VkDevice                                    device,
14507     VkSwapchainKHR                              swapChain,
14508     VkBool32                                    localDimmingEnable);
14509 #endif
14510 
14511 
14512 // VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
14513 #define VK_EXT_fragment_density_map 1
14514 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
14515 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
14516 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
14517     VkStructureType    sType;
14518     void*              pNext;
14519     VkBool32           fragmentDensityMap;
14520     VkBool32           fragmentDensityMapDynamic;
14521     VkBool32           fragmentDensityMapNonSubsampledImages;
14522 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
14523 
14524 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
14525     VkStructureType    sType;
14526     void*              pNext;
14527     VkExtent2D         minFragmentDensityTexelSize;
14528     VkExtent2D         maxFragmentDensityTexelSize;
14529     VkBool32           fragmentDensityInvocations;
14530 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
14531 
14532 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
14533     VkStructureType          sType;
14534     const void*              pNext;
14535     VkAttachmentReference    fragmentDensityMapAttachment;
14536 } VkRenderPassFragmentDensityMapCreateInfoEXT;
14537 
14538 
14539 
14540 // VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
14541 #define VK_EXT_scalar_block_layout 1
14542 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
14543 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
14544 typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
14545 
14546 
14547 
14548 // VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
14549 #define VK_GOOGLE_hlsl_functionality1 1
14550 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
14551 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
14552 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
14553 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
14554 
14555 
14556 // VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
14557 #define VK_GOOGLE_decorate_string 1
14558 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
14559 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
14560 
14561 
14562 // VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
14563 #define VK_EXT_subgroup_size_control 1
14564 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
14565 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
14566 typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
14567 
14568 typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
14569 
14570 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
14571 
14572 
14573 
14574 // VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
14575 #define VK_AMD_shader_core_properties2 1
14576 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
14577 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
14578 
14579 typedef enum VkShaderCorePropertiesFlagBitsAMD {
14580     VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
14581 } VkShaderCorePropertiesFlagBitsAMD;
14582 typedef VkFlags VkShaderCorePropertiesFlagsAMD;
14583 typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
14584     VkStructureType                   sType;
14585     void*                             pNext;
14586     VkShaderCorePropertiesFlagsAMD    shaderCoreFeatures;
14587     uint32_t                          activeComputeUnitCount;
14588 } VkPhysicalDeviceShaderCoreProperties2AMD;
14589 
14590 
14591 
14592 // VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
14593 #define VK_AMD_device_coherent_memory 1
14594 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
14595 #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
14596 typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
14597     VkStructureType    sType;
14598     void*              pNext;
14599     VkBool32           deviceCoherentMemory;
14600 } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
14601 
14602 
14603 
14604 // VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
14605 #define VK_EXT_shader_image_atomic_int64 1
14606 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
14607 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
14608 typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
14609     VkStructureType    sType;
14610     void*              pNext;
14611     VkBool32           shaderImageInt64Atomics;
14612     VkBool32           sparseImageInt64Atomics;
14613 } VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
14614 
14615 
14616 
14617 // VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
14618 #define VK_EXT_memory_budget 1
14619 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
14620 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
14621 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
14622     VkStructureType    sType;
14623     void*              pNext;
14624     VkDeviceSize       heapBudget[VK_MAX_MEMORY_HEAPS];
14625     VkDeviceSize       heapUsage[VK_MAX_MEMORY_HEAPS];
14626 } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
14627 
14628 
14629 
14630 // VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
14631 #define VK_EXT_memory_priority 1
14632 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
14633 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
14634 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
14635     VkStructureType    sType;
14636     void*              pNext;
14637     VkBool32           memoryPriority;
14638 } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
14639 
14640 typedef struct VkMemoryPriorityAllocateInfoEXT {
14641     VkStructureType    sType;
14642     const void*        pNext;
14643     float              priority;
14644 } VkMemoryPriorityAllocateInfoEXT;
14645 
14646 
14647 
14648 // VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
14649 #define VK_NV_dedicated_allocation_image_aliasing 1
14650 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
14651 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
14652 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
14653     VkStructureType    sType;
14654     void*              pNext;
14655     VkBool32           dedicatedAllocationImageAliasing;
14656 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
14657 
14658 
14659 
14660 // VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
14661 #define VK_EXT_buffer_device_address 1
14662 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
14663 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
14664 typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
14665     VkStructureType    sType;
14666     void*              pNext;
14667     VkBool32           bufferDeviceAddress;
14668     VkBool32           bufferDeviceAddressCaptureReplay;
14669     VkBool32           bufferDeviceAddressMultiDevice;
14670 } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
14671 
14672 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
14673 
14674 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
14675 
14676 typedef struct VkBufferDeviceAddressCreateInfoEXT {
14677     VkStructureType    sType;
14678     const void*        pNext;
14679     VkDeviceAddress    deviceAddress;
14680 } VkBufferDeviceAddressCreateInfoEXT;
14681 
14682 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
14683 
14684 #ifndef VK_NO_PROTOTYPES
14685 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
14686     VkDevice                                    device,
14687     const VkBufferDeviceAddressInfo*            pInfo);
14688 #endif
14689 
14690 
14691 // VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
14692 #define VK_EXT_tooling_info 1
14693 #define VK_EXT_TOOLING_INFO_SPEC_VERSION  1
14694 #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
14695 typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
14696 
14697 typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
14698 
14699 typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
14700 
14701 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
14702 
14703 #ifndef VK_NO_PROTOTYPES
14704 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
14705     VkPhysicalDevice                            physicalDevice,
14706     uint32_t*                                   pToolCount,
14707     VkPhysicalDeviceToolProperties*             pToolProperties);
14708 #endif
14709 
14710 
14711 // VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
14712 #define VK_EXT_separate_stencil_usage 1
14713 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
14714 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
14715 typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
14716 
14717 
14718 
14719 // VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
14720 #define VK_EXT_validation_features 1
14721 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
14722 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
14723 
14724 typedef enum VkValidationFeatureEnableEXT {
14725     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
14726     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
14727     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
14728     VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
14729     VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
14730     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
14731 } VkValidationFeatureEnableEXT;
14732 
14733 typedef enum VkValidationFeatureDisableEXT {
14734     VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
14735     VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
14736     VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
14737     VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
14738     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
14739     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
14740     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
14741     VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
14742     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
14743 } VkValidationFeatureDisableEXT;
14744 typedef struct VkValidationFeaturesEXT {
14745     VkStructureType                         sType;
14746     const void*                             pNext;
14747     uint32_t                                enabledValidationFeatureCount;
14748     const VkValidationFeatureEnableEXT*     pEnabledValidationFeatures;
14749     uint32_t                                disabledValidationFeatureCount;
14750     const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
14751 } VkValidationFeaturesEXT;
14752 
14753 
14754 
14755 // VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
14756 #define VK_NV_cooperative_matrix 1
14757 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
14758 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
14759 typedef VkComponentTypeKHR VkComponentTypeNV;
14760 
14761 typedef VkScopeKHR VkScopeNV;
14762 
14763 typedef struct VkCooperativeMatrixPropertiesNV {
14764     VkStructureType      sType;
14765     void*                pNext;
14766     uint32_t             MSize;
14767     uint32_t             NSize;
14768     uint32_t             KSize;
14769     VkComponentTypeNV    AType;
14770     VkComponentTypeNV    BType;
14771     VkComponentTypeNV    CType;
14772     VkComponentTypeNV    DType;
14773     VkScopeNV            scope;
14774 } VkCooperativeMatrixPropertiesNV;
14775 
14776 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
14777     VkStructureType    sType;
14778     void*              pNext;
14779     VkBool32           cooperativeMatrix;
14780     VkBool32           cooperativeMatrixRobustBufferAccess;
14781 } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
14782 
14783 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
14784     VkStructureType       sType;
14785     void*                 pNext;
14786     VkShaderStageFlags    cooperativeMatrixSupportedStages;
14787 } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
14788 
14789 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
14790 
14791 #ifndef VK_NO_PROTOTYPES
14792 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
14793     VkPhysicalDevice                            physicalDevice,
14794     uint32_t*                                   pPropertyCount,
14795     VkCooperativeMatrixPropertiesNV*            pProperties);
14796 #endif
14797 
14798 
14799 // VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
14800 #define VK_NV_coverage_reduction_mode 1
14801 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
14802 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
14803 
14804 typedef enum VkCoverageReductionModeNV {
14805     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
14806     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
14807     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
14808 } VkCoverageReductionModeNV;
14809 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
14810 typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
14811     VkStructureType    sType;
14812     void*              pNext;
14813     VkBool32           coverageReductionMode;
14814 } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
14815 
14816 typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
14817     VkStructureType                                  sType;
14818     const void*                                      pNext;
14819     VkPipelineCoverageReductionStateCreateFlagsNV    flags;
14820     VkCoverageReductionModeNV                        coverageReductionMode;
14821 } VkPipelineCoverageReductionStateCreateInfoNV;
14822 
14823 typedef struct VkFramebufferMixedSamplesCombinationNV {
14824     VkStructureType              sType;
14825     void*                        pNext;
14826     VkCoverageReductionModeNV    coverageReductionMode;
14827     VkSampleCountFlagBits        rasterizationSamples;
14828     VkSampleCountFlags           depthStencilSamples;
14829     VkSampleCountFlags           colorSamples;
14830 } VkFramebufferMixedSamplesCombinationNV;
14831 
14832 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
14833 
14834 #ifndef VK_NO_PROTOTYPES
14835 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
14836     VkPhysicalDevice                            physicalDevice,
14837     uint32_t*                                   pCombinationCount,
14838     VkFramebufferMixedSamplesCombinationNV*     pCombinations);
14839 #endif
14840 
14841 
14842 // VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
14843 #define VK_EXT_fragment_shader_interlock 1
14844 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
14845 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
14846 typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
14847     VkStructureType    sType;
14848     void*              pNext;
14849     VkBool32           fragmentShaderSampleInterlock;
14850     VkBool32           fragmentShaderPixelInterlock;
14851     VkBool32           fragmentShaderShadingRateInterlock;
14852 } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
14853 
14854 
14855 
14856 // VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
14857 #define VK_EXT_ycbcr_image_arrays 1
14858 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
14859 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
14860 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
14861     VkStructureType    sType;
14862     void*              pNext;
14863     VkBool32           ycbcrImageArrays;
14864 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
14865 
14866 
14867 
14868 // VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
14869 #define VK_EXT_provoking_vertex 1
14870 #define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
14871 #define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
14872 
14873 typedef enum VkProvokingVertexModeEXT {
14874     VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
14875     VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
14876     VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
14877 } VkProvokingVertexModeEXT;
14878 typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
14879     VkStructureType    sType;
14880     void*              pNext;
14881     VkBool32           provokingVertexLast;
14882     VkBool32           transformFeedbackPreservesProvokingVertex;
14883 } VkPhysicalDeviceProvokingVertexFeaturesEXT;
14884 
14885 typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
14886     VkStructureType    sType;
14887     void*              pNext;
14888     VkBool32           provokingVertexModePerPipeline;
14889     VkBool32           transformFeedbackPreservesTriangleFanProvokingVertex;
14890 } VkPhysicalDeviceProvokingVertexPropertiesEXT;
14891 
14892 typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
14893     VkStructureType             sType;
14894     const void*                 pNext;
14895     VkProvokingVertexModeEXT    provokingVertexMode;
14896 } VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
14897 
14898 
14899 
14900 // VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
14901 #define VK_EXT_headless_surface 1
14902 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
14903 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
14904 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
14905 typedef struct VkHeadlessSurfaceCreateInfoEXT {
14906     VkStructureType                    sType;
14907     const void*                        pNext;
14908     VkHeadlessSurfaceCreateFlagsEXT    flags;
14909 } VkHeadlessSurfaceCreateInfoEXT;
14910 
14911 typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
14912 
14913 #ifndef VK_NO_PROTOTYPES
14914 VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
14915     VkInstance                                  instance,
14916     const VkHeadlessSurfaceCreateInfoEXT*       pCreateInfo,
14917     const VkAllocationCallbacks*                pAllocator,
14918     VkSurfaceKHR*                               pSurface);
14919 #endif
14920 
14921 
14922 // VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
14923 #define VK_EXT_line_rasterization 1
14924 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
14925 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
14926 typedef VkLineRasterizationModeKHR VkLineRasterizationModeEXT;
14927 
14928 typedef VkPhysicalDeviceLineRasterizationFeaturesKHR VkPhysicalDeviceLineRasterizationFeaturesEXT;
14929 
14930 typedef VkPhysicalDeviceLineRasterizationPropertiesKHR VkPhysicalDeviceLineRasterizationPropertiesEXT;
14931 
14932 typedef VkPipelineRasterizationLineStateCreateInfoKHR VkPipelineRasterizationLineStateCreateInfoEXT;
14933 
14934 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
14935 
14936 #ifndef VK_NO_PROTOTYPES
14937 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
14938     VkCommandBuffer                             commandBuffer,
14939     uint32_t                                    lineStippleFactor,
14940     uint16_t                                    lineStipplePattern);
14941 #endif
14942 
14943 
14944 // VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
14945 #define VK_EXT_shader_atomic_float 1
14946 #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
14947 #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
14948 typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
14949     VkStructureType    sType;
14950     void*              pNext;
14951     VkBool32           shaderBufferFloat32Atomics;
14952     VkBool32           shaderBufferFloat32AtomicAdd;
14953     VkBool32           shaderBufferFloat64Atomics;
14954     VkBool32           shaderBufferFloat64AtomicAdd;
14955     VkBool32           shaderSharedFloat32Atomics;
14956     VkBool32           shaderSharedFloat32AtomicAdd;
14957     VkBool32           shaderSharedFloat64Atomics;
14958     VkBool32           shaderSharedFloat64AtomicAdd;
14959     VkBool32           shaderImageFloat32Atomics;
14960     VkBool32           shaderImageFloat32AtomicAdd;
14961     VkBool32           sparseImageFloat32Atomics;
14962     VkBool32           sparseImageFloat32AtomicAdd;
14963 } VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
14964 
14965 
14966 
14967 // VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
14968 #define VK_EXT_host_query_reset 1
14969 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
14970 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
14971 typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
14972 
14973 typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
14974 
14975 #ifndef VK_NO_PROTOTYPES
14976 VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
14977     VkDevice                                    device,
14978     VkQueryPool                                 queryPool,
14979     uint32_t                                    firstQuery,
14980     uint32_t                                    queryCount);
14981 #endif
14982 
14983 
14984 // VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
14985 #define VK_EXT_index_type_uint8 1
14986 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
14987 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
14988 typedef VkPhysicalDeviceIndexTypeUint8FeaturesKHR VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
14989 
14990 
14991 
14992 // VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
14993 #define VK_EXT_extended_dynamic_state 1
14994 #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
14995 #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
14996 typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
14997     VkStructureType    sType;
14998     void*              pNext;
14999     VkBool32           extendedDynamicState;
15000 } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
15001 
15002 typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
15003 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
15004 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
15005 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
15006 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
15007 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);
15008 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
15009 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
15010 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
15011 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
15012 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
15013 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
15014 
15015 #ifndef VK_NO_PROTOTYPES
15016 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
15017     VkCommandBuffer                             commandBuffer,
15018     VkCullModeFlags                             cullMode);
15019 
15020 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
15021     VkCommandBuffer                             commandBuffer,
15022     VkFrontFace                                 frontFace);
15023 
15024 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
15025     VkCommandBuffer                             commandBuffer,
15026     VkPrimitiveTopology                         primitiveTopology);
15027 
15028 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
15029     VkCommandBuffer                             commandBuffer,
15030     uint32_t                                    viewportCount,
15031     const VkViewport*                           pViewports);
15032 
15033 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
15034     VkCommandBuffer                             commandBuffer,
15035     uint32_t                                    scissorCount,
15036     const VkRect2D*                             pScissors);
15037 
15038 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
15039     VkCommandBuffer                             commandBuffer,
15040     uint32_t                                    firstBinding,
15041     uint32_t                                    bindingCount,
15042     const VkBuffer*                             pBuffers,
15043     const VkDeviceSize*                         pOffsets,
15044     const VkDeviceSize*                         pSizes,
15045     const VkDeviceSize*                         pStrides);
15046 
15047 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
15048     VkCommandBuffer                             commandBuffer,
15049     VkBool32                                    depthTestEnable);
15050 
15051 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
15052     VkCommandBuffer                             commandBuffer,
15053     VkBool32                                    depthWriteEnable);
15054 
15055 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
15056     VkCommandBuffer                             commandBuffer,
15057     VkCompareOp                                 depthCompareOp);
15058 
15059 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
15060     VkCommandBuffer                             commandBuffer,
15061     VkBool32                                    depthBoundsTestEnable);
15062 
15063 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
15064     VkCommandBuffer                             commandBuffer,
15065     VkBool32                                    stencilTestEnable);
15066 
15067 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
15068     VkCommandBuffer                             commandBuffer,
15069     VkStencilFaceFlags                          faceMask,
15070     VkStencilOp                                 failOp,
15071     VkStencilOp                                 passOp,
15072     VkStencilOp                                 depthFailOp,
15073     VkCompareOp                                 compareOp);
15074 #endif
15075 
15076 
15077 // VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
15078 #define VK_EXT_host_image_copy 1
15079 #define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
15080 #define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
15081 
15082 typedef enum VkHostImageCopyFlagBitsEXT {
15083     VK_HOST_IMAGE_COPY_MEMCPY_EXT = 0x00000001,
15084     VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15085 } VkHostImageCopyFlagBitsEXT;
15086 typedef VkFlags VkHostImageCopyFlagsEXT;
15087 typedef struct VkPhysicalDeviceHostImageCopyFeaturesEXT {
15088     VkStructureType    sType;
15089     void*              pNext;
15090     VkBool32           hostImageCopy;
15091 } VkPhysicalDeviceHostImageCopyFeaturesEXT;
15092 
15093 typedef struct VkPhysicalDeviceHostImageCopyPropertiesEXT {
15094     VkStructureType    sType;
15095     void*              pNext;
15096     uint32_t           copySrcLayoutCount;
15097     VkImageLayout*     pCopySrcLayouts;
15098     uint32_t           copyDstLayoutCount;
15099     VkImageLayout*     pCopyDstLayouts;
15100     uint8_t            optimalTilingLayoutUUID[VK_UUID_SIZE];
15101     VkBool32           identicalMemoryTypeRequirements;
15102 } VkPhysicalDeviceHostImageCopyPropertiesEXT;
15103 
15104 typedef struct VkMemoryToImageCopyEXT {
15105     VkStructureType             sType;
15106     const void*                 pNext;
15107     const void*                 pHostPointer;
15108     uint32_t                    memoryRowLength;
15109     uint32_t                    memoryImageHeight;
15110     VkImageSubresourceLayers    imageSubresource;
15111     VkOffset3D                  imageOffset;
15112     VkExtent3D                  imageExtent;
15113 } VkMemoryToImageCopyEXT;
15114 
15115 typedef struct VkImageToMemoryCopyEXT {
15116     VkStructureType             sType;
15117     const void*                 pNext;
15118     void*                       pHostPointer;
15119     uint32_t                    memoryRowLength;
15120     uint32_t                    memoryImageHeight;
15121     VkImageSubresourceLayers    imageSubresource;
15122     VkOffset3D                  imageOffset;
15123     VkExtent3D                  imageExtent;
15124 } VkImageToMemoryCopyEXT;
15125 
15126 typedef struct VkCopyMemoryToImageInfoEXT {
15127     VkStructureType                  sType;
15128     const void*                      pNext;
15129     VkHostImageCopyFlagsEXT          flags;
15130     VkImage                          dstImage;
15131     VkImageLayout                    dstImageLayout;
15132     uint32_t                         regionCount;
15133     const VkMemoryToImageCopyEXT*    pRegions;
15134 } VkCopyMemoryToImageInfoEXT;
15135 
15136 typedef struct VkCopyImageToMemoryInfoEXT {
15137     VkStructureType                  sType;
15138     const void*                      pNext;
15139     VkHostImageCopyFlagsEXT          flags;
15140     VkImage                          srcImage;
15141     VkImageLayout                    srcImageLayout;
15142     uint32_t                         regionCount;
15143     const VkImageToMemoryCopyEXT*    pRegions;
15144 } VkCopyImageToMemoryInfoEXT;
15145 
15146 typedef struct VkCopyImageToImageInfoEXT {
15147     VkStructureType            sType;
15148     const void*                pNext;
15149     VkHostImageCopyFlagsEXT    flags;
15150     VkImage                    srcImage;
15151     VkImageLayout              srcImageLayout;
15152     VkImage                    dstImage;
15153     VkImageLayout              dstImageLayout;
15154     uint32_t                   regionCount;
15155     const VkImageCopy2*        pRegions;
15156 } VkCopyImageToImageInfoEXT;
15157 
15158 typedef struct VkHostImageLayoutTransitionInfoEXT {
15159     VkStructureType            sType;
15160     const void*                pNext;
15161     VkImage                    image;
15162     VkImageLayout              oldLayout;
15163     VkImageLayout              newLayout;
15164     VkImageSubresourceRange    subresourceRange;
15165 } VkHostImageLayoutTransitionInfoEXT;
15166 
15167 typedef struct VkSubresourceHostMemcpySizeEXT {
15168     VkStructureType    sType;
15169     void*              pNext;
15170     VkDeviceSize       size;
15171 } VkSubresourceHostMemcpySizeEXT;
15172 
15173 typedef struct VkHostImageCopyDevicePerformanceQueryEXT {
15174     VkStructureType    sType;
15175     void*              pNext;
15176     VkBool32           optimalDeviceAccess;
15177     VkBool32           identicalMemoryLayout;
15178 } VkHostImageCopyDevicePerformanceQueryEXT;
15179 
15180 typedef VkSubresourceLayout2KHR VkSubresourceLayout2EXT;
15181 
15182 typedef VkImageSubresource2KHR VkImageSubresource2EXT;
15183 
15184 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo);
15185 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo);
15186 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo);
15187 typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT* pTransitions);
15188 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout);
15189 
15190 #ifndef VK_NO_PROTOTYPES
15191 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
15192     VkDevice                                    device,
15193     const VkCopyMemoryToImageInfoEXT*           pCopyMemoryToImageInfo);
15194 
15195 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
15196     VkDevice                                    device,
15197     const VkCopyImageToMemoryInfoEXT*           pCopyImageToMemoryInfo);
15198 
15199 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
15200     VkDevice                                    device,
15201     const VkCopyImageToImageInfoEXT*            pCopyImageToImageInfo);
15202 
15203 VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
15204     VkDevice                                    device,
15205     uint32_t                                    transitionCount,
15206     const VkHostImageLayoutTransitionInfoEXT*   pTransitions);
15207 
15208 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
15209     VkDevice                                    device,
15210     VkImage                                     image,
15211     const VkImageSubresource2KHR*               pSubresource,
15212     VkSubresourceLayout2KHR*                    pLayout);
15213 #endif
15214 
15215 
15216 // VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
15217 #define VK_EXT_map_memory_placed 1
15218 #define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
15219 #define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
15220 typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
15221     VkStructureType    sType;
15222     void*              pNext;
15223     VkBool32           memoryMapPlaced;
15224     VkBool32           memoryMapRangePlaced;
15225     VkBool32           memoryUnmapReserve;
15226 } VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
15227 
15228 typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
15229     VkStructureType    sType;
15230     void*              pNext;
15231     VkDeviceSize       minPlacedMemoryMapAlignment;
15232 } VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
15233 
15234 typedef struct VkMemoryMapPlacedInfoEXT {
15235     VkStructureType    sType;
15236     const void*        pNext;
15237     void*              pPlacedAddress;
15238 } VkMemoryMapPlacedInfoEXT;
15239 
15240 
15241 
15242 // VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
15243 #define VK_EXT_shader_atomic_float2 1
15244 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
15245 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
15246 typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
15247     VkStructureType    sType;
15248     void*              pNext;
15249     VkBool32           shaderBufferFloat16Atomics;
15250     VkBool32           shaderBufferFloat16AtomicAdd;
15251     VkBool32           shaderBufferFloat16AtomicMinMax;
15252     VkBool32           shaderBufferFloat32AtomicMinMax;
15253     VkBool32           shaderBufferFloat64AtomicMinMax;
15254     VkBool32           shaderSharedFloat16Atomics;
15255     VkBool32           shaderSharedFloat16AtomicAdd;
15256     VkBool32           shaderSharedFloat16AtomicMinMax;
15257     VkBool32           shaderSharedFloat32AtomicMinMax;
15258     VkBool32           shaderSharedFloat64AtomicMinMax;
15259     VkBool32           shaderImageFloat32AtomicMinMax;
15260     VkBool32           sparseImageFloat32AtomicMinMax;
15261 } VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
15262 
15263 
15264 
15265 // VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
15266 #define VK_EXT_surface_maintenance1 1
15267 #define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
15268 #define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
15269 
15270 typedef enum VkPresentScalingFlagBitsEXT {
15271     VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 0x00000001,
15272     VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 0x00000002,
15273     VK_PRESENT_SCALING_STRETCH_BIT_EXT = 0x00000004,
15274     VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15275 } VkPresentScalingFlagBitsEXT;
15276 typedef VkFlags VkPresentScalingFlagsEXT;
15277 
15278 typedef enum VkPresentGravityFlagBitsEXT {
15279     VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0x00000001,
15280     VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0x00000002,
15281     VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0x00000004,
15282     VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15283 } VkPresentGravityFlagBitsEXT;
15284 typedef VkFlags VkPresentGravityFlagsEXT;
15285 typedef struct VkSurfacePresentModeEXT {
15286     VkStructureType     sType;
15287     void*               pNext;
15288     VkPresentModeKHR    presentMode;
15289 } VkSurfacePresentModeEXT;
15290 
15291 typedef struct VkSurfacePresentScalingCapabilitiesEXT {
15292     VkStructureType             sType;
15293     void*                       pNext;
15294     VkPresentScalingFlagsEXT    supportedPresentScaling;
15295     VkPresentGravityFlagsEXT    supportedPresentGravityX;
15296     VkPresentGravityFlagsEXT    supportedPresentGravityY;
15297     VkExtent2D                  minScaledImageExtent;
15298     VkExtent2D                  maxScaledImageExtent;
15299 } VkSurfacePresentScalingCapabilitiesEXT;
15300 
15301 typedef struct VkSurfacePresentModeCompatibilityEXT {
15302     VkStructureType      sType;
15303     void*                pNext;
15304     uint32_t             presentModeCount;
15305     VkPresentModeKHR*    pPresentModes;
15306 } VkSurfacePresentModeCompatibilityEXT;
15307 
15308 
15309 
15310 // VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
15311 #define VK_EXT_swapchain_maintenance1 1
15312 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
15313 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
15314 typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT {
15315     VkStructureType    sType;
15316     void*              pNext;
15317     VkBool32           swapchainMaintenance1;
15318 } VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
15319 
15320 typedef struct VkSwapchainPresentFenceInfoEXT {
15321     VkStructureType    sType;
15322     const void*        pNext;
15323     uint32_t           swapchainCount;
15324     const VkFence*     pFences;
15325 } VkSwapchainPresentFenceInfoEXT;
15326 
15327 typedef struct VkSwapchainPresentModesCreateInfoEXT {
15328     VkStructureType            sType;
15329     const void*                pNext;
15330     uint32_t                   presentModeCount;
15331     const VkPresentModeKHR*    pPresentModes;
15332 } VkSwapchainPresentModesCreateInfoEXT;
15333 
15334 typedef struct VkSwapchainPresentModeInfoEXT {
15335     VkStructureType            sType;
15336     const void*                pNext;
15337     uint32_t                   swapchainCount;
15338     const VkPresentModeKHR*    pPresentModes;
15339 } VkSwapchainPresentModeInfoEXT;
15340 
15341 typedef struct VkSwapchainPresentScalingCreateInfoEXT {
15342     VkStructureType             sType;
15343     const void*                 pNext;
15344     VkPresentScalingFlagsEXT    scalingBehavior;
15345     VkPresentGravityFlagsEXT    presentGravityX;
15346     VkPresentGravityFlagsEXT    presentGravityY;
15347 } VkSwapchainPresentScalingCreateInfoEXT;
15348 
15349 typedef struct VkReleaseSwapchainImagesInfoEXT {
15350     VkStructureType    sType;
15351     const void*        pNext;
15352     VkSwapchainKHR     swapchain;
15353     uint32_t           imageIndexCount;
15354     const uint32_t*    pImageIndices;
15355 } VkReleaseSwapchainImagesInfoEXT;
15356 
15357 typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo);
15358 
15359 #ifndef VK_NO_PROTOTYPES
15360 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
15361     VkDevice                                    device,
15362     const VkReleaseSwapchainImagesInfoEXT*      pReleaseInfo);
15363 #endif
15364 
15365 
15366 // VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
15367 #define VK_EXT_shader_demote_to_helper_invocation 1
15368 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
15369 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
15370 typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
15371 
15372 
15373 
15374 // VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
15375 #define VK_NV_device_generated_commands 1
15376 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
15377 #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
15378 #define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
15379 
15380 typedef enum VkIndirectCommandsTokenTypeNV {
15381     VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
15382     VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
15383     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
15384     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
15385     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
15386     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
15387     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
15388     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
15389     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
15390     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
15391     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
15392     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
15393 } VkIndirectCommandsTokenTypeNV;
15394 
15395 typedef enum VkIndirectStateFlagBitsNV {
15396     VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
15397     VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15398 } VkIndirectStateFlagBitsNV;
15399 typedef VkFlags VkIndirectStateFlagsNV;
15400 
15401 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
15402     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
15403     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
15404     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
15405     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15406 } VkIndirectCommandsLayoutUsageFlagBitsNV;
15407 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
15408 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
15409     VkStructureType    sType;
15410     void*              pNext;
15411     uint32_t           maxGraphicsShaderGroupCount;
15412     uint32_t           maxIndirectSequenceCount;
15413     uint32_t           maxIndirectCommandsTokenCount;
15414     uint32_t           maxIndirectCommandsStreamCount;
15415     uint32_t           maxIndirectCommandsTokenOffset;
15416     uint32_t           maxIndirectCommandsStreamStride;
15417     uint32_t           minSequencesCountBufferOffsetAlignment;
15418     uint32_t           minSequencesIndexBufferOffsetAlignment;
15419     uint32_t           minIndirectCommandsBufferOffsetAlignment;
15420 } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
15421 
15422 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
15423     VkStructureType    sType;
15424     void*              pNext;
15425     VkBool32           deviceGeneratedCommands;
15426 } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
15427 
15428 typedef struct VkGraphicsShaderGroupCreateInfoNV {
15429     VkStructureType                                 sType;
15430     const void*                                     pNext;
15431     uint32_t                                        stageCount;
15432     const VkPipelineShaderStageCreateInfo*          pStages;
15433     const VkPipelineVertexInputStateCreateInfo*     pVertexInputState;
15434     const VkPipelineTessellationStateCreateInfo*    pTessellationState;
15435 } VkGraphicsShaderGroupCreateInfoNV;
15436 
15437 typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
15438     VkStructureType                             sType;
15439     const void*                                 pNext;
15440     uint32_t                                    groupCount;
15441     const VkGraphicsShaderGroupCreateInfoNV*    pGroups;
15442     uint32_t                                    pipelineCount;
15443     const VkPipeline*                           pPipelines;
15444 } VkGraphicsPipelineShaderGroupsCreateInfoNV;
15445 
15446 typedef struct VkBindShaderGroupIndirectCommandNV {
15447     uint32_t    groupIndex;
15448 } VkBindShaderGroupIndirectCommandNV;
15449 
15450 typedef struct VkBindIndexBufferIndirectCommandNV {
15451     VkDeviceAddress    bufferAddress;
15452     uint32_t           size;
15453     VkIndexType        indexType;
15454 } VkBindIndexBufferIndirectCommandNV;
15455 
15456 typedef struct VkBindVertexBufferIndirectCommandNV {
15457     VkDeviceAddress    bufferAddress;
15458     uint32_t           size;
15459     uint32_t           stride;
15460 } VkBindVertexBufferIndirectCommandNV;
15461 
15462 typedef struct VkSetStateFlagsIndirectCommandNV {
15463     uint32_t    data;
15464 } VkSetStateFlagsIndirectCommandNV;
15465 
15466 typedef struct VkIndirectCommandsStreamNV {
15467     VkBuffer        buffer;
15468     VkDeviceSize    offset;
15469 } VkIndirectCommandsStreamNV;
15470 
15471 typedef struct VkIndirectCommandsLayoutTokenNV {
15472     VkStructureType                  sType;
15473     const void*                      pNext;
15474     VkIndirectCommandsTokenTypeNV    tokenType;
15475     uint32_t                         stream;
15476     uint32_t                         offset;
15477     uint32_t                         vertexBindingUnit;
15478     VkBool32                         vertexDynamicStride;
15479     VkPipelineLayout                 pushconstantPipelineLayout;
15480     VkShaderStageFlags               pushconstantShaderStageFlags;
15481     uint32_t                         pushconstantOffset;
15482     uint32_t                         pushconstantSize;
15483     VkIndirectStateFlagsNV           indirectStateFlags;
15484     uint32_t                         indexTypeCount;
15485     const VkIndexType*               pIndexTypes;
15486     const uint32_t*                  pIndexTypeValues;
15487 } VkIndirectCommandsLayoutTokenNV;
15488 
15489 typedef struct VkIndirectCommandsLayoutCreateInfoNV {
15490     VkStructureType                           sType;
15491     const void*                               pNext;
15492     VkIndirectCommandsLayoutUsageFlagsNV      flags;
15493     VkPipelineBindPoint                       pipelineBindPoint;
15494     uint32_t                                  tokenCount;
15495     const VkIndirectCommandsLayoutTokenNV*    pTokens;
15496     uint32_t                                  streamCount;
15497     const uint32_t*                           pStreamStrides;
15498 } VkIndirectCommandsLayoutCreateInfoNV;
15499 
15500 typedef struct VkGeneratedCommandsInfoNV {
15501     VkStructureType                      sType;
15502     const void*                          pNext;
15503     VkPipelineBindPoint                  pipelineBindPoint;
15504     VkPipeline                           pipeline;
15505     VkIndirectCommandsLayoutNV           indirectCommandsLayout;
15506     uint32_t                             streamCount;
15507     const VkIndirectCommandsStreamNV*    pStreams;
15508     uint32_t                             sequencesCount;
15509     VkBuffer                             preprocessBuffer;
15510     VkDeviceSize                         preprocessOffset;
15511     VkDeviceSize                         preprocessSize;
15512     VkBuffer                             sequencesCountBuffer;
15513     VkDeviceSize                         sequencesCountOffset;
15514     VkBuffer                             sequencesIndexBuffer;
15515     VkDeviceSize                         sequencesIndexOffset;
15516 } VkGeneratedCommandsInfoNV;
15517 
15518 typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
15519     VkStructureType               sType;
15520     const void*                   pNext;
15521     VkPipelineBindPoint           pipelineBindPoint;
15522     VkPipeline                    pipeline;
15523     VkIndirectCommandsLayoutNV    indirectCommandsLayout;
15524     uint32_t                      maxSequencesCount;
15525 } VkGeneratedCommandsMemoryRequirementsInfoNV;
15526 
15527 typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
15528 typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
15529 typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
15530 typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
15531 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
15532 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
15533 
15534 #ifndef VK_NO_PROTOTYPES
15535 VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
15536     VkDevice                                    device,
15537     const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
15538     VkMemoryRequirements2*                      pMemoryRequirements);
15539 
15540 VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
15541     VkCommandBuffer                             commandBuffer,
15542     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
15543 
15544 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
15545     VkCommandBuffer                             commandBuffer,
15546     VkBool32                                    isPreprocessed,
15547     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
15548 
15549 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
15550     VkCommandBuffer                             commandBuffer,
15551     VkPipelineBindPoint                         pipelineBindPoint,
15552     VkPipeline                                  pipeline,
15553     uint32_t                                    groupIndex);
15554 
15555 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
15556     VkDevice                                    device,
15557     const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
15558     const VkAllocationCallbacks*                pAllocator,
15559     VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout);
15560 
15561 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
15562     VkDevice                                    device,
15563     VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
15564     const VkAllocationCallbacks*                pAllocator);
15565 #endif
15566 
15567 
15568 // VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
15569 #define VK_NV_inherited_viewport_scissor 1
15570 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
15571 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
15572 typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
15573     VkStructureType    sType;
15574     void*              pNext;
15575     VkBool32           inheritedViewportScissor2D;
15576 } VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
15577 
15578 typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
15579     VkStructureType      sType;
15580     const void*          pNext;
15581     VkBool32             viewportScissor2D;
15582     uint32_t             viewportDepthCount;
15583     const VkViewport*    pViewportDepths;
15584 } VkCommandBufferInheritanceViewportScissorInfoNV;
15585 
15586 
15587 
15588 // VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
15589 #define VK_EXT_texel_buffer_alignment 1
15590 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
15591 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
15592 typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
15593     VkStructureType    sType;
15594     void*              pNext;
15595     VkBool32           texelBufferAlignment;
15596 } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
15597 
15598 typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
15599 
15600 
15601 
15602 // VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
15603 #define VK_QCOM_render_pass_transform 1
15604 #define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 4
15605 #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
15606 typedef struct VkRenderPassTransformBeginInfoQCOM {
15607     VkStructureType                  sType;
15608     void*                            pNext;
15609     VkSurfaceTransformFlagBitsKHR    transform;
15610 } VkRenderPassTransformBeginInfoQCOM;
15611 
15612 typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
15613     VkStructureType                  sType;
15614     void*                            pNext;
15615     VkSurfaceTransformFlagBitsKHR    transform;
15616     VkRect2D                         renderArea;
15617 } VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
15618 
15619 
15620 
15621 // VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
15622 #define VK_EXT_depth_bias_control 1
15623 #define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
15624 #define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
15625 
15626 typedef enum VkDepthBiasRepresentationEXT {
15627     VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
15628     VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
15629     VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
15630     VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
15631 } VkDepthBiasRepresentationEXT;
15632 typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
15633     VkStructureType    sType;
15634     void*              pNext;
15635     VkBool32           depthBiasControl;
15636     VkBool32           leastRepresentableValueForceUnormRepresentation;
15637     VkBool32           floatRepresentation;
15638     VkBool32           depthBiasExact;
15639 } VkPhysicalDeviceDepthBiasControlFeaturesEXT;
15640 
15641 typedef struct VkDepthBiasInfoEXT {
15642     VkStructureType    sType;
15643     const void*        pNext;
15644     float              depthBiasConstantFactor;
15645     float              depthBiasClamp;
15646     float              depthBiasSlopeFactor;
15647 } VkDepthBiasInfoEXT;
15648 
15649 typedef struct VkDepthBiasRepresentationInfoEXT {
15650     VkStructureType                 sType;
15651     const void*                     pNext;
15652     VkDepthBiasRepresentationEXT    depthBiasRepresentation;
15653     VkBool32                        depthBiasExact;
15654 } VkDepthBiasRepresentationInfoEXT;
15655 
15656 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT*         pDepthBiasInfo);
15657 
15658 #ifndef VK_NO_PROTOTYPES
15659 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
15660     VkCommandBuffer                             commandBuffer,
15661     const VkDepthBiasInfoEXT*                   pDepthBiasInfo);
15662 #endif
15663 
15664 
15665 // VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
15666 #define VK_EXT_device_memory_report 1
15667 #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
15668 #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
15669 
15670 typedef enum VkDeviceMemoryReportEventTypeEXT {
15671     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
15672     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
15673     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
15674     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
15675     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
15676     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
15677 } VkDeviceMemoryReportEventTypeEXT;
15678 typedef VkFlags VkDeviceMemoryReportFlagsEXT;
15679 typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
15680     VkStructureType    sType;
15681     void*              pNext;
15682     VkBool32           deviceMemoryReport;
15683 } VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
15684 
15685 typedef struct VkDeviceMemoryReportCallbackDataEXT {
15686     VkStructureType                     sType;
15687     void*                               pNext;
15688     VkDeviceMemoryReportFlagsEXT        flags;
15689     VkDeviceMemoryReportEventTypeEXT    type;
15690     uint64_t                            memoryObjectId;
15691     VkDeviceSize                        size;
15692     VkObjectType                        objectType;
15693     uint64_t                            objectHandle;
15694     uint32_t                            heapIndex;
15695 } VkDeviceMemoryReportCallbackDataEXT;
15696 
15697 typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
15698     const VkDeviceMemoryReportCallbackDataEXT*  pCallbackData,
15699     void*                                       pUserData);
15700 
15701 typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
15702     VkStructureType                        sType;
15703     const void*                            pNext;
15704     VkDeviceMemoryReportFlagsEXT           flags;
15705     PFN_vkDeviceMemoryReportCallbackEXT    pfnUserCallback;
15706     void*                                  pUserData;
15707 } VkDeviceDeviceMemoryReportCreateInfoEXT;
15708 
15709 
15710 
15711 // VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
15712 #define VK_EXT_acquire_drm_display 1
15713 #define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
15714 #define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
15715 typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
15716 typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
15717 
15718 #ifndef VK_NO_PROTOTYPES
15719 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
15720     VkPhysicalDevice                            physicalDevice,
15721     int32_t                                     drmFd,
15722     VkDisplayKHR                                display);
15723 
15724 VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
15725     VkPhysicalDevice                            physicalDevice,
15726     int32_t                                     drmFd,
15727     uint32_t                                    connectorId,
15728     VkDisplayKHR*                               display);
15729 #endif
15730 
15731 
15732 // VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
15733 #define VK_EXT_robustness2 1
15734 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION  1
15735 #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
15736 typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
15737     VkStructureType    sType;
15738     void*              pNext;
15739     VkBool32           robustBufferAccess2;
15740     VkBool32           robustImageAccess2;
15741     VkBool32           nullDescriptor;
15742 } VkPhysicalDeviceRobustness2FeaturesEXT;
15743 
15744 typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
15745     VkStructureType    sType;
15746     void*              pNext;
15747     VkDeviceSize       robustStorageBufferAccessSizeAlignment;
15748     VkDeviceSize       robustUniformBufferAccessSizeAlignment;
15749 } VkPhysicalDeviceRobustness2PropertiesEXT;
15750 
15751 
15752 
15753 // VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
15754 #define VK_EXT_custom_border_color 1
15755 #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
15756 #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
15757 typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
15758     VkStructureType      sType;
15759     const void*          pNext;
15760     VkClearColorValue    customBorderColor;
15761     VkFormat             format;
15762 } VkSamplerCustomBorderColorCreateInfoEXT;
15763 
15764 typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
15765     VkStructureType    sType;
15766     void*              pNext;
15767     uint32_t           maxCustomBorderColorSamplers;
15768 } VkPhysicalDeviceCustomBorderColorPropertiesEXT;
15769 
15770 typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
15771     VkStructureType    sType;
15772     void*              pNext;
15773     VkBool32           customBorderColors;
15774     VkBool32           customBorderColorWithoutFormat;
15775 } VkPhysicalDeviceCustomBorderColorFeaturesEXT;
15776 
15777 
15778 
15779 // VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
15780 #define VK_GOOGLE_user_type 1
15781 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
15782 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
15783 
15784 
15785 // VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
15786 #define VK_NV_present_barrier 1
15787 #define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
15788 #define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
15789 typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
15790     VkStructureType    sType;
15791     void*              pNext;
15792     VkBool32           presentBarrier;
15793 } VkPhysicalDevicePresentBarrierFeaturesNV;
15794 
15795 typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
15796     VkStructureType    sType;
15797     void*              pNext;
15798     VkBool32           presentBarrierSupported;
15799 } VkSurfaceCapabilitiesPresentBarrierNV;
15800 
15801 typedef struct VkSwapchainPresentBarrierCreateInfoNV {
15802     VkStructureType    sType;
15803     void*              pNext;
15804     VkBool32           presentBarrierEnable;
15805 } VkSwapchainPresentBarrierCreateInfoNV;
15806 
15807 
15808 
15809 // VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
15810 #define VK_EXT_private_data 1
15811 typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
15812 
15813 #define VK_EXT_PRIVATE_DATA_SPEC_VERSION  1
15814 #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
15815 typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
15816 
15817 typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
15818 
15819 typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
15820 
15821 typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
15822 
15823 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
15824 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
15825 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
15826 typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
15827 
15828 #ifndef VK_NO_PROTOTYPES
15829 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
15830     VkDevice                                    device,
15831     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
15832     const VkAllocationCallbacks*                pAllocator,
15833     VkPrivateDataSlot*                          pPrivateDataSlot);
15834 
15835 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
15836     VkDevice                                    device,
15837     VkPrivateDataSlot                           privateDataSlot,
15838     const VkAllocationCallbacks*                pAllocator);
15839 
15840 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
15841     VkDevice                                    device,
15842     VkObjectType                                objectType,
15843     uint64_t                                    objectHandle,
15844     VkPrivateDataSlot                           privateDataSlot,
15845     uint64_t                                    data);
15846 
15847 VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
15848     VkDevice                                    device,
15849     VkObjectType                                objectType,
15850     uint64_t                                    objectHandle,
15851     VkPrivateDataSlot                           privateDataSlot,
15852     uint64_t*                                   pData);
15853 #endif
15854 
15855 
15856 // VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
15857 #define VK_EXT_pipeline_creation_cache_control 1
15858 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
15859 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
15860 typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
15861 
15862 
15863 
15864 // VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
15865 #define VK_NV_device_diagnostics_config 1
15866 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
15867 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
15868 
15869 typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
15870     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
15871     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
15872     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
15873     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
15874     VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15875 } VkDeviceDiagnosticsConfigFlagBitsNV;
15876 typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
15877 typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
15878     VkStructureType    sType;
15879     void*              pNext;
15880     VkBool32           diagnosticsConfig;
15881 } VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
15882 
15883 typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
15884     VkStructureType                     sType;
15885     const void*                         pNext;
15886     VkDeviceDiagnosticsConfigFlagsNV    flags;
15887 } VkDeviceDiagnosticsConfigCreateInfoNV;
15888 
15889 
15890 
15891 // VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
15892 #define VK_QCOM_render_pass_store_ops 1
15893 #define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
15894 #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
15895 
15896 
15897 // VK_NV_cuda_kernel_launch is a preprocessor guard. Do not pass it to API calls.
15898 #define VK_NV_cuda_kernel_launch 1
15899 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaModuleNV)
15900 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaFunctionNV)
15901 #define VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION 2
15902 #define VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME "VK_NV_cuda_kernel_launch"
15903 typedef struct VkCudaModuleCreateInfoNV {
15904     VkStructureType    sType;
15905     const void*        pNext;
15906     size_t             dataSize;
15907     const void*        pData;
15908 } VkCudaModuleCreateInfoNV;
15909 
15910 typedef struct VkCudaFunctionCreateInfoNV {
15911     VkStructureType    sType;
15912     const void*        pNext;
15913     VkCudaModuleNV     module;
15914     const char*        pName;
15915 } VkCudaFunctionCreateInfoNV;
15916 
15917 typedef struct VkCudaLaunchInfoNV {
15918     VkStructureType        sType;
15919     const void*            pNext;
15920     VkCudaFunctionNV       function;
15921     uint32_t               gridDimX;
15922     uint32_t               gridDimY;
15923     uint32_t               gridDimZ;
15924     uint32_t               blockDimX;
15925     uint32_t               blockDimY;
15926     uint32_t               blockDimZ;
15927     uint32_t               sharedMemBytes;
15928     size_t                 paramCount;
15929     const void* const *    pParams;
15930     size_t                 extraCount;
15931     const void* const *    pExtras;
15932 } VkCudaLaunchInfoNV;
15933 
15934 typedef struct VkPhysicalDeviceCudaKernelLaunchFeaturesNV {
15935     VkStructureType    sType;
15936     void*              pNext;
15937     VkBool32           cudaKernelLaunchFeatures;
15938 } VkPhysicalDeviceCudaKernelLaunchFeaturesNV;
15939 
15940 typedef struct VkPhysicalDeviceCudaKernelLaunchPropertiesNV {
15941     VkStructureType    sType;
15942     void*              pNext;
15943     uint32_t           computeCapabilityMinor;
15944     uint32_t           computeCapabilityMajor;
15945 } VkPhysicalDeviceCudaKernelLaunchPropertiesNV;
15946 
15947 typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaModuleNV)(VkDevice device, const VkCudaModuleCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaModuleNV* pModule);
15948 typedef VkResult (VKAPI_PTR *PFN_vkGetCudaModuleCacheNV)(VkDevice device, VkCudaModuleNV module, size_t* pCacheSize, void* pCacheData);
15949 typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaFunctionNV)(VkDevice device, const VkCudaFunctionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaFunctionNV* pFunction);
15950 typedef void (VKAPI_PTR *PFN_vkDestroyCudaModuleNV)(VkDevice device, VkCudaModuleNV module, const VkAllocationCallbacks* pAllocator);
15951 typedef void (VKAPI_PTR *PFN_vkDestroyCudaFunctionNV)(VkDevice device, VkCudaFunctionNV function, const VkAllocationCallbacks* pAllocator);
15952 typedef void (VKAPI_PTR *PFN_vkCmdCudaLaunchKernelNV)(VkCommandBuffer commandBuffer, const VkCudaLaunchInfoNV* pLaunchInfo);
15953 
15954 #ifndef VK_NO_PROTOTYPES
15955 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaModuleNV(
15956     VkDevice                                    device,
15957     const VkCudaModuleCreateInfoNV*             pCreateInfo,
15958     const VkAllocationCallbacks*                pAllocator,
15959     VkCudaModuleNV*                             pModule);
15960 
15961 VKAPI_ATTR VkResult VKAPI_CALL vkGetCudaModuleCacheNV(
15962     VkDevice                                    device,
15963     VkCudaModuleNV                              module,
15964     size_t*                                     pCacheSize,
15965     void*                                       pCacheData);
15966 
15967 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaFunctionNV(
15968     VkDevice                                    device,
15969     const VkCudaFunctionCreateInfoNV*           pCreateInfo,
15970     const VkAllocationCallbacks*                pAllocator,
15971     VkCudaFunctionNV*                           pFunction);
15972 
15973 VKAPI_ATTR void VKAPI_CALL vkDestroyCudaModuleNV(
15974     VkDevice                                    device,
15975     VkCudaModuleNV                              module,
15976     const VkAllocationCallbacks*                pAllocator);
15977 
15978 VKAPI_ATTR void VKAPI_CALL vkDestroyCudaFunctionNV(
15979     VkDevice                                    device,
15980     VkCudaFunctionNV                            function,
15981     const VkAllocationCallbacks*                pAllocator);
15982 
15983 VKAPI_ATTR void VKAPI_CALL vkCmdCudaLaunchKernelNV(
15984     VkCommandBuffer                             commandBuffer,
15985     const VkCudaLaunchInfoNV*                   pLaunchInfo);
15986 #endif
15987 
15988 
15989 // VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
15990 #define VK_NV_low_latency 1
15991 #define VK_NV_LOW_LATENCY_SPEC_VERSION    1
15992 #define VK_NV_LOW_LATENCY_EXTENSION_NAME  "VK_NV_low_latency"
15993 typedef struct VkQueryLowLatencySupportNV {
15994     VkStructureType    sType;
15995     const void*        pNext;
15996     void*              pQueriedLowLatencyData;
15997 } VkQueryLowLatencySupportNV;
15998 
15999 
16000 
16001 // VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
16002 #define VK_EXT_descriptor_buffer 1
16003 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
16004 #define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
16005 #define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
16006 typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
16007     VkStructureType    sType;
16008     void*              pNext;
16009     VkBool32           combinedImageSamplerDescriptorSingleArray;
16010     VkBool32           bufferlessPushDescriptors;
16011     VkBool32           allowSamplerImageViewPostSubmitCreation;
16012     VkDeviceSize       descriptorBufferOffsetAlignment;
16013     uint32_t           maxDescriptorBufferBindings;
16014     uint32_t           maxResourceDescriptorBufferBindings;
16015     uint32_t           maxSamplerDescriptorBufferBindings;
16016     uint32_t           maxEmbeddedImmutableSamplerBindings;
16017     uint32_t           maxEmbeddedImmutableSamplers;
16018     size_t             bufferCaptureReplayDescriptorDataSize;
16019     size_t             imageCaptureReplayDescriptorDataSize;
16020     size_t             imageViewCaptureReplayDescriptorDataSize;
16021     size_t             samplerCaptureReplayDescriptorDataSize;
16022     size_t             accelerationStructureCaptureReplayDescriptorDataSize;
16023     size_t             samplerDescriptorSize;
16024     size_t             combinedImageSamplerDescriptorSize;
16025     size_t             sampledImageDescriptorSize;
16026     size_t             storageImageDescriptorSize;
16027     size_t             uniformTexelBufferDescriptorSize;
16028     size_t             robustUniformTexelBufferDescriptorSize;
16029     size_t             storageTexelBufferDescriptorSize;
16030     size_t             robustStorageTexelBufferDescriptorSize;
16031     size_t             uniformBufferDescriptorSize;
16032     size_t             robustUniformBufferDescriptorSize;
16033     size_t             storageBufferDescriptorSize;
16034     size_t             robustStorageBufferDescriptorSize;
16035     size_t             inputAttachmentDescriptorSize;
16036     size_t             accelerationStructureDescriptorSize;
16037     VkDeviceSize       maxSamplerDescriptorBufferRange;
16038     VkDeviceSize       maxResourceDescriptorBufferRange;
16039     VkDeviceSize       samplerDescriptorBufferAddressSpaceSize;
16040     VkDeviceSize       resourceDescriptorBufferAddressSpaceSize;
16041     VkDeviceSize       descriptorBufferAddressSpaceSize;
16042 } VkPhysicalDeviceDescriptorBufferPropertiesEXT;
16043 
16044 typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
16045     VkStructureType    sType;
16046     void*              pNext;
16047     size_t             combinedImageSamplerDensityMapDescriptorSize;
16048 } VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
16049 
16050 typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
16051     VkStructureType    sType;
16052     void*              pNext;
16053     VkBool32           descriptorBuffer;
16054     VkBool32           descriptorBufferCaptureReplay;
16055     VkBool32           descriptorBufferImageLayoutIgnored;
16056     VkBool32           descriptorBufferPushDescriptors;
16057 } VkPhysicalDeviceDescriptorBufferFeaturesEXT;
16058 
16059 typedef struct VkDescriptorAddressInfoEXT {
16060     VkStructureType    sType;
16061     void*              pNext;
16062     VkDeviceAddress    address;
16063     VkDeviceSize       range;
16064     VkFormat           format;
16065 } VkDescriptorAddressInfoEXT;
16066 
16067 typedef struct VkDescriptorBufferBindingInfoEXT {
16068     VkStructureType       sType;
16069     void*                 pNext;
16070     VkDeviceAddress       address;
16071     VkBufferUsageFlags    usage;
16072 } VkDescriptorBufferBindingInfoEXT;
16073 
16074 typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
16075     VkStructureType    sType;
16076     void*              pNext;
16077     VkBuffer           buffer;
16078 } VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
16079 
16080 typedef union VkDescriptorDataEXT {
16081     const VkSampler*                     pSampler;
16082     const VkDescriptorImageInfo*         pCombinedImageSampler;
16083     const VkDescriptorImageInfo*         pInputAttachmentImage;
16084     const VkDescriptorImageInfo*         pSampledImage;
16085     const VkDescriptorImageInfo*         pStorageImage;
16086     const VkDescriptorAddressInfoEXT*    pUniformTexelBuffer;
16087     const VkDescriptorAddressInfoEXT*    pStorageTexelBuffer;
16088     const VkDescriptorAddressInfoEXT*    pUniformBuffer;
16089     const VkDescriptorAddressInfoEXT*    pStorageBuffer;
16090     VkDeviceAddress                      accelerationStructure;
16091 } VkDescriptorDataEXT;
16092 
16093 typedef struct VkDescriptorGetInfoEXT {
16094     VkStructureType        sType;
16095     const void*            pNext;
16096     VkDescriptorType       type;
16097     VkDescriptorDataEXT    data;
16098 } VkDescriptorGetInfoEXT;
16099 
16100 typedef struct VkBufferCaptureDescriptorDataInfoEXT {
16101     VkStructureType    sType;
16102     const void*        pNext;
16103     VkBuffer           buffer;
16104 } VkBufferCaptureDescriptorDataInfoEXT;
16105 
16106 typedef struct VkImageCaptureDescriptorDataInfoEXT {
16107     VkStructureType    sType;
16108     const void*        pNext;
16109     VkImage            image;
16110 } VkImageCaptureDescriptorDataInfoEXT;
16111 
16112 typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
16113     VkStructureType    sType;
16114     const void*        pNext;
16115     VkImageView        imageView;
16116 } VkImageViewCaptureDescriptorDataInfoEXT;
16117 
16118 typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
16119     VkStructureType    sType;
16120     const void*        pNext;
16121     VkSampler          sampler;
16122 } VkSamplerCaptureDescriptorDataInfoEXT;
16123 
16124 typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
16125     VkStructureType    sType;
16126     const void*        pNext;
16127     const void*        opaqueCaptureDescriptorData;
16128 } VkOpaqueCaptureDescriptorDataCreateInfoEXT;
16129 
16130 typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
16131     VkStructureType               sType;
16132     const void*                   pNext;
16133     VkAccelerationStructureKHR    accelerationStructure;
16134     VkAccelerationStructureNV     accelerationStructureNV;
16135 } VkAccelerationStructureCaptureDescriptorDataInfoEXT;
16136 
16137 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
16138 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
16139 typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
16140 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
16141 typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets);
16142 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
16143 typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16144 typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16145 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16146 typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16147 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16148 
16149 #ifndef VK_NO_PROTOTYPES
16150 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
16151     VkDevice                                    device,
16152     VkDescriptorSetLayout                       layout,
16153     VkDeviceSize*                               pLayoutSizeInBytes);
16154 
16155 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
16156     VkDevice                                    device,
16157     VkDescriptorSetLayout                       layout,
16158     uint32_t                                    binding,
16159     VkDeviceSize*                               pOffset);
16160 
16161 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
16162     VkDevice                                    device,
16163     const VkDescriptorGetInfoEXT*               pDescriptorInfo,
16164     size_t                                      dataSize,
16165     void*                                       pDescriptor);
16166 
16167 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
16168     VkCommandBuffer                             commandBuffer,
16169     uint32_t                                    bufferCount,
16170     const VkDescriptorBufferBindingInfoEXT*     pBindingInfos);
16171 
16172 VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
16173     VkCommandBuffer                             commandBuffer,
16174     VkPipelineBindPoint                         pipelineBindPoint,
16175     VkPipelineLayout                            layout,
16176     uint32_t                                    firstSet,
16177     uint32_t                                    setCount,
16178     const uint32_t*                             pBufferIndices,
16179     const VkDeviceSize*                         pOffsets);
16180 
16181 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
16182     VkCommandBuffer                             commandBuffer,
16183     VkPipelineBindPoint                         pipelineBindPoint,
16184     VkPipelineLayout                            layout,
16185     uint32_t                                    set);
16186 
16187 VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
16188     VkDevice                                    device,
16189     const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
16190     void*                                       pData);
16191 
16192 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
16193     VkDevice                                    device,
16194     const VkImageCaptureDescriptorDataInfoEXT*  pInfo,
16195     void*                                       pData);
16196 
16197 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
16198     VkDevice                                    device,
16199     const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
16200     void*                                       pData);
16201 
16202 VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
16203     VkDevice                                    device,
16204     const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
16205     void*                                       pData);
16206 
16207 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
16208     VkDevice                                    device,
16209     const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
16210     void*                                       pData);
16211 #endif
16212 
16213 
16214 // VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
16215 #define VK_EXT_graphics_pipeline_library 1
16216 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
16217 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
16218 
16219 typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
16220     VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
16221     VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
16222     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
16223     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
16224     VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16225 } VkGraphicsPipelineLibraryFlagBitsEXT;
16226 typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
16227 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
16228     VkStructureType    sType;
16229     void*              pNext;
16230     VkBool32           graphicsPipelineLibrary;
16231 } VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
16232 
16233 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
16234     VkStructureType    sType;
16235     void*              pNext;
16236     VkBool32           graphicsPipelineLibraryFastLinking;
16237     VkBool32           graphicsPipelineLibraryIndependentInterpolationDecoration;
16238 } VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
16239 
16240 typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
16241     VkStructureType                      sType;
16242     const void*                          pNext;
16243     VkGraphicsPipelineLibraryFlagsEXT    flags;
16244 } VkGraphicsPipelineLibraryCreateInfoEXT;
16245 
16246 
16247 
16248 // VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
16249 #define VK_AMD_shader_early_and_late_fragment_tests 1
16250 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
16251 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
16252 typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
16253     VkStructureType    sType;
16254     void*              pNext;
16255     VkBool32           shaderEarlyAndLateFragmentTests;
16256 } VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
16257 
16258 
16259 
16260 // VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
16261 #define VK_NV_fragment_shading_rate_enums 1
16262 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
16263 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
16264 
16265 typedef enum VkFragmentShadingRateTypeNV {
16266     VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
16267     VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
16268     VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16269 } VkFragmentShadingRateTypeNV;
16270 
16271 typedef enum VkFragmentShadingRateNV {
16272     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
16273     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
16274     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
16275     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
16276     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
16277     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
16278     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
16279     VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
16280     VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
16281     VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
16282     VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
16283     VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
16284     VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
16285 } VkFragmentShadingRateNV;
16286 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
16287     VkStructureType    sType;
16288     void*              pNext;
16289     VkBool32           fragmentShadingRateEnums;
16290     VkBool32           supersampleFragmentShadingRates;
16291     VkBool32           noInvocationFragmentShadingRates;
16292 } VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
16293 
16294 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
16295     VkStructureType          sType;
16296     void*                    pNext;
16297     VkSampleCountFlagBits    maxFragmentShadingRateInvocationCount;
16298 } VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
16299 
16300 typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
16301     VkStructureType                       sType;
16302     const void*                           pNext;
16303     VkFragmentShadingRateTypeNV           shadingRateType;
16304     VkFragmentShadingRateNV               shadingRate;
16305     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
16306 } VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
16307 
16308 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer           commandBuffer, VkFragmentShadingRateNV                     shadingRate, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
16309 
16310 #ifndef VK_NO_PROTOTYPES
16311 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
16312     VkCommandBuffer                             commandBuffer,
16313     VkFragmentShadingRateNV                     shadingRate,
16314     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
16315 #endif
16316 
16317 
16318 // VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
16319 #define VK_NV_ray_tracing_motion_blur 1
16320 #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
16321 #define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
16322 
16323 typedef enum VkAccelerationStructureMotionInstanceTypeNV {
16324     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
16325     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
16326     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
16327     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16328 } VkAccelerationStructureMotionInstanceTypeNV;
16329 typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
16330 typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
16331 typedef union VkDeviceOrHostAddressConstKHR {
16332     VkDeviceAddress    deviceAddress;
16333     const void*        hostAddress;
16334 } VkDeviceOrHostAddressConstKHR;
16335 
16336 typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
16337     VkStructureType                  sType;
16338     const void*                      pNext;
16339     VkDeviceOrHostAddressConstKHR    vertexData;
16340 } VkAccelerationStructureGeometryMotionTrianglesDataNV;
16341 
16342 typedef struct VkAccelerationStructureMotionInfoNV {
16343     VkStructureType                             sType;
16344     const void*                                 pNext;
16345     uint32_t                                    maxInstances;
16346     VkAccelerationStructureMotionInfoFlagsNV    flags;
16347 } VkAccelerationStructureMotionInfoNV;
16348 
16349 typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
16350     VkTransformMatrixKHR          transformT0;
16351     VkTransformMatrixKHR          transformT1;
16352     uint32_t                      instanceCustomIndex:24;
16353     uint32_t                      mask:8;
16354     uint32_t                      instanceShaderBindingTableRecordOffset:24;
16355     VkGeometryInstanceFlagsKHR    flags:8;
16356     uint64_t                      accelerationStructureReference;
16357 } VkAccelerationStructureMatrixMotionInstanceNV;
16358 
16359 typedef struct VkSRTDataNV {
16360     float    sx;
16361     float    a;
16362     float    b;
16363     float    pvx;
16364     float    sy;
16365     float    c;
16366     float    pvy;
16367     float    sz;
16368     float    pvz;
16369     float    qx;
16370     float    qy;
16371     float    qz;
16372     float    qw;
16373     float    tx;
16374     float    ty;
16375     float    tz;
16376 } VkSRTDataNV;
16377 
16378 typedef struct VkAccelerationStructureSRTMotionInstanceNV {
16379     VkSRTDataNV                   transformT0;
16380     VkSRTDataNV                   transformT1;
16381     uint32_t                      instanceCustomIndex:24;
16382     uint32_t                      mask:8;
16383     uint32_t                      instanceShaderBindingTableRecordOffset:24;
16384     VkGeometryInstanceFlagsKHR    flags:8;
16385     uint64_t                      accelerationStructureReference;
16386 } VkAccelerationStructureSRTMotionInstanceNV;
16387 
16388 typedef union VkAccelerationStructureMotionInstanceDataNV {
16389     VkAccelerationStructureInstanceKHR               staticInstance;
16390     VkAccelerationStructureMatrixMotionInstanceNV    matrixMotionInstance;
16391     VkAccelerationStructureSRTMotionInstanceNV       srtMotionInstance;
16392 } VkAccelerationStructureMotionInstanceDataNV;
16393 
16394 typedef struct VkAccelerationStructureMotionInstanceNV {
16395     VkAccelerationStructureMotionInstanceTypeNV     type;
16396     VkAccelerationStructureMotionInstanceFlagsNV    flags;
16397     VkAccelerationStructureMotionInstanceDataNV     data;
16398 } VkAccelerationStructureMotionInstanceNV;
16399 
16400 typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
16401     VkStructureType    sType;
16402     void*              pNext;
16403     VkBool32           rayTracingMotionBlur;
16404     VkBool32           rayTracingMotionBlurPipelineTraceRaysIndirect;
16405 } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
16406 
16407 
16408 
16409 // VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
16410 #define VK_EXT_ycbcr_2plane_444_formats 1
16411 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
16412 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
16413 typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
16414     VkStructureType    sType;
16415     void*              pNext;
16416     VkBool32           ycbcr2plane444Formats;
16417 } VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
16418 
16419 
16420 
16421 // VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
16422 #define VK_EXT_fragment_density_map2 1
16423 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
16424 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
16425 typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
16426     VkStructureType    sType;
16427     void*              pNext;
16428     VkBool32           fragmentDensityMapDeferred;
16429 } VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
16430 
16431 typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
16432     VkStructureType    sType;
16433     void*              pNext;
16434     VkBool32           subsampledLoads;
16435     VkBool32           subsampledCoarseReconstructionEarlyAccess;
16436     uint32_t           maxSubsampledArrayLayers;
16437     uint32_t           maxDescriptorSetSubsampledSamplers;
16438 } VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
16439 
16440 
16441 
16442 // VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
16443 #define VK_QCOM_rotated_copy_commands 1
16444 #define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
16445 #define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
16446 typedef struct VkCopyCommandTransformInfoQCOM {
16447     VkStructureType                  sType;
16448     const void*                      pNext;
16449     VkSurfaceTransformFlagBitsKHR    transform;
16450 } VkCopyCommandTransformInfoQCOM;
16451 
16452 
16453 
16454 // VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
16455 #define VK_EXT_image_robustness 1
16456 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
16457 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
16458 typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
16459 
16460 
16461 
16462 // VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
16463 #define VK_EXT_image_compression_control 1
16464 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
16465 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
16466 
16467 typedef enum VkImageCompressionFlagBitsEXT {
16468     VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
16469     VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
16470     VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
16471     VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
16472     VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16473 } VkImageCompressionFlagBitsEXT;
16474 typedef VkFlags VkImageCompressionFlagsEXT;
16475 
16476 typedef enum VkImageCompressionFixedRateFlagBitsEXT {
16477     VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
16478     VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
16479     VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
16480     VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
16481     VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
16482     VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
16483     VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
16484     VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
16485     VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
16486     VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
16487     VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
16488     VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
16489     VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
16490     VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
16491     VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
16492     VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
16493     VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
16494     VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
16495     VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
16496     VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
16497     VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
16498     VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
16499     VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
16500     VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
16501     VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
16502     VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16503 } VkImageCompressionFixedRateFlagBitsEXT;
16504 typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
16505 typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
16506     VkStructureType    sType;
16507     void*              pNext;
16508     VkBool32           imageCompressionControl;
16509 } VkPhysicalDeviceImageCompressionControlFeaturesEXT;
16510 
16511 typedef struct VkImageCompressionControlEXT {
16512     VkStructureType                         sType;
16513     const void*                             pNext;
16514     VkImageCompressionFlagsEXT              flags;
16515     uint32_t                                compressionControlPlaneCount;
16516     VkImageCompressionFixedRateFlagsEXT*    pFixedRateFlags;
16517 } VkImageCompressionControlEXT;
16518 
16519 typedef struct VkImageCompressionPropertiesEXT {
16520     VkStructureType                        sType;
16521     void*                                  pNext;
16522     VkImageCompressionFlagsEXT             imageCompressionFlags;
16523     VkImageCompressionFixedRateFlagsEXT    imageCompressionFixedRateFlags;
16524 } VkImageCompressionPropertiesEXT;
16525 
16526 
16527 
16528 // VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
16529 #define VK_EXT_attachment_feedback_loop_layout 1
16530 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
16531 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
16532 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
16533     VkStructureType    sType;
16534     void*              pNext;
16535     VkBool32           attachmentFeedbackLoopLayout;
16536 } VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
16537 
16538 
16539 
16540 // VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
16541 #define VK_EXT_4444_formats 1
16542 #define VK_EXT_4444_FORMATS_SPEC_VERSION  1
16543 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
16544 typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
16545     VkStructureType    sType;
16546     void*              pNext;
16547     VkBool32           formatA4R4G4B4;
16548     VkBool32           formatA4B4G4R4;
16549 } VkPhysicalDevice4444FormatsFeaturesEXT;
16550 
16551 
16552 
16553 // VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
16554 #define VK_EXT_device_fault 1
16555 #define VK_EXT_DEVICE_FAULT_SPEC_VERSION  2
16556 #define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
16557 
16558 typedef enum VkDeviceFaultAddressTypeEXT {
16559     VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
16560     VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
16561     VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
16562     VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
16563     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
16564     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
16565     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
16566     VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
16567 } VkDeviceFaultAddressTypeEXT;
16568 
16569 typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
16570     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
16571     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
16572 } VkDeviceFaultVendorBinaryHeaderVersionEXT;
16573 typedef struct VkPhysicalDeviceFaultFeaturesEXT {
16574     VkStructureType    sType;
16575     void*              pNext;
16576     VkBool32           deviceFault;
16577     VkBool32           deviceFaultVendorBinary;
16578 } VkPhysicalDeviceFaultFeaturesEXT;
16579 
16580 typedef struct VkDeviceFaultCountsEXT {
16581     VkStructureType    sType;
16582     void*              pNext;
16583     uint32_t           addressInfoCount;
16584     uint32_t           vendorInfoCount;
16585     VkDeviceSize       vendorBinarySize;
16586 } VkDeviceFaultCountsEXT;
16587 
16588 typedef struct VkDeviceFaultAddressInfoEXT {
16589     VkDeviceFaultAddressTypeEXT    addressType;
16590     VkDeviceAddress                reportedAddress;
16591     VkDeviceSize                   addressPrecision;
16592 } VkDeviceFaultAddressInfoEXT;
16593 
16594 typedef struct VkDeviceFaultVendorInfoEXT {
16595     char        description[VK_MAX_DESCRIPTION_SIZE];
16596     uint64_t    vendorFaultCode;
16597     uint64_t    vendorFaultData;
16598 } VkDeviceFaultVendorInfoEXT;
16599 
16600 typedef struct VkDeviceFaultInfoEXT {
16601     VkStructureType                 sType;
16602     void*                           pNext;
16603     char                            description[VK_MAX_DESCRIPTION_SIZE];
16604     VkDeviceFaultAddressInfoEXT*    pAddressInfos;
16605     VkDeviceFaultVendorInfoEXT*     pVendorInfos;
16606     void*                           pVendorBinaryData;
16607 } VkDeviceFaultInfoEXT;
16608 
16609 typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
16610     uint32_t                                     headerSize;
16611     VkDeviceFaultVendorBinaryHeaderVersionEXT    headerVersion;
16612     uint32_t                                     vendorID;
16613     uint32_t                                     deviceID;
16614     uint32_t                                     driverVersion;
16615     uint8_t                                      pipelineCacheUUID[VK_UUID_SIZE];
16616     uint32_t                                     applicationNameOffset;
16617     uint32_t                                     applicationVersion;
16618     uint32_t                                     engineNameOffset;
16619     uint32_t                                     engineVersion;
16620     uint32_t                                     apiVersion;
16621 } VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
16622 
16623 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
16624 
16625 #ifndef VK_NO_PROTOTYPES
16626 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
16627     VkDevice                                    device,
16628     VkDeviceFaultCountsEXT*                     pFaultCounts,
16629     VkDeviceFaultInfoEXT*                       pFaultInfo);
16630 #endif
16631 
16632 
16633 // VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
16634 #define VK_ARM_rasterization_order_attachment_access 1
16635 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
16636 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
16637 typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
16638     VkStructureType    sType;
16639     void*              pNext;
16640     VkBool32           rasterizationOrderColorAttachmentAccess;
16641     VkBool32           rasterizationOrderDepthAttachmentAccess;
16642     VkBool32           rasterizationOrderStencilAttachmentAccess;
16643 } VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
16644 
16645 typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
16646 
16647 
16648 
16649 // VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
16650 #define VK_EXT_rgba10x6_formats 1
16651 #define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
16652 #define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
16653 typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
16654     VkStructureType    sType;
16655     void*              pNext;
16656     VkBool32           formatRgba10x6WithoutYCbCrSampler;
16657 } VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
16658 
16659 
16660 
16661 // VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
16662 #define VK_VALVE_mutable_descriptor_type 1
16663 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
16664 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
16665 typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
16666     VkStructureType    sType;
16667     void*              pNext;
16668     VkBool32           mutableDescriptorType;
16669 } VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
16670 
16671 typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
16672 
16673 typedef struct VkMutableDescriptorTypeListEXT {
16674     uint32_t                   descriptorTypeCount;
16675     const VkDescriptorType*    pDescriptorTypes;
16676 } VkMutableDescriptorTypeListEXT;
16677 
16678 typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
16679 
16680 typedef struct VkMutableDescriptorTypeCreateInfoEXT {
16681     VkStructureType                          sType;
16682     const void*                              pNext;
16683     uint32_t                                 mutableDescriptorTypeListCount;
16684     const VkMutableDescriptorTypeListEXT*    pMutableDescriptorTypeLists;
16685 } VkMutableDescriptorTypeCreateInfoEXT;
16686 
16687 typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
16688 
16689 
16690 
16691 // VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
16692 #define VK_EXT_vertex_input_dynamic_state 1
16693 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
16694 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
16695 typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
16696     VkStructureType    sType;
16697     void*              pNext;
16698     VkBool32           vertexInputDynamicState;
16699 } VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
16700 
16701 typedef struct VkVertexInputBindingDescription2EXT {
16702     VkStructureType      sType;
16703     void*                pNext;
16704     uint32_t             binding;
16705     uint32_t             stride;
16706     VkVertexInputRate    inputRate;
16707     uint32_t             divisor;
16708 } VkVertexInputBindingDescription2EXT;
16709 
16710 typedef struct VkVertexInputAttributeDescription2EXT {
16711     VkStructureType    sType;
16712     void*              pNext;
16713     uint32_t           location;
16714     uint32_t           binding;
16715     VkFormat           format;
16716     uint32_t           offset;
16717 } VkVertexInputAttributeDescription2EXT;
16718 
16719 typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
16720 
16721 #ifndef VK_NO_PROTOTYPES
16722 VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
16723     VkCommandBuffer                             commandBuffer,
16724     uint32_t                                    vertexBindingDescriptionCount,
16725     const VkVertexInputBindingDescription2EXT*  pVertexBindingDescriptions,
16726     uint32_t                                    vertexAttributeDescriptionCount,
16727     const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
16728 #endif
16729 
16730 
16731 // VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
16732 #define VK_EXT_physical_device_drm 1
16733 #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
16734 #define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
16735 typedef struct VkPhysicalDeviceDrmPropertiesEXT {
16736     VkStructureType    sType;
16737     void*              pNext;
16738     VkBool32           hasPrimary;
16739     VkBool32           hasRender;
16740     int64_t            primaryMajor;
16741     int64_t            primaryMinor;
16742     int64_t            renderMajor;
16743     int64_t            renderMinor;
16744 } VkPhysicalDeviceDrmPropertiesEXT;
16745 
16746 
16747 
16748 // VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
16749 #define VK_EXT_device_address_binding_report 1
16750 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
16751 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
16752 
16753 typedef enum VkDeviceAddressBindingTypeEXT {
16754     VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
16755     VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
16756     VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
16757 } VkDeviceAddressBindingTypeEXT;
16758 
16759 typedef enum VkDeviceAddressBindingFlagBitsEXT {
16760     VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
16761     VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16762 } VkDeviceAddressBindingFlagBitsEXT;
16763 typedef VkFlags VkDeviceAddressBindingFlagsEXT;
16764 typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
16765     VkStructureType    sType;
16766     void*              pNext;
16767     VkBool32           reportAddressBinding;
16768 } VkPhysicalDeviceAddressBindingReportFeaturesEXT;
16769 
16770 typedef struct VkDeviceAddressBindingCallbackDataEXT {
16771     VkStructureType                   sType;
16772     void*                             pNext;
16773     VkDeviceAddressBindingFlagsEXT    flags;
16774     VkDeviceAddress                   baseAddress;
16775     VkDeviceSize                      size;
16776     VkDeviceAddressBindingTypeEXT     bindingType;
16777 } VkDeviceAddressBindingCallbackDataEXT;
16778 
16779 
16780 
16781 // VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
16782 #define VK_EXT_depth_clip_control 1
16783 #define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
16784 #define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
16785 typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
16786     VkStructureType    sType;
16787     void*              pNext;
16788     VkBool32           depthClipControl;
16789 } VkPhysicalDeviceDepthClipControlFeaturesEXT;
16790 
16791 typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
16792     VkStructureType    sType;
16793     const void*        pNext;
16794     VkBool32           negativeOneToOne;
16795 } VkPipelineViewportDepthClipControlCreateInfoEXT;
16796 
16797 
16798 
16799 // VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
16800 #define VK_EXT_primitive_topology_list_restart 1
16801 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
16802 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
16803 typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
16804     VkStructureType    sType;
16805     void*              pNext;
16806     VkBool32           primitiveTopologyListRestart;
16807     VkBool32           primitiveTopologyPatchListRestart;
16808 } VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
16809 
16810 
16811 
16812 // VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
16813 #define VK_HUAWEI_subpass_shading 1
16814 #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
16815 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
16816 typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
16817     VkStructureType    sType;
16818     void*              pNext;
16819     VkRenderPass       renderPass;
16820     uint32_t           subpass;
16821 } VkSubpassShadingPipelineCreateInfoHUAWEI;
16822 
16823 typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
16824     VkStructureType    sType;
16825     void*              pNext;
16826     VkBool32           subpassShading;
16827 } VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
16828 
16829 typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
16830     VkStructureType    sType;
16831     void*              pNext;
16832     uint32_t           maxSubpassShadingWorkgroupSizeAspectRatio;
16833 } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
16834 
16835 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
16836 typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
16837 
16838 #ifndef VK_NO_PROTOTYPES
16839 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
16840     VkDevice                                    device,
16841     VkRenderPass                                renderpass,
16842     VkExtent2D*                                 pMaxWorkgroupSize);
16843 
16844 VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
16845     VkCommandBuffer                             commandBuffer);
16846 #endif
16847 
16848 
16849 // VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
16850 #define VK_HUAWEI_invocation_mask 1
16851 #define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
16852 #define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
16853 typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
16854     VkStructureType    sType;
16855     void*              pNext;
16856     VkBool32           invocationMask;
16857 } VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
16858 
16859 typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
16860 
16861 #ifndef VK_NO_PROTOTYPES
16862 VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
16863     VkCommandBuffer                             commandBuffer,
16864     VkImageView                                 imageView,
16865     VkImageLayout                               imageLayout);
16866 #endif
16867 
16868 
16869 // VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
16870 #define VK_NV_external_memory_rdma 1
16871 typedef void* VkRemoteAddressNV;
16872 #define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
16873 #define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
16874 typedef struct VkMemoryGetRemoteAddressInfoNV {
16875     VkStructureType                       sType;
16876     const void*                           pNext;
16877     VkDeviceMemory                        memory;
16878     VkExternalMemoryHandleTypeFlagBits    handleType;
16879 } VkMemoryGetRemoteAddressInfoNV;
16880 
16881 typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
16882     VkStructureType    sType;
16883     void*              pNext;
16884     VkBool32           externalMemoryRDMA;
16885 } VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
16886 
16887 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
16888 
16889 #ifndef VK_NO_PROTOTYPES
16890 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
16891     VkDevice                                    device,
16892     const VkMemoryGetRemoteAddressInfoNV*       pMemoryGetRemoteAddressInfo,
16893     VkRemoteAddressNV*                          pAddress);
16894 #endif
16895 
16896 
16897 // VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
16898 #define VK_EXT_pipeline_properties 1
16899 #define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
16900 #define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
16901 typedef VkPipelineInfoKHR VkPipelineInfoEXT;
16902 
16903 typedef struct VkPipelinePropertiesIdentifierEXT {
16904     VkStructureType    sType;
16905     void*              pNext;
16906     uint8_t            pipelineIdentifier[VK_UUID_SIZE];
16907 } VkPipelinePropertiesIdentifierEXT;
16908 
16909 typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
16910     VkStructureType    sType;
16911     void*              pNext;
16912     VkBool32           pipelinePropertiesIdentifier;
16913 } VkPhysicalDevicePipelinePropertiesFeaturesEXT;
16914 
16915 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
16916 
16917 #ifndef VK_NO_PROTOTYPES
16918 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
16919     VkDevice                                    device,
16920     const VkPipelineInfoEXT*                    pPipelineInfo,
16921     VkBaseOutStructure*                         pPipelineProperties);
16922 #endif
16923 
16924 
16925 // VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
16926 #define VK_EXT_frame_boundary 1
16927 #define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
16928 #define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
16929 
16930 typedef enum VkFrameBoundaryFlagBitsEXT {
16931     VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
16932     VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16933 } VkFrameBoundaryFlagBitsEXT;
16934 typedef VkFlags VkFrameBoundaryFlagsEXT;
16935 typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
16936     VkStructureType    sType;
16937     void*              pNext;
16938     VkBool32           frameBoundary;
16939 } VkPhysicalDeviceFrameBoundaryFeaturesEXT;
16940 
16941 typedef struct VkFrameBoundaryEXT {
16942     VkStructureType            sType;
16943     const void*                pNext;
16944     VkFrameBoundaryFlagsEXT    flags;
16945     uint64_t                   frameID;
16946     uint32_t                   imageCount;
16947     const VkImage*             pImages;
16948     uint32_t                   bufferCount;
16949     const VkBuffer*            pBuffers;
16950     uint64_t                   tagName;
16951     size_t                     tagSize;
16952     const void*                pTag;
16953 } VkFrameBoundaryEXT;
16954 
16955 
16956 
16957 // VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
16958 #define VK_EXT_multisampled_render_to_single_sampled 1
16959 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
16960 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
16961 typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
16962     VkStructureType    sType;
16963     void*              pNext;
16964     VkBool32           multisampledRenderToSingleSampled;
16965 } VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
16966 
16967 typedef struct VkSubpassResolvePerformanceQueryEXT {
16968     VkStructureType    sType;
16969     void*              pNext;
16970     VkBool32           optimal;
16971 } VkSubpassResolvePerformanceQueryEXT;
16972 
16973 typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
16974     VkStructureType          sType;
16975     const void*              pNext;
16976     VkBool32                 multisampledRenderToSingleSampledEnable;
16977     VkSampleCountFlagBits    rasterizationSamples;
16978 } VkMultisampledRenderToSingleSampledInfoEXT;
16979 
16980 
16981 
16982 // VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
16983 #define VK_EXT_extended_dynamic_state2 1
16984 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
16985 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
16986 typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
16987     VkStructureType    sType;
16988     void*              pNext;
16989     VkBool32           extendedDynamicState2;
16990     VkBool32           extendedDynamicState2LogicOp;
16991     VkBool32           extendedDynamicState2PatchControlPoints;
16992 } VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
16993 
16994 typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
16995 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
16996 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
16997 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
16998 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
16999 
17000 #ifndef VK_NO_PROTOTYPES
17001 VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
17002     VkCommandBuffer                             commandBuffer,
17003     uint32_t                                    patchControlPoints);
17004 
17005 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
17006     VkCommandBuffer                             commandBuffer,
17007     VkBool32                                    rasterizerDiscardEnable);
17008 
17009 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
17010     VkCommandBuffer                             commandBuffer,
17011     VkBool32                                    depthBiasEnable);
17012 
17013 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
17014     VkCommandBuffer                             commandBuffer,
17015     VkLogicOp                                   logicOp);
17016 
17017 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
17018     VkCommandBuffer                             commandBuffer,
17019     VkBool32                                    primitiveRestartEnable);
17020 #endif
17021 
17022 
17023 // VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
17024 #define VK_EXT_color_write_enable 1
17025 #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
17026 #define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
17027 typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
17028     VkStructureType    sType;
17029     void*              pNext;
17030     VkBool32           colorWriteEnable;
17031 } VkPhysicalDeviceColorWriteEnableFeaturesEXT;
17032 
17033 typedef struct VkPipelineColorWriteCreateInfoEXT {
17034     VkStructureType    sType;
17035     const void*        pNext;
17036     uint32_t           attachmentCount;
17037     const VkBool32*    pColorWriteEnables;
17038 } VkPipelineColorWriteCreateInfoEXT;
17039 
17040 typedef void                                    (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer       commandBuffer, uint32_t                                attachmentCount, const VkBool32*   pColorWriteEnables);
17041 
17042 #ifndef VK_NO_PROTOTYPES
17043 VKAPI_ATTR void                                    VKAPI_CALL vkCmdSetColorWriteEnableEXT(
17044     VkCommandBuffer                             commandBuffer,
17045     uint32_t                                    attachmentCount,
17046     const VkBool32*                             pColorWriteEnables);
17047 #endif
17048 
17049 
17050 // VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
17051 #define VK_EXT_primitives_generated_query 1
17052 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
17053 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
17054 typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
17055     VkStructureType    sType;
17056     void*              pNext;
17057     VkBool32           primitivesGeneratedQuery;
17058     VkBool32           primitivesGeneratedQueryWithRasterizerDiscard;
17059     VkBool32           primitivesGeneratedQueryWithNonZeroStreams;
17060 } VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
17061 
17062 
17063 
17064 // VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
17065 #define VK_EXT_global_priority_query 1
17066 #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
17067 #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
17068 #define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT   VK_MAX_GLOBAL_PRIORITY_SIZE_KHR
17069 typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
17070 
17071 typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT;
17072 
17073 
17074 
17075 // VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
17076 #define VK_EXT_image_view_min_lod 1
17077 #define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
17078 #define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
17079 typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
17080     VkStructureType    sType;
17081     void*              pNext;
17082     VkBool32           minLod;
17083 } VkPhysicalDeviceImageViewMinLodFeaturesEXT;
17084 
17085 typedef struct VkImageViewMinLodCreateInfoEXT {
17086     VkStructureType    sType;
17087     const void*        pNext;
17088     float              minLod;
17089 } VkImageViewMinLodCreateInfoEXT;
17090 
17091 
17092 
17093 // VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
17094 #define VK_EXT_multi_draw 1
17095 #define VK_EXT_MULTI_DRAW_SPEC_VERSION    1
17096 #define VK_EXT_MULTI_DRAW_EXTENSION_NAME  "VK_EXT_multi_draw"
17097 typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
17098     VkStructureType    sType;
17099     void*              pNext;
17100     VkBool32           multiDraw;
17101 } VkPhysicalDeviceMultiDrawFeaturesEXT;
17102 
17103 typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
17104     VkStructureType    sType;
17105     void*              pNext;
17106     uint32_t           maxMultiDrawCount;
17107 } VkPhysicalDeviceMultiDrawPropertiesEXT;
17108 
17109 typedef struct VkMultiDrawInfoEXT {
17110     uint32_t    firstVertex;
17111     uint32_t    vertexCount;
17112 } VkMultiDrawInfoEXT;
17113 
17114 typedef struct VkMultiDrawIndexedInfoEXT {
17115     uint32_t    firstIndex;
17116     uint32_t    indexCount;
17117     int32_t     vertexOffset;
17118 } VkMultiDrawIndexedInfoEXT;
17119 
17120 typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
17121 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);
17122 
17123 #ifndef VK_NO_PROTOTYPES
17124 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
17125     VkCommandBuffer                             commandBuffer,
17126     uint32_t                                    drawCount,
17127     const VkMultiDrawInfoEXT*                   pVertexInfo,
17128     uint32_t                                    instanceCount,
17129     uint32_t                                    firstInstance,
17130     uint32_t                                    stride);
17131 
17132 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
17133     VkCommandBuffer                             commandBuffer,
17134     uint32_t                                    drawCount,
17135     const VkMultiDrawIndexedInfoEXT*            pIndexInfo,
17136     uint32_t                                    instanceCount,
17137     uint32_t                                    firstInstance,
17138     uint32_t                                    stride,
17139     const int32_t*                              pVertexOffset);
17140 #endif
17141 
17142 
17143 // VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
17144 #define VK_EXT_image_2d_view_of_3d 1
17145 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
17146 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
17147 typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
17148     VkStructureType    sType;
17149     void*              pNext;
17150     VkBool32           image2DViewOf3D;
17151     VkBool32           sampler2DViewOf3D;
17152 } VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
17153 
17154 
17155 
17156 // VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
17157 #define VK_EXT_shader_tile_image 1
17158 #define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
17159 #define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
17160 typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
17161     VkStructureType    sType;
17162     void*              pNext;
17163     VkBool32           shaderTileImageColorReadAccess;
17164     VkBool32           shaderTileImageDepthReadAccess;
17165     VkBool32           shaderTileImageStencilReadAccess;
17166 } VkPhysicalDeviceShaderTileImageFeaturesEXT;
17167 
17168 typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
17169     VkStructureType    sType;
17170     void*              pNext;
17171     VkBool32           shaderTileImageCoherentReadAccelerated;
17172     VkBool32           shaderTileImageReadSampleFromPixelRateInvocation;
17173     VkBool32           shaderTileImageReadFromHelperInvocation;
17174 } VkPhysicalDeviceShaderTileImagePropertiesEXT;
17175 
17176 
17177 
17178 // VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
17179 #define VK_EXT_opacity_micromap 1
17180 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
17181 #define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
17182 #define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
17183 
17184 typedef enum VkMicromapTypeEXT {
17185     VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
17186 #ifdef VK_ENABLE_BETA_EXTENSIONS
17187     VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
17188 #endif
17189     VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
17190 } VkMicromapTypeEXT;
17191 
17192 typedef enum VkBuildMicromapModeEXT {
17193     VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
17194     VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
17195 } VkBuildMicromapModeEXT;
17196 
17197 typedef enum VkCopyMicromapModeEXT {
17198     VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
17199     VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
17200     VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
17201     VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
17202     VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
17203 } VkCopyMicromapModeEXT;
17204 
17205 typedef enum VkOpacityMicromapFormatEXT {
17206     VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
17207     VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
17208     VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
17209 } VkOpacityMicromapFormatEXT;
17210 
17211 typedef enum VkOpacityMicromapSpecialIndexEXT {
17212     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
17213     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
17214     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
17215     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
17216     VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
17217 } VkOpacityMicromapSpecialIndexEXT;
17218 
17219 typedef enum VkAccelerationStructureCompatibilityKHR {
17220     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
17221     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
17222     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
17223 } VkAccelerationStructureCompatibilityKHR;
17224 
17225 typedef enum VkAccelerationStructureBuildTypeKHR {
17226     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
17227     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
17228     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
17229     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
17230 } VkAccelerationStructureBuildTypeKHR;
17231 
17232 typedef enum VkBuildMicromapFlagBitsEXT {
17233     VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
17234     VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
17235     VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
17236     VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17237 } VkBuildMicromapFlagBitsEXT;
17238 typedef VkFlags VkBuildMicromapFlagsEXT;
17239 
17240 typedef enum VkMicromapCreateFlagBitsEXT {
17241     VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
17242     VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17243 } VkMicromapCreateFlagBitsEXT;
17244 typedef VkFlags VkMicromapCreateFlagsEXT;
17245 typedef struct VkMicromapUsageEXT {
17246     uint32_t    count;
17247     uint32_t    subdivisionLevel;
17248     uint32_t    format;
17249 } VkMicromapUsageEXT;
17250 
17251 typedef union VkDeviceOrHostAddressKHR {
17252     VkDeviceAddress    deviceAddress;
17253     void*              hostAddress;
17254 } VkDeviceOrHostAddressKHR;
17255 
17256 typedef struct VkMicromapBuildInfoEXT {
17257     VkStructureType                     sType;
17258     const void*                         pNext;
17259     VkMicromapTypeEXT                   type;
17260     VkBuildMicromapFlagsEXT             flags;
17261     VkBuildMicromapModeEXT              mode;
17262     VkMicromapEXT                       dstMicromap;
17263     uint32_t                            usageCountsCount;
17264     const VkMicromapUsageEXT*           pUsageCounts;
17265     const VkMicromapUsageEXT* const*    ppUsageCounts;
17266     VkDeviceOrHostAddressConstKHR       data;
17267     VkDeviceOrHostAddressKHR            scratchData;
17268     VkDeviceOrHostAddressConstKHR       triangleArray;
17269     VkDeviceSize                        triangleArrayStride;
17270 } VkMicromapBuildInfoEXT;
17271 
17272 typedef struct VkMicromapCreateInfoEXT {
17273     VkStructureType             sType;
17274     const void*                 pNext;
17275     VkMicromapCreateFlagsEXT    createFlags;
17276     VkBuffer                    buffer;
17277     VkDeviceSize                offset;
17278     VkDeviceSize                size;
17279     VkMicromapTypeEXT           type;
17280     VkDeviceAddress             deviceAddress;
17281 } VkMicromapCreateInfoEXT;
17282 
17283 typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
17284     VkStructureType    sType;
17285     void*              pNext;
17286     VkBool32           micromap;
17287     VkBool32           micromapCaptureReplay;
17288     VkBool32           micromapHostCommands;
17289 } VkPhysicalDeviceOpacityMicromapFeaturesEXT;
17290 
17291 typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
17292     VkStructureType    sType;
17293     void*              pNext;
17294     uint32_t           maxOpacity2StateSubdivisionLevel;
17295     uint32_t           maxOpacity4StateSubdivisionLevel;
17296 } VkPhysicalDeviceOpacityMicromapPropertiesEXT;
17297 
17298 typedef struct VkMicromapVersionInfoEXT {
17299     VkStructureType    sType;
17300     const void*        pNext;
17301     const uint8_t*     pVersionData;
17302 } VkMicromapVersionInfoEXT;
17303 
17304 typedef struct VkCopyMicromapToMemoryInfoEXT {
17305     VkStructureType             sType;
17306     const void*                 pNext;
17307     VkMicromapEXT               src;
17308     VkDeviceOrHostAddressKHR    dst;
17309     VkCopyMicromapModeEXT       mode;
17310 } VkCopyMicromapToMemoryInfoEXT;
17311 
17312 typedef struct VkCopyMemoryToMicromapInfoEXT {
17313     VkStructureType                  sType;
17314     const void*                      pNext;
17315     VkDeviceOrHostAddressConstKHR    src;
17316     VkMicromapEXT                    dst;
17317     VkCopyMicromapModeEXT            mode;
17318 } VkCopyMemoryToMicromapInfoEXT;
17319 
17320 typedef struct VkCopyMicromapInfoEXT {
17321     VkStructureType          sType;
17322     const void*              pNext;
17323     VkMicromapEXT            src;
17324     VkMicromapEXT            dst;
17325     VkCopyMicromapModeEXT    mode;
17326 } VkCopyMicromapInfoEXT;
17327 
17328 typedef struct VkMicromapBuildSizesInfoEXT {
17329     VkStructureType    sType;
17330     const void*        pNext;
17331     VkDeviceSize       micromapSize;
17332     VkDeviceSize       buildScratchSize;
17333     VkBool32           discardable;
17334 } VkMicromapBuildSizesInfoEXT;
17335 
17336 typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
17337     VkStructureType                     sType;
17338     void*                               pNext;
17339     VkIndexType                         indexType;
17340     VkDeviceOrHostAddressConstKHR       indexBuffer;
17341     VkDeviceSize                        indexStride;
17342     uint32_t                            baseTriangle;
17343     uint32_t                            usageCountsCount;
17344     const VkMicromapUsageEXT*           pUsageCounts;
17345     const VkMicromapUsageEXT* const*    ppUsageCounts;
17346     VkMicromapEXT                       micromap;
17347 } VkAccelerationStructureTrianglesOpacityMicromapEXT;
17348 
17349 typedef struct VkMicromapTriangleEXT {
17350     uint32_t    dataOffset;
17351     uint16_t    subdivisionLevel;
17352     uint16_t    format;
17353 } VkMicromapTriangleEXT;
17354 
17355 typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice                                           device, const VkMicromapCreateInfoEXT*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkMicromapEXT*                        pMicromap);
17356 typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
17357 typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
17358 typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
17359 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
17360 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
17361 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
17362 typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
17363 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
17364 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
17365 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
17366 typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
17367 typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
17368 typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkMicromapBuildInfoEXT*  pBuildInfo, VkMicromapBuildSizesInfoEXT*           pSizeInfo);
17369 
17370 #ifndef VK_NO_PROTOTYPES
17371 VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
17372     VkDevice                                    device,
17373     const VkMicromapCreateInfoEXT*              pCreateInfo,
17374     const VkAllocationCallbacks*                pAllocator,
17375     VkMicromapEXT*                              pMicromap);
17376 
17377 VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
17378     VkDevice                                    device,
17379     VkMicromapEXT                               micromap,
17380     const VkAllocationCallbacks*                pAllocator);
17381 
17382 VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
17383     VkCommandBuffer                             commandBuffer,
17384     uint32_t                                    infoCount,
17385     const VkMicromapBuildInfoEXT*               pInfos);
17386 
17387 VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
17388     VkDevice                                    device,
17389     VkDeferredOperationKHR                      deferredOperation,
17390     uint32_t                                    infoCount,
17391     const VkMicromapBuildInfoEXT*               pInfos);
17392 
17393 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
17394     VkDevice                                    device,
17395     VkDeferredOperationKHR                      deferredOperation,
17396     const VkCopyMicromapInfoEXT*                pInfo);
17397 
17398 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
17399     VkDevice                                    device,
17400     VkDeferredOperationKHR                      deferredOperation,
17401     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
17402 
17403 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
17404     VkDevice                                    device,
17405     VkDeferredOperationKHR                      deferredOperation,
17406     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
17407 
17408 VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
17409     VkDevice                                    device,
17410     uint32_t                                    micromapCount,
17411     const VkMicromapEXT*                        pMicromaps,
17412     VkQueryType                                 queryType,
17413     size_t                                      dataSize,
17414     void*                                       pData,
17415     size_t                                      stride);
17416 
17417 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
17418     VkCommandBuffer                             commandBuffer,
17419     const VkCopyMicromapInfoEXT*                pInfo);
17420 
17421 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
17422     VkCommandBuffer                             commandBuffer,
17423     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
17424 
17425 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
17426     VkCommandBuffer                             commandBuffer,
17427     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
17428 
17429 VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
17430     VkCommandBuffer                             commandBuffer,
17431     uint32_t                                    micromapCount,
17432     const VkMicromapEXT*                        pMicromaps,
17433     VkQueryType                                 queryType,
17434     VkQueryPool                                 queryPool,
17435     uint32_t                                    firstQuery);
17436 
17437 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
17438     VkDevice                                    device,
17439     const VkMicromapVersionInfoEXT*             pVersionInfo,
17440     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
17441 
17442 VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
17443     VkDevice                                    device,
17444     VkAccelerationStructureBuildTypeKHR         buildType,
17445     const VkMicromapBuildInfoEXT*               pBuildInfo,
17446     VkMicromapBuildSizesInfoEXT*                pSizeInfo);
17447 #endif
17448 
17449 
17450 // VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
17451 #define VK_EXT_load_store_op_none 1
17452 #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
17453 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
17454 
17455 
17456 // VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
17457 #define VK_HUAWEI_cluster_culling_shader 1
17458 #define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
17459 #define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
17460 typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
17461     VkStructureType    sType;
17462     void*              pNext;
17463     VkBool32           clustercullingShader;
17464     VkBool32           multiviewClusterCullingShader;
17465 } VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
17466 
17467 typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
17468     VkStructureType    sType;
17469     void*              pNext;
17470     uint32_t           maxWorkGroupCount[3];
17471     uint32_t           maxWorkGroupSize[3];
17472     uint32_t           maxOutputClusterCount;
17473     VkDeviceSize       indirectBufferOffsetAlignment;
17474 } VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
17475 
17476 typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
17477     VkStructureType    sType;
17478     void*              pNext;
17479     VkBool32           clusterShadingRate;
17480 } VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
17481 
17482 typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
17483 typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
17484 
17485 #ifndef VK_NO_PROTOTYPES
17486 VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
17487     VkCommandBuffer                             commandBuffer,
17488     uint32_t                                    groupCountX,
17489     uint32_t                                    groupCountY,
17490     uint32_t                                    groupCountZ);
17491 
17492 VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
17493     VkCommandBuffer                             commandBuffer,
17494     VkBuffer                                    buffer,
17495     VkDeviceSize                                offset);
17496 #endif
17497 
17498 
17499 // VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
17500 #define VK_EXT_border_color_swizzle 1
17501 #define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
17502 #define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
17503 typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
17504     VkStructureType    sType;
17505     void*              pNext;
17506     VkBool32           borderColorSwizzle;
17507     VkBool32           borderColorSwizzleFromImage;
17508 } VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
17509 
17510 typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
17511     VkStructureType       sType;
17512     const void*           pNext;
17513     VkComponentMapping    components;
17514     VkBool32              srgb;
17515 } VkSamplerBorderColorComponentMappingCreateInfoEXT;
17516 
17517 
17518 
17519 // VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
17520 #define VK_EXT_pageable_device_local_memory 1
17521 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
17522 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
17523 typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
17524     VkStructureType    sType;
17525     void*              pNext;
17526     VkBool32           pageableDeviceLocalMemory;
17527 } VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
17528 
17529 typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice       device, VkDeviceMemory memory, float          priority);
17530 
17531 #ifndef VK_NO_PROTOTYPES
17532 VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
17533     VkDevice                                    device,
17534     VkDeviceMemory                              memory,
17535     float                                       priority);
17536 #endif
17537 
17538 
17539 // VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
17540 #define VK_ARM_shader_core_properties 1
17541 #define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
17542 #define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
17543 typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
17544     VkStructureType    sType;
17545     void*              pNext;
17546     uint32_t           pixelRate;
17547     uint32_t           texelRate;
17548     uint32_t           fmaRate;
17549 } VkPhysicalDeviceShaderCorePropertiesARM;
17550 
17551 
17552 
17553 // VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
17554 #define VK_ARM_scheduling_controls 1
17555 #define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1
17556 #define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
17557 typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
17558 
17559 // Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
17560 typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
17561 static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
17562 
17563 typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
17564     VkStructureType    sType;
17565     void*              pNext;
17566     uint32_t           shaderCoreCount;
17567 } VkDeviceQueueShaderCoreControlCreateInfoARM;
17568 
17569 typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
17570     VkStructureType    sType;
17571     void*              pNext;
17572     VkBool32           schedulingControls;
17573 } VkPhysicalDeviceSchedulingControlsFeaturesARM;
17574 
17575 typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
17576     VkStructureType                               sType;
17577     void*                                         pNext;
17578     VkPhysicalDeviceSchedulingControlsFlagsARM    schedulingControlsFlags;
17579 } VkPhysicalDeviceSchedulingControlsPropertiesARM;
17580 
17581 
17582 
17583 // VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
17584 #define VK_EXT_image_sliced_view_of_3d 1
17585 #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
17586 #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
17587 #define VK_REMAINING_3D_SLICES_EXT        (~0U)
17588 typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
17589     VkStructureType    sType;
17590     void*              pNext;
17591     VkBool32           imageSlicedViewOf3D;
17592 } VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
17593 
17594 typedef struct VkImageViewSlicedCreateInfoEXT {
17595     VkStructureType    sType;
17596     const void*        pNext;
17597     uint32_t           sliceOffset;
17598     uint32_t           sliceCount;
17599 } VkImageViewSlicedCreateInfoEXT;
17600 
17601 
17602 
17603 // VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
17604 #define VK_VALVE_descriptor_set_host_mapping 1
17605 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
17606 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
17607 typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
17608     VkStructureType    sType;
17609     void*              pNext;
17610     VkBool32           descriptorSetHostMapping;
17611 } VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
17612 
17613 typedef struct VkDescriptorSetBindingReferenceVALVE {
17614     VkStructureType          sType;
17615     const void*              pNext;
17616     VkDescriptorSetLayout    descriptorSetLayout;
17617     uint32_t                 binding;
17618 } VkDescriptorSetBindingReferenceVALVE;
17619 
17620 typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
17621     VkStructureType    sType;
17622     void*              pNext;
17623     size_t             descriptorOffset;
17624     uint32_t           descriptorSize;
17625 } VkDescriptorSetLayoutHostMappingInfoVALVE;
17626 
17627 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
17628 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
17629 
17630 #ifndef VK_NO_PROTOTYPES
17631 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
17632     VkDevice                                    device,
17633     const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
17634     VkDescriptorSetLayoutHostMappingInfoVALVE*  pHostMapping);
17635 
17636 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
17637     VkDevice                                    device,
17638     VkDescriptorSet                             descriptorSet,
17639     void**                                      ppData);
17640 #endif
17641 
17642 
17643 // VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
17644 #define VK_EXT_depth_clamp_zero_one 1
17645 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
17646 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
17647 typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT {
17648     VkStructureType    sType;
17649     void*              pNext;
17650     VkBool32           depthClampZeroOne;
17651 } VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
17652 
17653 
17654 
17655 // VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
17656 #define VK_EXT_non_seamless_cube_map 1
17657 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
17658 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
17659 typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
17660     VkStructureType    sType;
17661     void*              pNext;
17662     VkBool32           nonSeamlessCubeMap;
17663 } VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
17664 
17665 
17666 
17667 // VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
17668 #define VK_ARM_render_pass_striped 1
17669 #define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
17670 #define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
17671 typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
17672     VkStructureType    sType;
17673     void*              pNext;
17674     VkBool32           renderPassStriped;
17675 } VkPhysicalDeviceRenderPassStripedFeaturesARM;
17676 
17677 typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
17678     VkStructureType    sType;
17679     void*              pNext;
17680     VkExtent2D         renderPassStripeGranularity;
17681     uint32_t           maxRenderPassStripes;
17682 } VkPhysicalDeviceRenderPassStripedPropertiesARM;
17683 
17684 typedef struct VkRenderPassStripeInfoARM {
17685     VkStructureType    sType;
17686     const void*        pNext;
17687     VkRect2D           stripeArea;
17688 } VkRenderPassStripeInfoARM;
17689 
17690 typedef struct VkRenderPassStripeBeginInfoARM {
17691     VkStructureType                     sType;
17692     const void*                         pNext;
17693     uint32_t                            stripeInfoCount;
17694     const VkRenderPassStripeInfoARM*    pStripeInfos;
17695 } VkRenderPassStripeBeginInfoARM;
17696 
17697 typedef struct VkRenderPassStripeSubmitInfoARM {
17698     VkStructureType                 sType;
17699     const void*                     pNext;
17700     uint32_t                        stripeSemaphoreInfoCount;
17701     const VkSemaphoreSubmitInfo*    pStripeSemaphoreInfos;
17702 } VkRenderPassStripeSubmitInfoARM;
17703 
17704 
17705 
17706 // VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
17707 #define VK_QCOM_fragment_density_map_offset 1
17708 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
17709 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
17710 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
17711     VkStructureType    sType;
17712     void*              pNext;
17713     VkBool32           fragmentDensityMapOffset;
17714 } VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
17715 
17716 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
17717     VkStructureType    sType;
17718     void*              pNext;
17719     VkExtent2D         fragmentDensityOffsetGranularity;
17720 } VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
17721 
17722 typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM {
17723     VkStructureType      sType;
17724     const void*          pNext;
17725     uint32_t             fragmentDensityOffsetCount;
17726     const VkOffset2D*    pFragmentDensityOffsets;
17727 } VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
17728 
17729 
17730 
17731 // VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
17732 #define VK_NV_copy_memory_indirect 1
17733 #define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
17734 #define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
17735 typedef struct VkCopyMemoryIndirectCommandNV {
17736     VkDeviceAddress    srcAddress;
17737     VkDeviceAddress    dstAddress;
17738     VkDeviceSize       size;
17739 } VkCopyMemoryIndirectCommandNV;
17740 
17741 typedef struct VkCopyMemoryToImageIndirectCommandNV {
17742     VkDeviceAddress             srcAddress;
17743     uint32_t                    bufferRowLength;
17744     uint32_t                    bufferImageHeight;
17745     VkImageSubresourceLayers    imageSubresource;
17746     VkOffset3D                  imageOffset;
17747     VkExtent3D                  imageExtent;
17748 } VkCopyMemoryToImageIndirectCommandNV;
17749 
17750 typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
17751     VkStructureType    sType;
17752     void*              pNext;
17753     VkBool32           indirectCopy;
17754 } VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
17755 
17756 typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV {
17757     VkStructureType    sType;
17758     void*              pNext;
17759     VkQueueFlags       supportedQueues;
17760 } VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
17761 
17762 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
17763 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
17764 
17765 #ifndef VK_NO_PROTOTYPES
17766 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
17767     VkCommandBuffer                             commandBuffer,
17768     VkDeviceAddress                             copyBufferAddress,
17769     uint32_t                                    copyCount,
17770     uint32_t                                    stride);
17771 
17772 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
17773     VkCommandBuffer                             commandBuffer,
17774     VkDeviceAddress                             copyBufferAddress,
17775     uint32_t                                    copyCount,
17776     uint32_t                                    stride,
17777     VkImage                                     dstImage,
17778     VkImageLayout                               dstImageLayout,
17779     const VkImageSubresourceLayers*             pImageSubresources);
17780 #endif
17781 
17782 
17783 // VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
17784 #define VK_NV_memory_decompression 1
17785 #define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
17786 #define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
17787 
17788 // Flag bits for VkMemoryDecompressionMethodFlagBitsNV
17789 typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsNV;
17790 static const VkMemoryDecompressionMethodFlagBitsNV VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
17791 
17792 typedef VkFlags64 VkMemoryDecompressionMethodFlagsNV;
17793 typedef struct VkDecompressMemoryRegionNV {
17794     VkDeviceAddress                       srcAddress;
17795     VkDeviceAddress                       dstAddress;
17796     VkDeviceSize                          compressedSize;
17797     VkDeviceSize                          decompressedSize;
17798     VkMemoryDecompressionMethodFlagsNV    decompressionMethod;
17799 } VkDecompressMemoryRegionNV;
17800 
17801 typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV {
17802     VkStructureType    sType;
17803     void*              pNext;
17804     VkBool32           memoryDecompression;
17805 } VkPhysicalDeviceMemoryDecompressionFeaturesNV;
17806 
17807 typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV {
17808     VkStructureType                       sType;
17809     void*                                 pNext;
17810     VkMemoryDecompressionMethodFlagsNV    decompressionMethods;
17811     uint64_t                              maxDecompressionIndirectCount;
17812 } VkPhysicalDeviceMemoryDecompressionPropertiesNV;
17813 
17814 typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
17815 typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
17816 
17817 #ifndef VK_NO_PROTOTYPES
17818 VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
17819     VkCommandBuffer                             commandBuffer,
17820     uint32_t                                    decompressRegionCount,
17821     const VkDecompressMemoryRegionNV*           pDecompressMemoryRegions);
17822 
17823 VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
17824     VkCommandBuffer                             commandBuffer,
17825     VkDeviceAddress                             indirectCommandsAddress,
17826     VkDeviceAddress                             indirectCommandsCountAddress,
17827     uint32_t                                    stride);
17828 #endif
17829 
17830 
17831 // VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
17832 #define VK_NV_device_generated_commands_compute 1
17833 #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
17834 #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
17835 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
17836     VkStructureType    sType;
17837     void*              pNext;
17838     VkBool32           deviceGeneratedCompute;
17839     VkBool32           deviceGeneratedComputePipelines;
17840     VkBool32           deviceGeneratedComputeCaptureReplay;
17841 } VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
17842 
17843 typedef struct VkComputePipelineIndirectBufferInfoNV {
17844     VkStructureType    sType;
17845     const void*        pNext;
17846     VkDeviceAddress    deviceAddress;
17847     VkDeviceSize       size;
17848     VkDeviceAddress    pipelineDeviceAddressCaptureReplay;
17849 } VkComputePipelineIndirectBufferInfoNV;
17850 
17851 typedef struct VkPipelineIndirectDeviceAddressInfoNV {
17852     VkStructureType        sType;
17853     const void*            pNext;
17854     VkPipelineBindPoint    pipelineBindPoint;
17855     VkPipeline             pipeline;
17856 } VkPipelineIndirectDeviceAddressInfoNV;
17857 
17858 typedef struct VkBindPipelineIndirectCommandNV {
17859     VkDeviceAddress    pipelineAddress;
17860 } VkBindPipelineIndirectCommandNV;
17861 
17862 typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
17863 typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint           pipelineBindPoint, VkPipeline                    pipeline);
17864 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
17865 
17866 #ifndef VK_NO_PROTOTYPES
17867 VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
17868     VkDevice                                    device,
17869     const VkComputePipelineCreateInfo*          pCreateInfo,
17870     VkMemoryRequirements2*                      pMemoryRequirements);
17871 
17872 VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
17873     VkCommandBuffer                             commandBuffer,
17874     VkPipelineBindPoint                         pipelineBindPoint,
17875     VkPipeline                                  pipeline);
17876 
17877 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
17878     VkDevice                                    device,
17879     const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
17880 #endif
17881 
17882 
17883 // VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
17884 #define VK_NV_linear_color_attachment 1
17885 #define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
17886 #define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
17887 typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
17888     VkStructureType    sType;
17889     void*              pNext;
17890     VkBool32           linearColorAttachment;
17891 } VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
17892 
17893 
17894 
17895 // VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
17896 #define VK_GOOGLE_surfaceless_query 1
17897 #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
17898 #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
17899 
17900 
17901 // VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
17902 #define VK_EXT_image_compression_control_swapchain 1
17903 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
17904 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
17905 typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
17906     VkStructureType    sType;
17907     void*              pNext;
17908     VkBool32           imageCompressionControlSwapchain;
17909 } VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
17910 
17911 
17912 
17913 // VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
17914 #define VK_QCOM_image_processing 1
17915 #define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
17916 #define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
17917 typedef struct VkImageViewSampleWeightCreateInfoQCOM {
17918     VkStructureType    sType;
17919     const void*        pNext;
17920     VkOffset2D         filterCenter;
17921     VkExtent2D         filterSize;
17922     uint32_t           numPhases;
17923 } VkImageViewSampleWeightCreateInfoQCOM;
17924 
17925 typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
17926     VkStructureType    sType;
17927     void*              pNext;
17928     VkBool32           textureSampleWeighted;
17929     VkBool32           textureBoxFilter;
17930     VkBool32           textureBlockMatch;
17931 } VkPhysicalDeviceImageProcessingFeaturesQCOM;
17932 
17933 typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
17934     VkStructureType    sType;
17935     void*              pNext;
17936     uint32_t           maxWeightFilterPhases;
17937     VkExtent2D         maxWeightFilterDimension;
17938     VkExtent2D         maxBlockMatchRegion;
17939     VkExtent2D         maxBoxFilterBlockSize;
17940 } VkPhysicalDeviceImageProcessingPropertiesQCOM;
17941 
17942 
17943 
17944 // VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
17945 #define VK_EXT_nested_command_buffer 1
17946 #define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
17947 #define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
17948 typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
17949     VkStructureType    sType;
17950     void*              pNext;
17951     VkBool32           nestedCommandBuffer;
17952     VkBool32           nestedCommandBufferRendering;
17953     VkBool32           nestedCommandBufferSimultaneousUse;
17954 } VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
17955 
17956 typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
17957     VkStructureType    sType;
17958     void*              pNext;
17959     uint32_t           maxCommandBufferNestingLevel;
17960 } VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
17961 
17962 
17963 
17964 // VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
17965 #define VK_EXT_external_memory_acquire_unmodified 1
17966 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
17967 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
17968 typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
17969     VkStructureType    sType;
17970     const void*        pNext;
17971     VkBool32           acquireUnmodifiedMemory;
17972 } VkExternalMemoryAcquireUnmodifiedEXT;
17973 
17974 
17975 
17976 // VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
17977 #define VK_EXT_extended_dynamic_state3 1
17978 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
17979 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
17980 typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
17981     VkStructureType    sType;
17982     void*              pNext;
17983     VkBool32           extendedDynamicState3TessellationDomainOrigin;
17984     VkBool32           extendedDynamicState3DepthClampEnable;
17985     VkBool32           extendedDynamicState3PolygonMode;
17986     VkBool32           extendedDynamicState3RasterizationSamples;
17987     VkBool32           extendedDynamicState3SampleMask;
17988     VkBool32           extendedDynamicState3AlphaToCoverageEnable;
17989     VkBool32           extendedDynamicState3AlphaToOneEnable;
17990     VkBool32           extendedDynamicState3LogicOpEnable;
17991     VkBool32           extendedDynamicState3ColorBlendEnable;
17992     VkBool32           extendedDynamicState3ColorBlendEquation;
17993     VkBool32           extendedDynamicState3ColorWriteMask;
17994     VkBool32           extendedDynamicState3RasterizationStream;
17995     VkBool32           extendedDynamicState3ConservativeRasterizationMode;
17996     VkBool32           extendedDynamicState3ExtraPrimitiveOverestimationSize;
17997     VkBool32           extendedDynamicState3DepthClipEnable;
17998     VkBool32           extendedDynamicState3SampleLocationsEnable;
17999     VkBool32           extendedDynamicState3ColorBlendAdvanced;
18000     VkBool32           extendedDynamicState3ProvokingVertexMode;
18001     VkBool32           extendedDynamicState3LineRasterizationMode;
18002     VkBool32           extendedDynamicState3LineStippleEnable;
18003     VkBool32           extendedDynamicState3DepthClipNegativeOneToOne;
18004     VkBool32           extendedDynamicState3ViewportWScalingEnable;
18005     VkBool32           extendedDynamicState3ViewportSwizzle;
18006     VkBool32           extendedDynamicState3CoverageToColorEnable;
18007     VkBool32           extendedDynamicState3CoverageToColorLocation;
18008     VkBool32           extendedDynamicState3CoverageModulationMode;
18009     VkBool32           extendedDynamicState3CoverageModulationTableEnable;
18010     VkBool32           extendedDynamicState3CoverageModulationTable;
18011     VkBool32           extendedDynamicState3CoverageReductionMode;
18012     VkBool32           extendedDynamicState3RepresentativeFragmentTestEnable;
18013     VkBool32           extendedDynamicState3ShadingRateImageEnable;
18014 } VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
18015 
18016 typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
18017     VkStructureType    sType;
18018     void*              pNext;
18019     VkBool32           dynamicPrimitiveTopologyUnrestricted;
18020 } VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
18021 
18022 typedef struct VkColorBlendEquationEXT {
18023     VkBlendFactor    srcColorBlendFactor;
18024     VkBlendFactor    dstColorBlendFactor;
18025     VkBlendOp        colorBlendOp;
18026     VkBlendFactor    srcAlphaBlendFactor;
18027     VkBlendFactor    dstAlphaBlendFactor;
18028     VkBlendOp        alphaBlendOp;
18029 } VkColorBlendEquationEXT;
18030 
18031 typedef struct VkColorBlendAdvancedEXT {
18032     VkBlendOp            advancedBlendOp;
18033     VkBool32             srcPremultiplied;
18034     VkBool32             dstPremultiplied;
18035     VkBlendOverlapEXT    blendOverlap;
18036     VkBool32             clampResults;
18037 } VkColorBlendAdvancedEXT;
18038 
18039 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
18040 typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
18041 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  rasterizationSamples);
18042 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  samples, const VkSampleMask*    pSampleMask);
18043 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
18044 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
18045 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
18046 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
18047 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
18048 typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
18049 typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
18050 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
18051 typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
18052 typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
18053 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
18054 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
18055 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
18056 typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
18057 typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
18058 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
18059 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
18060 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
18061 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
18062 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
18063 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
18064 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
18065 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
18066 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
18067 typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
18068 typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
18069 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
18070 
18071 #ifndef VK_NO_PROTOTYPES
18072 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
18073     VkCommandBuffer                             commandBuffer,
18074     VkBool32                                    depthClampEnable);
18075 
18076 VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
18077     VkCommandBuffer                             commandBuffer,
18078     VkPolygonMode                               polygonMode);
18079 
18080 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
18081     VkCommandBuffer                             commandBuffer,
18082     VkSampleCountFlagBits                       rasterizationSamples);
18083 
18084 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
18085     VkCommandBuffer                             commandBuffer,
18086     VkSampleCountFlagBits                       samples,
18087     const VkSampleMask*                         pSampleMask);
18088 
18089 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
18090     VkCommandBuffer                             commandBuffer,
18091     VkBool32                                    alphaToCoverageEnable);
18092 
18093 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
18094     VkCommandBuffer                             commandBuffer,
18095     VkBool32                                    alphaToOneEnable);
18096 
18097 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
18098     VkCommandBuffer                             commandBuffer,
18099     VkBool32                                    logicOpEnable);
18100 
18101 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
18102     VkCommandBuffer                             commandBuffer,
18103     uint32_t                                    firstAttachment,
18104     uint32_t                                    attachmentCount,
18105     const VkBool32*                             pColorBlendEnables);
18106 
18107 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
18108     VkCommandBuffer                             commandBuffer,
18109     uint32_t                                    firstAttachment,
18110     uint32_t                                    attachmentCount,
18111     const VkColorBlendEquationEXT*              pColorBlendEquations);
18112 
18113 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
18114     VkCommandBuffer                             commandBuffer,
18115     uint32_t                                    firstAttachment,
18116     uint32_t                                    attachmentCount,
18117     const VkColorComponentFlags*                pColorWriteMasks);
18118 
18119 VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
18120     VkCommandBuffer                             commandBuffer,
18121     VkTessellationDomainOrigin                  domainOrigin);
18122 
18123 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
18124     VkCommandBuffer                             commandBuffer,
18125     uint32_t                                    rasterizationStream);
18126 
18127 VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
18128     VkCommandBuffer                             commandBuffer,
18129     VkConservativeRasterizationModeEXT          conservativeRasterizationMode);
18130 
18131 VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
18132     VkCommandBuffer                             commandBuffer,
18133     float                                       extraPrimitiveOverestimationSize);
18134 
18135 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
18136     VkCommandBuffer                             commandBuffer,
18137     VkBool32                                    depthClipEnable);
18138 
18139 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
18140     VkCommandBuffer                             commandBuffer,
18141     VkBool32                                    sampleLocationsEnable);
18142 
18143 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
18144     VkCommandBuffer                             commandBuffer,
18145     uint32_t                                    firstAttachment,
18146     uint32_t                                    attachmentCount,
18147     const VkColorBlendAdvancedEXT*              pColorBlendAdvanced);
18148 
18149 VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
18150     VkCommandBuffer                             commandBuffer,
18151     VkProvokingVertexModeEXT                    provokingVertexMode);
18152 
18153 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
18154     VkCommandBuffer                             commandBuffer,
18155     VkLineRasterizationModeEXT                  lineRasterizationMode);
18156 
18157 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
18158     VkCommandBuffer                             commandBuffer,
18159     VkBool32                                    stippledLineEnable);
18160 
18161 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
18162     VkCommandBuffer                             commandBuffer,
18163     VkBool32                                    negativeOneToOne);
18164 
18165 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
18166     VkCommandBuffer                             commandBuffer,
18167     VkBool32                                    viewportWScalingEnable);
18168 
18169 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
18170     VkCommandBuffer                             commandBuffer,
18171     uint32_t                                    firstViewport,
18172     uint32_t                                    viewportCount,
18173     const VkViewportSwizzleNV*                  pViewportSwizzles);
18174 
18175 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
18176     VkCommandBuffer                             commandBuffer,
18177     VkBool32                                    coverageToColorEnable);
18178 
18179 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
18180     VkCommandBuffer                             commandBuffer,
18181     uint32_t                                    coverageToColorLocation);
18182 
18183 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
18184     VkCommandBuffer                             commandBuffer,
18185     VkCoverageModulationModeNV                  coverageModulationMode);
18186 
18187 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
18188     VkCommandBuffer                             commandBuffer,
18189     VkBool32                                    coverageModulationTableEnable);
18190 
18191 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
18192     VkCommandBuffer                             commandBuffer,
18193     uint32_t                                    coverageModulationTableCount,
18194     const float*                                pCoverageModulationTable);
18195 
18196 VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
18197     VkCommandBuffer                             commandBuffer,
18198     VkBool32                                    shadingRateImageEnable);
18199 
18200 VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
18201     VkCommandBuffer                             commandBuffer,
18202     VkBool32                                    representativeFragmentTestEnable);
18203 
18204 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
18205     VkCommandBuffer                             commandBuffer,
18206     VkCoverageReductionModeNV                   coverageReductionMode);
18207 #endif
18208 
18209 
18210 // VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
18211 #define VK_EXT_subpass_merge_feedback 1
18212 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
18213 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
18214 
18215 typedef enum VkSubpassMergeStatusEXT {
18216     VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
18217     VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
18218     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
18219     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
18220     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
18221     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
18222     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
18223     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
18224     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
18225     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
18226     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
18227     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
18228     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
18229     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
18230     VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
18231 } VkSubpassMergeStatusEXT;
18232 typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
18233     VkStructureType    sType;
18234     void*              pNext;
18235     VkBool32           subpassMergeFeedback;
18236 } VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
18237 
18238 typedef struct VkRenderPassCreationControlEXT {
18239     VkStructureType    sType;
18240     const void*        pNext;
18241     VkBool32           disallowMerging;
18242 } VkRenderPassCreationControlEXT;
18243 
18244 typedef struct VkRenderPassCreationFeedbackInfoEXT {
18245     uint32_t    postMergeSubpassCount;
18246 } VkRenderPassCreationFeedbackInfoEXT;
18247 
18248 typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
18249     VkStructureType                         sType;
18250     const void*                             pNext;
18251     VkRenderPassCreationFeedbackInfoEXT*    pRenderPassFeedback;
18252 } VkRenderPassCreationFeedbackCreateInfoEXT;
18253 
18254 typedef struct VkRenderPassSubpassFeedbackInfoEXT {
18255     VkSubpassMergeStatusEXT    subpassMergeStatus;
18256     char                       description[VK_MAX_DESCRIPTION_SIZE];
18257     uint32_t                   postMergeIndex;
18258 } VkRenderPassSubpassFeedbackInfoEXT;
18259 
18260 typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
18261     VkStructureType                        sType;
18262     const void*                            pNext;
18263     VkRenderPassSubpassFeedbackInfoEXT*    pSubpassFeedback;
18264 } VkRenderPassSubpassFeedbackCreateInfoEXT;
18265 
18266 
18267 
18268 // VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
18269 #define VK_LUNARG_direct_driver_loading 1
18270 #define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
18271 #define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
18272 
18273 typedef enum VkDirectDriverLoadingModeLUNARG {
18274     VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
18275     VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
18276     VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
18277 } VkDirectDriverLoadingModeLUNARG;
18278 typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
18279 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
18280     VkInstance instance, const char* pName);
18281 
18282 typedef struct VkDirectDriverLoadingInfoLUNARG {
18283     VkStructureType                     sType;
18284     void*                               pNext;
18285     VkDirectDriverLoadingFlagsLUNARG    flags;
18286     PFN_vkGetInstanceProcAddrLUNARG     pfnGetInstanceProcAddr;
18287 } VkDirectDriverLoadingInfoLUNARG;
18288 
18289 typedef struct VkDirectDriverLoadingListLUNARG {
18290     VkStructureType                           sType;
18291     const void*                               pNext;
18292     VkDirectDriverLoadingModeLUNARG           mode;
18293     uint32_t                                  driverCount;
18294     const VkDirectDriverLoadingInfoLUNARG*    pDrivers;
18295 } VkDirectDriverLoadingListLUNARG;
18296 
18297 
18298 
18299 // VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
18300 #define VK_EXT_shader_module_identifier 1
18301 #define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
18302 #define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
18303 #define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
18304 typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
18305     VkStructureType    sType;
18306     void*              pNext;
18307     VkBool32           shaderModuleIdentifier;
18308 } VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
18309 
18310 typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
18311     VkStructureType    sType;
18312     void*              pNext;
18313     uint8_t            shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
18314 } VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
18315 
18316 typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
18317     VkStructureType    sType;
18318     const void*        pNext;
18319     uint32_t           identifierSize;
18320     const uint8_t*     pIdentifier;
18321 } VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
18322 
18323 typedef struct VkShaderModuleIdentifierEXT {
18324     VkStructureType    sType;
18325     void*              pNext;
18326     uint32_t           identifierSize;
18327     uint8_t            identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
18328 } VkShaderModuleIdentifierEXT;
18329 
18330 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
18331 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
18332 
18333 #ifndef VK_NO_PROTOTYPES
18334 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
18335     VkDevice                                    device,
18336     VkShaderModule                              shaderModule,
18337     VkShaderModuleIdentifierEXT*                pIdentifier);
18338 
18339 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
18340     VkDevice                                    device,
18341     const VkShaderModuleCreateInfo*             pCreateInfo,
18342     VkShaderModuleIdentifierEXT*                pIdentifier);
18343 #endif
18344 
18345 
18346 // VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
18347 #define VK_EXT_rasterization_order_attachment_access 1
18348 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
18349 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
18350 
18351 
18352 // VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
18353 #define VK_NV_optical_flow 1
18354 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
18355 #define VK_NV_OPTICAL_FLOW_SPEC_VERSION   1
18356 #define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
18357 
18358 typedef enum VkOpticalFlowPerformanceLevelNV {
18359     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
18360     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
18361     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
18362     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
18363     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
18364 } VkOpticalFlowPerformanceLevelNV;
18365 
18366 typedef enum VkOpticalFlowSessionBindingPointNV {
18367     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
18368     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
18369     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
18370     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
18371     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
18372     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
18373     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
18374     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
18375     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
18376     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
18377 } VkOpticalFlowSessionBindingPointNV;
18378 
18379 typedef enum VkOpticalFlowGridSizeFlagBitsNV {
18380     VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
18381     VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
18382     VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
18383     VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
18384     VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
18385     VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18386 } VkOpticalFlowGridSizeFlagBitsNV;
18387 typedef VkFlags   VkOpticalFlowGridSizeFlagsNV;
18388 
18389 typedef enum VkOpticalFlowUsageFlagBitsNV {
18390     VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
18391     VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
18392     VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
18393     VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
18394     VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
18395     VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
18396     VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18397 } VkOpticalFlowUsageFlagBitsNV;
18398 typedef VkFlags   VkOpticalFlowUsageFlagsNV;
18399 
18400 typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
18401     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
18402     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
18403     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
18404     VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
18405     VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
18406     VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18407 } VkOpticalFlowSessionCreateFlagBitsNV;
18408 typedef VkFlags   VkOpticalFlowSessionCreateFlagsNV;
18409 
18410 typedef enum VkOpticalFlowExecuteFlagBitsNV {
18411     VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
18412     VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18413 } VkOpticalFlowExecuteFlagBitsNV;
18414 typedef VkFlags   VkOpticalFlowExecuteFlagsNV;
18415 typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
18416     VkStructureType    sType;
18417     void*              pNext;
18418     VkBool32           opticalFlow;
18419 } VkPhysicalDeviceOpticalFlowFeaturesNV;
18420 
18421 typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
18422     VkStructureType                 sType;
18423     void*                           pNext;
18424     VkOpticalFlowGridSizeFlagsNV    supportedOutputGridSizes;
18425     VkOpticalFlowGridSizeFlagsNV    supportedHintGridSizes;
18426     VkBool32                        hintSupported;
18427     VkBool32                        costSupported;
18428     VkBool32                        bidirectionalFlowSupported;
18429     VkBool32                        globalFlowSupported;
18430     uint32_t                        minWidth;
18431     uint32_t                        minHeight;
18432     uint32_t                        maxWidth;
18433     uint32_t                        maxHeight;
18434     uint32_t                        maxNumRegionsOfInterest;
18435 } VkPhysicalDeviceOpticalFlowPropertiesNV;
18436 
18437 typedef struct VkOpticalFlowImageFormatInfoNV {
18438     VkStructureType              sType;
18439     const void*                  pNext;
18440     VkOpticalFlowUsageFlagsNV    usage;
18441 } VkOpticalFlowImageFormatInfoNV;
18442 
18443 typedef struct VkOpticalFlowImageFormatPropertiesNV {
18444     VkStructureType    sType;
18445     const void*        pNext;
18446     VkFormat           format;
18447 } VkOpticalFlowImageFormatPropertiesNV;
18448 
18449 typedef struct VkOpticalFlowSessionCreateInfoNV {
18450     VkStructureType                      sType;
18451     void*                                pNext;
18452     uint32_t                             width;
18453     uint32_t                             height;
18454     VkFormat                             imageFormat;
18455     VkFormat                             flowVectorFormat;
18456     VkFormat                             costFormat;
18457     VkOpticalFlowGridSizeFlagsNV         outputGridSize;
18458     VkOpticalFlowGridSizeFlagsNV         hintGridSize;
18459     VkOpticalFlowPerformanceLevelNV      performanceLevel;
18460     VkOpticalFlowSessionCreateFlagsNV    flags;
18461 } VkOpticalFlowSessionCreateInfoNV;
18462 
18463 typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
18464     VkStructureType    sType;
18465     void*              pNext;
18466     uint32_t           id;
18467     uint32_t           size;
18468     const void*        pPrivateData;
18469 } VkOpticalFlowSessionCreatePrivateDataInfoNV;
18470 
18471 typedef struct VkOpticalFlowExecuteInfoNV {
18472     VkStructureType                sType;
18473     void*                          pNext;
18474     VkOpticalFlowExecuteFlagsNV    flags;
18475     uint32_t                       regionCount;
18476     const VkRect2D*                pRegions;
18477 } VkOpticalFlowExecuteInfoNV;
18478 
18479 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
18480 typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
18481 typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
18482 typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
18483 typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
18484 
18485 #ifndef VK_NO_PROTOTYPES
18486 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
18487     VkPhysicalDevice                            physicalDevice,
18488     const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
18489     uint32_t*                                   pFormatCount,
18490     VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties);
18491 
18492 VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
18493     VkDevice                                    device,
18494     const VkOpticalFlowSessionCreateInfoNV*     pCreateInfo,
18495     const VkAllocationCallbacks*                pAllocator,
18496     VkOpticalFlowSessionNV*                     pSession);
18497 
18498 VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
18499     VkDevice                                    device,
18500     VkOpticalFlowSessionNV                      session,
18501     const VkAllocationCallbacks*                pAllocator);
18502 
18503 VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
18504     VkDevice                                    device,
18505     VkOpticalFlowSessionNV                      session,
18506     VkOpticalFlowSessionBindingPointNV          bindingPoint,
18507     VkImageView                                 view,
18508     VkImageLayout                               layout);
18509 
18510 VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
18511     VkCommandBuffer                             commandBuffer,
18512     VkOpticalFlowSessionNV                      session,
18513     const VkOpticalFlowExecuteInfoNV*           pExecuteInfo);
18514 #endif
18515 
18516 
18517 // VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
18518 #define VK_EXT_legacy_dithering 1
18519 #define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 2
18520 #define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
18521 typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
18522     VkStructureType    sType;
18523     void*              pNext;
18524     VkBool32           legacyDithering;
18525 } VkPhysicalDeviceLegacyDitheringFeaturesEXT;
18526 
18527 
18528 
18529 // VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
18530 #define VK_EXT_pipeline_protected_access 1
18531 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
18532 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
18533 typedef struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT {
18534     VkStructureType    sType;
18535     void*              pNext;
18536     VkBool32           pipelineProtectedAccess;
18537 } VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
18538 
18539 
18540 
18541 // VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
18542 #define VK_EXT_shader_object 1
18543 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
18544 #define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
18545 #define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
18546 
18547 typedef enum VkShaderCodeTypeEXT {
18548     VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
18549     VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
18550     VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
18551 } VkShaderCodeTypeEXT;
18552 
18553 typedef enum VkShaderCreateFlagBitsEXT {
18554     VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
18555     VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
18556     VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
18557     VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
18558     VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
18559     VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
18560     VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
18561     VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18562 } VkShaderCreateFlagBitsEXT;
18563 typedef VkFlags VkShaderCreateFlagsEXT;
18564 typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
18565     VkStructureType    sType;
18566     void*              pNext;
18567     VkBool32           shaderObject;
18568 } VkPhysicalDeviceShaderObjectFeaturesEXT;
18569 
18570 typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
18571     VkStructureType    sType;
18572     void*              pNext;
18573     uint8_t            shaderBinaryUUID[VK_UUID_SIZE];
18574     uint32_t           shaderBinaryVersion;
18575 } VkPhysicalDeviceShaderObjectPropertiesEXT;
18576 
18577 typedef struct VkShaderCreateInfoEXT {
18578     VkStructureType                 sType;
18579     const void*                     pNext;
18580     VkShaderCreateFlagsEXT          flags;
18581     VkShaderStageFlagBits           stage;
18582     VkShaderStageFlags              nextStage;
18583     VkShaderCodeTypeEXT             codeType;
18584     size_t                          codeSize;
18585     const void*                     pCode;
18586     const char*                     pName;
18587     uint32_t                        setLayoutCount;
18588     const VkDescriptorSetLayout*    pSetLayouts;
18589     uint32_t                        pushConstantRangeCount;
18590     const VkPushConstantRange*      pPushConstantRanges;
18591     const VkSpecializationInfo*     pSpecializationInfo;
18592 } VkShaderCreateInfoEXT;
18593 
18594 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
18595 
18596 typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
18597 typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
18598 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
18599 typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
18600 
18601 #ifndef VK_NO_PROTOTYPES
18602 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
18603     VkDevice                                    device,
18604     uint32_t                                    createInfoCount,
18605     const VkShaderCreateInfoEXT*                pCreateInfos,
18606     const VkAllocationCallbacks*                pAllocator,
18607     VkShaderEXT*                                pShaders);
18608 
18609 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
18610     VkDevice                                    device,
18611     VkShaderEXT                                 shader,
18612     const VkAllocationCallbacks*                pAllocator);
18613 
18614 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
18615     VkDevice                                    device,
18616     VkShaderEXT                                 shader,
18617     size_t*                                     pDataSize,
18618     void*                                       pData);
18619 
18620 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
18621     VkCommandBuffer                             commandBuffer,
18622     uint32_t                                    stageCount,
18623     const VkShaderStageFlagBits*                pStages,
18624     const VkShaderEXT*                          pShaders);
18625 #endif
18626 
18627 
18628 // VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
18629 #define VK_QCOM_tile_properties 1
18630 #define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
18631 #define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
18632 typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
18633     VkStructureType    sType;
18634     void*              pNext;
18635     VkBool32           tileProperties;
18636 } VkPhysicalDeviceTilePropertiesFeaturesQCOM;
18637 
18638 typedef struct VkTilePropertiesQCOM {
18639     VkStructureType    sType;
18640     void*              pNext;
18641     VkExtent3D         tileSize;
18642     VkExtent2D         apronSize;
18643     VkOffset2D         origin;
18644 } VkTilePropertiesQCOM;
18645 
18646 typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
18647 typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
18648 
18649 #ifndef VK_NO_PROTOTYPES
18650 VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
18651     VkDevice                                    device,
18652     VkFramebuffer                               framebuffer,
18653     uint32_t*                                   pPropertiesCount,
18654     VkTilePropertiesQCOM*                       pProperties);
18655 
18656 VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
18657     VkDevice                                    device,
18658     const VkRenderingInfo*                      pRenderingInfo,
18659     VkTilePropertiesQCOM*                       pProperties);
18660 #endif
18661 
18662 
18663 // VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
18664 #define VK_SEC_amigo_profiling 1
18665 #define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
18666 #define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
18667 typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
18668     VkStructureType    sType;
18669     void*              pNext;
18670     VkBool32           amigoProfiling;
18671 } VkPhysicalDeviceAmigoProfilingFeaturesSEC;
18672 
18673 typedef struct VkAmigoProfilingSubmitInfoSEC {
18674     VkStructureType    sType;
18675     const void*        pNext;
18676     uint64_t           firstDrawTimestamp;
18677     uint64_t           swapBufferTimestamp;
18678 } VkAmigoProfilingSubmitInfoSEC;
18679 
18680 
18681 
18682 // VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
18683 #define VK_QCOM_multiview_per_view_viewports 1
18684 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
18685 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
18686 typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
18687     VkStructureType    sType;
18688     void*              pNext;
18689     VkBool32           multiviewPerViewViewports;
18690 } VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
18691 
18692 
18693 
18694 // VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
18695 #define VK_NV_ray_tracing_invocation_reorder 1
18696 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
18697 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
18698 
18699 typedef enum VkRayTracingInvocationReorderModeNV {
18700     VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0,
18701     VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1,
18702     VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 0x7FFFFFFF
18703 } VkRayTracingInvocationReorderModeNV;
18704 typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
18705     VkStructureType                        sType;
18706     void*                                  pNext;
18707     VkRayTracingInvocationReorderModeNV    rayTracingInvocationReorderReorderingHint;
18708 } VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
18709 
18710 typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
18711     VkStructureType    sType;
18712     void*              pNext;
18713     VkBool32           rayTracingInvocationReorder;
18714 } VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
18715 
18716 
18717 
18718 // VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
18719 #define VK_NV_extended_sparse_address_space 1
18720 #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
18721 #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
18722 typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
18723     VkStructureType    sType;
18724     void*              pNext;
18725     VkBool32           extendedSparseAddressSpace;
18726 } VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
18727 
18728 typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
18729     VkStructureType       sType;
18730     void*                 pNext;
18731     VkDeviceSize          extendedSparseAddressSpaceSize;
18732     VkImageUsageFlags     extendedSparseImageUsageFlags;
18733     VkBufferUsageFlags    extendedSparseBufferUsageFlags;
18734 } VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
18735 
18736 
18737 
18738 // VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
18739 #define VK_EXT_mutable_descriptor_type 1
18740 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
18741 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
18742 
18743 // VK_EXT_legacy_vertex_attributes is a preprocessor guard. Do not pass it to API calls.
18744 #define VK_EXT_legacy_vertex_attributes 1
18745 #define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION 1
18746 #define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME "VK_EXT_legacy_vertex_attributes"
18747 typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT
18748 {
18749 	VkStructureType sType;
18750 	void *pNext;
18751 	VkBool32 legacyVertexAttributes;
18752 } VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
18753 
18754 typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT
18755 {
18756 	VkStructureType sType;
18757 	void *pNext;
18758 	VkBool32 nativeUnalignedPerformance;
18759 } VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
18760 
18761 // VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
18762 #define VK_EXT_layer_settings 1
18763 #define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
18764 #define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
18765 
18766 typedef enum VkLayerSettingTypeEXT {
18767     VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
18768     VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
18769     VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
18770     VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
18771     VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
18772     VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
18773     VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
18774     VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
18775     VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
18776 } VkLayerSettingTypeEXT;
18777 typedef struct VkLayerSettingEXT {
18778     const char*              pLayerName;
18779     const char*              pSettingName;
18780     VkLayerSettingTypeEXT    type;
18781     uint32_t                 valueCount;
18782     const void*              pValues;
18783 } VkLayerSettingEXT;
18784 
18785 typedef struct VkLayerSettingsCreateInfoEXT {
18786     VkStructureType             sType;
18787     const void*                 pNext;
18788     uint32_t                    settingCount;
18789     const VkLayerSettingEXT*    pSettings;
18790 } VkLayerSettingsCreateInfoEXT;
18791 
18792 
18793 
18794 // VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
18795 #define VK_ARM_shader_core_builtins 1
18796 #define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
18797 #define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
18798 typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
18799     VkStructureType    sType;
18800     void*              pNext;
18801     VkBool32           shaderCoreBuiltins;
18802 } VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
18803 
18804 typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
18805     VkStructureType    sType;
18806     void*              pNext;
18807     uint64_t           shaderCoreMask;
18808     uint32_t           shaderCoreCount;
18809     uint32_t           shaderWarpsPerCore;
18810 } VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
18811 
18812 
18813 
18814 // VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
18815 #define VK_EXT_pipeline_library_group_handles 1
18816 #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
18817 #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
18818 typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
18819     VkStructureType    sType;
18820     void*              pNext;
18821     VkBool32           pipelineLibraryGroupHandles;
18822 } VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
18823 
18824 
18825 
18826 // VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
18827 #define VK_EXT_dynamic_rendering_unused_attachments 1
18828 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
18829 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
18830 typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
18831     VkStructureType    sType;
18832     void*              pNext;
18833     VkBool32           dynamicRenderingUnusedAttachments;
18834 } VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
18835 
18836 
18837 
18838 // VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
18839 #define VK_NV_low_latency2 1
18840 #define VK_NV_LOW_LATENCY_2_SPEC_VERSION  2
18841 #define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
18842 
18843 typedef enum VkLatencyMarkerNV {
18844     VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
18845     VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
18846     VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
18847     VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
18848     VK_LATENCY_MARKER_PRESENT_START_NV = 4,
18849     VK_LATENCY_MARKER_PRESENT_END_NV = 5,
18850     VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
18851     VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
18852     VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
18853     VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
18854     VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
18855     VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
18856     VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
18857 } VkLatencyMarkerNV;
18858 
18859 typedef enum VkOutOfBandQueueTypeNV {
18860     VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
18861     VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
18862     VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
18863 } VkOutOfBandQueueTypeNV;
18864 typedef struct VkLatencySleepModeInfoNV {
18865     VkStructureType    sType;
18866     const void*        pNext;
18867     VkBool32           lowLatencyMode;
18868     VkBool32           lowLatencyBoost;
18869     uint32_t           minimumIntervalUs;
18870 } VkLatencySleepModeInfoNV;
18871 
18872 typedef struct VkLatencySleepInfoNV {
18873     VkStructureType    sType;
18874     const void*        pNext;
18875     VkSemaphore        signalSemaphore;
18876     uint64_t           value;
18877 } VkLatencySleepInfoNV;
18878 
18879 typedef struct VkSetLatencyMarkerInfoNV {
18880     VkStructureType      sType;
18881     const void*          pNext;
18882     uint64_t             presentID;
18883     VkLatencyMarkerNV    marker;
18884 } VkSetLatencyMarkerInfoNV;
18885 
18886 typedef struct VkLatencyTimingsFrameReportNV {
18887     VkStructureType    sType;
18888     const void*        pNext;
18889     uint64_t           presentID;
18890     uint64_t           inputSampleTimeUs;
18891     uint64_t           simStartTimeUs;
18892     uint64_t           simEndTimeUs;
18893     uint64_t           renderSubmitStartTimeUs;
18894     uint64_t           renderSubmitEndTimeUs;
18895     uint64_t           presentStartTimeUs;
18896     uint64_t           presentEndTimeUs;
18897     uint64_t           driverStartTimeUs;
18898     uint64_t           driverEndTimeUs;
18899     uint64_t           osRenderQueueStartTimeUs;
18900     uint64_t           osRenderQueueEndTimeUs;
18901     uint64_t           gpuRenderStartTimeUs;
18902     uint64_t           gpuRenderEndTimeUs;
18903 } VkLatencyTimingsFrameReportNV;
18904 
18905 typedef struct VkGetLatencyMarkerInfoNV {
18906     VkStructureType                   sType;
18907     const void*                       pNext;
18908     uint32_t                          timingCount;
18909     VkLatencyTimingsFrameReportNV*    pTimings;
18910 } VkGetLatencyMarkerInfoNV;
18911 
18912 typedef struct VkLatencySubmissionPresentIdNV {
18913     VkStructureType    sType;
18914     const void*        pNext;
18915     uint64_t           presentID;
18916 } VkLatencySubmissionPresentIdNV;
18917 
18918 typedef struct VkSwapchainLatencyCreateInfoNV {
18919     VkStructureType    sType;
18920     const void*        pNext;
18921     VkBool32           latencyModeEnable;
18922 } VkSwapchainLatencyCreateInfoNV;
18923 
18924 typedef struct VkOutOfBandQueueTypeInfoNV {
18925     VkStructureType           sType;
18926     const void*               pNext;
18927     VkOutOfBandQueueTypeNV    queueType;
18928 } VkOutOfBandQueueTypeInfoNV;
18929 
18930 typedef struct VkLatencySurfaceCapabilitiesNV {
18931     VkStructureType      sType;
18932     const void*          pNext;
18933     uint32_t             presentModeCount;
18934     VkPresentModeKHR*    pPresentModes;
18935 } VkLatencySurfaceCapabilitiesNV;
18936 
18937 typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
18938 typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
18939 typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
18940 typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
18941 typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
18942 
18943 #ifndef VK_NO_PROTOTYPES
18944 VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
18945     VkDevice                                    device,
18946     VkSwapchainKHR                              swapchain,
18947     const VkLatencySleepModeInfoNV*             pSleepModeInfo);
18948 
18949 VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
18950     VkDevice                                    device,
18951     VkSwapchainKHR                              swapchain,
18952     const VkLatencySleepInfoNV*                 pSleepInfo);
18953 
18954 VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
18955     VkDevice                                    device,
18956     VkSwapchainKHR                              swapchain,
18957     const VkSetLatencyMarkerInfoNV*             pLatencyMarkerInfo);
18958 
18959 VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
18960     VkDevice                                    device,
18961     VkSwapchainKHR                              swapchain,
18962     VkGetLatencyMarkerInfoNV*                   pLatencyMarkerInfo);
18963 
18964 VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
18965     VkQueue                                     queue,
18966     const VkOutOfBandQueueTypeInfoNV*           pQueueTypeInfo);
18967 #endif
18968 
18969 
18970 // VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
18971 #define VK_QCOM_multiview_per_view_render_areas 1
18972 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
18973 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
18974 typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
18975     VkStructureType    sType;
18976     void*              pNext;
18977     VkBool32           multiviewPerViewRenderAreas;
18978 } VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
18979 
18980 typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
18981     VkStructureType    sType;
18982     const void*        pNext;
18983     uint32_t           perViewRenderAreaCount;
18984     const VkRect2D*    pPerViewRenderAreas;
18985 } VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
18986 
18987 
18988 
18989 // VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
18990 #define VK_NV_per_stage_descriptor_set 1
18991 #define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
18992 #define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
18993 typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
18994     VkStructureType    sType;
18995     void*              pNext;
18996     VkBool32           perStageDescriptorSet;
18997     VkBool32           dynamicPipelineLayout;
18998 } VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
18999 
19000 
19001 
19002 // VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
19003 #define VK_QCOM_image_processing2 1
19004 #define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
19005 #define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
19006 
19007 typedef enum VkBlockMatchWindowCompareModeQCOM {
19008     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
19009     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
19010     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
19011 } VkBlockMatchWindowCompareModeQCOM;
19012 typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
19013     VkStructureType    sType;
19014     void*              pNext;
19015     VkBool32           textureBlockMatch2;
19016 } VkPhysicalDeviceImageProcessing2FeaturesQCOM;
19017 
19018 typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
19019     VkStructureType    sType;
19020     void*              pNext;
19021     VkExtent2D         maxBlockMatchWindow;
19022 } VkPhysicalDeviceImageProcessing2PropertiesQCOM;
19023 
19024 typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
19025     VkStructureType                      sType;
19026     const void*                          pNext;
19027     VkExtent2D                           windowExtent;
19028     VkBlockMatchWindowCompareModeQCOM    windowCompareMode;
19029 } VkSamplerBlockMatchWindowCreateInfoQCOM;
19030 
19031 
19032 
19033 // VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
19034 #define VK_QCOM_filter_cubic_weights 1
19035 #define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
19036 #define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
19037 
19038 typedef enum VkCubicFilterWeightsQCOM {
19039     VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
19040     VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
19041     VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
19042     VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
19043     VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
19044 } VkCubicFilterWeightsQCOM;
19045 typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
19046     VkStructureType    sType;
19047     void*              pNext;
19048     VkBool32           selectableCubicWeights;
19049 } VkPhysicalDeviceCubicWeightsFeaturesQCOM;
19050 
19051 typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
19052     VkStructureType             sType;
19053     const void*                 pNext;
19054     VkCubicFilterWeightsQCOM    cubicWeights;
19055 } VkSamplerCubicWeightsCreateInfoQCOM;
19056 
19057 typedef struct VkBlitImageCubicWeightsInfoQCOM {
19058     VkStructureType             sType;
19059     const void*                 pNext;
19060     VkCubicFilterWeightsQCOM    cubicWeights;
19061 } VkBlitImageCubicWeightsInfoQCOM;
19062 
19063 
19064 
19065 // VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
19066 #define VK_QCOM_ycbcr_degamma 1
19067 #define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
19068 #define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
19069 typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
19070     VkStructureType    sType;
19071     void*              pNext;
19072     VkBool32           ycbcrDegamma;
19073 } VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
19074 
19075 typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
19076     VkStructureType    sType;
19077     void*              pNext;
19078     VkBool32           enableYDegamma;
19079     VkBool32           enableCbCrDegamma;
19080 } VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
19081 
19082 
19083 
19084 // VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
19085 #define VK_QCOM_filter_cubic_clamp 1
19086 #define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
19087 #define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
19088 typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
19089     VkStructureType    sType;
19090     void*              pNext;
19091     VkBool32           cubicRangeClamp;
19092 } VkPhysicalDeviceCubicClampFeaturesQCOM;
19093 
19094 
19095 
19096 // VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
19097 #define VK_EXT_attachment_feedback_loop_dynamic_state 1
19098 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
19099 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
19100 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
19101     VkStructureType    sType;
19102     void*              pNext;
19103     VkBool32           attachmentFeedbackLoopDynamicState;
19104 } VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
19105 
19106 typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
19107 
19108 #ifndef VK_NO_PROTOTYPES
19109 VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
19110     VkCommandBuffer                             commandBuffer,
19111     VkImageAspectFlags                          aspectMask);
19112 #endif
19113 
19114 
19115 // VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
19116 #define VK_MSFT_layered_driver 1
19117 #define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
19118 #define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
19119 
19120 typedef enum VkLayeredDriverUnderlyingApiMSFT {
19121     VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
19122     VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
19123     VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
19124 } VkLayeredDriverUnderlyingApiMSFT;
19125 typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
19126     VkStructureType                     sType;
19127     void*                               pNext;
19128     VkLayeredDriverUnderlyingApiMSFT    underlyingAPI;
19129 } VkPhysicalDeviceLayeredDriverPropertiesMSFT;
19130 
19131 
19132 
19133 // VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
19134 #define VK_NV_descriptor_pool_overallocation 1
19135 #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
19136 #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
19137 typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
19138     VkStructureType    sType;
19139     void*              pNext;
19140     VkBool32           descriptorPoolOverallocation;
19141 } VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
19142 
19143 
19144 
19145 // VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
19146 #define VK_NV_raw_access_chains 1
19147 #define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
19148 #define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
19149 typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
19150     VkStructureType    sType;
19151     void*              pNext;
19152     VkBool32           shaderRawAccessChains;
19153 } VkPhysicalDeviceRawAccessChainsFeaturesNV;
19154 
19155 
19156 
19157 // VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
19158 #define VK_NV_shader_atomic_float16_vector 1
19159 #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
19160 #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
19161 typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
19162     VkStructureType    sType;
19163     void*              pNext;
19164     VkBool32           shaderFloat16VectorAtomics;
19165 } VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
19166 
19167 // VK_EXT_shader_replicated_composites is a preprocessor guard. Do not pass it to API calls.
19168 #define VK_EXT_shader_replicated_composites 1
19169 #define VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION 1
19170 #define VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME "VK_EXT_shader_replicated_composites"
19171 typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT
19172 {
19173 	VkStructureType sType;
19174 	void *pNext;
19175 	VkBool32 shaderReplicatedComposites;
19176 } VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT;
19177 
19178 // VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls.
19179 #define VK_NV_ray_tracing_validation 1
19180 #define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1
19181 #define VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME "VK_NV_ray_tracing_validation"
19182 typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
19183     VkStructureType    sType;
19184     void*              pNext;
19185     VkBool32           rayTracingValidation;
19186 } VkPhysicalDeviceRayTracingValidationFeaturesNV;
19187 
19188 // VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
19189 #define VK_MESA_image_alignment_control 1
19190 #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
19191 #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME "VK_MESA_image_alignment_control"
19192 typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA
19193 {
19194 	VkStructureType sType;
19195 	void *pNext;
19196 	VkBool32 imageAlignmentControl;
19197 } VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
19198 
19199 typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA
19200 {
19201 	VkStructureType sType;
19202 	void *pNext;
19203 	uint32_t supportedImageAlignmentMask;
19204 } VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
19205 
19206 typedef struct VkImageAlignmentControlCreateInfoMESA
19207 {
19208 	VkStructureType sType;
19209 	const void *pNext;
19210 	uint32_t maximumRequestedAlignment;
19211 } VkImageAlignmentControlCreateInfoMESA;
19212 
19213 // VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
19214 #define VK_KHR_acceleration_structure 1
19215 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
19216 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
19217 
19218 typedef enum VkBuildAccelerationStructureModeKHR {
19219     VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
19220     VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
19221     VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
19222 } VkBuildAccelerationStructureModeKHR;
19223 
19224 typedef enum VkAccelerationStructureCreateFlagBitsKHR {
19225     VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
19226     VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
19227     VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
19228     VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
19229 } VkAccelerationStructureCreateFlagBitsKHR;
19230 typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
19231 typedef struct VkAccelerationStructureBuildRangeInfoKHR {
19232     uint32_t    primitiveCount;
19233     uint32_t    primitiveOffset;
19234     uint32_t    firstVertex;
19235     uint32_t    transformOffset;
19236 } VkAccelerationStructureBuildRangeInfoKHR;
19237 
19238 typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
19239     VkStructureType                  sType;
19240     const void*                      pNext;
19241     VkFormat                         vertexFormat;
19242     VkDeviceOrHostAddressConstKHR    vertexData;
19243     VkDeviceSize                     vertexStride;
19244     uint32_t                         maxVertex;
19245     VkIndexType                      indexType;
19246     VkDeviceOrHostAddressConstKHR    indexData;
19247     VkDeviceOrHostAddressConstKHR    transformData;
19248 } VkAccelerationStructureGeometryTrianglesDataKHR;
19249 
19250 typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
19251     VkStructureType                  sType;
19252     const void*                      pNext;
19253     VkDeviceOrHostAddressConstKHR    data;
19254     VkDeviceSize                     stride;
19255 } VkAccelerationStructureGeometryAabbsDataKHR;
19256 
19257 typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
19258     VkStructureType                  sType;
19259     const void*                      pNext;
19260     VkBool32                         arrayOfPointers;
19261     VkDeviceOrHostAddressConstKHR    data;
19262 } VkAccelerationStructureGeometryInstancesDataKHR;
19263 
19264 typedef union VkAccelerationStructureGeometryDataKHR {
19265     VkAccelerationStructureGeometryTrianglesDataKHR    triangles;
19266     VkAccelerationStructureGeometryAabbsDataKHR        aabbs;
19267     VkAccelerationStructureGeometryInstancesDataKHR    instances;
19268 } VkAccelerationStructureGeometryDataKHR;
19269 
19270 typedef struct VkAccelerationStructureGeometryKHR {
19271     VkStructureType                           sType;
19272     const void*                               pNext;
19273     VkGeometryTypeKHR                         geometryType;
19274     VkAccelerationStructureGeometryDataKHR    geometry;
19275     VkGeometryFlagsKHR                        flags;
19276 } VkAccelerationStructureGeometryKHR;
19277 
19278 typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
19279     VkStructureType                                     sType;
19280     const void*                                         pNext;
19281     VkAccelerationStructureTypeKHR                      type;
19282     VkBuildAccelerationStructureFlagsKHR                flags;
19283     VkBuildAccelerationStructureModeKHR                 mode;
19284     VkAccelerationStructureKHR                          srcAccelerationStructure;
19285     VkAccelerationStructureKHR                          dstAccelerationStructure;
19286     uint32_t                                            geometryCount;
19287     const VkAccelerationStructureGeometryKHR*           pGeometries;
19288     const VkAccelerationStructureGeometryKHR* const*    ppGeometries;
19289     VkDeviceOrHostAddressKHR                            scratchData;
19290 } VkAccelerationStructureBuildGeometryInfoKHR;
19291 
19292 typedef struct VkAccelerationStructureCreateInfoKHR {
19293     VkStructureType                          sType;
19294     const void*                              pNext;
19295     VkAccelerationStructureCreateFlagsKHR    createFlags;
19296     VkBuffer                                 buffer;
19297     VkDeviceSize                             offset;
19298     VkDeviceSize                             size;
19299     VkAccelerationStructureTypeKHR           type;
19300     VkDeviceAddress                          deviceAddress;
19301 } VkAccelerationStructureCreateInfoKHR;
19302 
19303 typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
19304     VkStructureType                      sType;
19305     const void*                          pNext;
19306     uint32_t                             accelerationStructureCount;
19307     const VkAccelerationStructureKHR*    pAccelerationStructures;
19308 } VkWriteDescriptorSetAccelerationStructureKHR;
19309 
19310 typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
19311     VkStructureType    sType;
19312     void*              pNext;
19313     VkBool32           accelerationStructure;
19314     VkBool32           accelerationStructureCaptureReplay;
19315     VkBool32           accelerationStructureIndirectBuild;
19316     VkBool32           accelerationStructureHostCommands;
19317     VkBool32           descriptorBindingAccelerationStructureUpdateAfterBind;
19318 } VkPhysicalDeviceAccelerationStructureFeaturesKHR;
19319 
19320 typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
19321     VkStructureType    sType;
19322     void*              pNext;
19323     uint64_t           maxGeometryCount;
19324     uint64_t           maxInstanceCount;
19325     uint64_t           maxPrimitiveCount;
19326     uint32_t           maxPerStageDescriptorAccelerationStructures;
19327     uint32_t           maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
19328     uint32_t           maxDescriptorSetAccelerationStructures;
19329     uint32_t           maxDescriptorSetUpdateAfterBindAccelerationStructures;
19330     uint32_t           minAccelerationStructureScratchOffsetAlignment;
19331 } VkPhysicalDeviceAccelerationStructurePropertiesKHR;
19332 
19333 typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
19334     VkStructureType               sType;
19335     const void*                   pNext;
19336     VkAccelerationStructureKHR    accelerationStructure;
19337 } VkAccelerationStructureDeviceAddressInfoKHR;
19338 
19339 typedef struct VkAccelerationStructureVersionInfoKHR {
19340     VkStructureType    sType;
19341     const void*        pNext;
19342     const uint8_t*     pVersionData;
19343 } VkAccelerationStructureVersionInfoKHR;
19344 
19345 typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
19346     VkStructureType                       sType;
19347     const void*                           pNext;
19348     VkAccelerationStructureKHR            src;
19349     VkDeviceOrHostAddressKHR              dst;
19350     VkCopyAccelerationStructureModeKHR    mode;
19351 } VkCopyAccelerationStructureToMemoryInfoKHR;
19352 
19353 typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
19354     VkStructureType                       sType;
19355     const void*                           pNext;
19356     VkDeviceOrHostAddressConstKHR         src;
19357     VkAccelerationStructureKHR            dst;
19358     VkCopyAccelerationStructureModeKHR    mode;
19359 } VkCopyMemoryToAccelerationStructureInfoKHR;
19360 
19361 typedef struct VkCopyAccelerationStructureInfoKHR {
19362     VkStructureType                       sType;
19363     const void*                           pNext;
19364     VkAccelerationStructureKHR            src;
19365     VkAccelerationStructureKHR            dst;
19366     VkCopyAccelerationStructureModeKHR    mode;
19367 } VkCopyAccelerationStructureInfoKHR;
19368 
19369 typedef struct VkAccelerationStructureBuildSizesInfoKHR {
19370     VkStructureType    sType;
19371     const void*        pNext;
19372     VkDeviceSize       accelerationStructureSize;
19373     VkDeviceSize       updateScratchSize;
19374     VkDeviceSize       buildScratchSize;
19375 } VkAccelerationStructureBuildSizesInfoKHR;
19376 
19377 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure);
19378 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
19379 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
19380 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);
19381 typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
19382 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
19383 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
19384 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
19385 typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
19386 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
19387 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
19388 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
19389 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
19390 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
19391 typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
19392 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkAccelerationStructureBuildGeometryInfoKHR*  pBuildInfo, const uint32_t*  pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR*           pSizeInfo);
19393 
19394 #ifndef VK_NO_PROTOTYPES
19395 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
19396     VkDevice                                    device,
19397     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
19398     const VkAllocationCallbacks*                pAllocator,
19399     VkAccelerationStructureKHR*                 pAccelerationStructure);
19400 
19401 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
19402     VkDevice                                    device,
19403     VkAccelerationStructureKHR                  accelerationStructure,
19404     const VkAllocationCallbacks*                pAllocator);
19405 
19406 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
19407     VkCommandBuffer                             commandBuffer,
19408     uint32_t                                    infoCount,
19409     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
19410     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
19411 
19412 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
19413     VkCommandBuffer                             commandBuffer,
19414     uint32_t                                    infoCount,
19415     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
19416     const VkDeviceAddress*                      pIndirectDeviceAddresses,
19417     const uint32_t*                             pIndirectStrides,
19418     const uint32_t* const*                      ppMaxPrimitiveCounts);
19419 
19420 VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
19421     VkDevice                                    device,
19422     VkDeferredOperationKHR                      deferredOperation,
19423     uint32_t                                    infoCount,
19424     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
19425     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
19426 
19427 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
19428     VkDevice                                    device,
19429     VkDeferredOperationKHR                      deferredOperation,
19430     const VkCopyAccelerationStructureInfoKHR*   pInfo);
19431 
19432 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
19433     VkDevice                                    device,
19434     VkDeferredOperationKHR                      deferredOperation,
19435     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
19436 
19437 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
19438     VkDevice                                    device,
19439     VkDeferredOperationKHR                      deferredOperation,
19440     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
19441 
19442 VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
19443     VkDevice                                    device,
19444     uint32_t                                    accelerationStructureCount,
19445     const VkAccelerationStructureKHR*           pAccelerationStructures,
19446     VkQueryType                                 queryType,
19447     size_t                                      dataSize,
19448     void*                                       pData,
19449     size_t                                      stride);
19450 
19451 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
19452     VkCommandBuffer                             commandBuffer,
19453     const VkCopyAccelerationStructureInfoKHR*   pInfo);
19454 
19455 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
19456     VkCommandBuffer                             commandBuffer,
19457     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
19458 
19459 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
19460     VkCommandBuffer                             commandBuffer,
19461     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
19462 
19463 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
19464     VkDevice                                    device,
19465     const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
19466 
19467 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
19468     VkCommandBuffer                             commandBuffer,
19469     uint32_t                                    accelerationStructureCount,
19470     const VkAccelerationStructureKHR*           pAccelerationStructures,
19471     VkQueryType                                 queryType,
19472     VkQueryPool                                 queryPool,
19473     uint32_t                                    firstQuery);
19474 
19475 VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
19476     VkDevice                                    device,
19477     const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
19478     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
19479 
19480 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
19481     VkDevice                                    device,
19482     VkAccelerationStructureBuildTypeKHR         buildType,
19483     const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
19484     const uint32_t*                             pMaxPrimitiveCounts,
19485     VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo);
19486 #endif
19487 
19488 
19489 // VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
19490 #define VK_KHR_ray_tracing_pipeline 1
19491 #define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
19492 #define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
19493 
19494 typedef enum VkShaderGroupShaderKHR {
19495     VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
19496     VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
19497     VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
19498     VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
19499     VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
19500 } VkShaderGroupShaderKHR;
19501 typedef struct VkRayTracingShaderGroupCreateInfoKHR {
19502     VkStructureType                   sType;
19503     const void*                       pNext;
19504     VkRayTracingShaderGroupTypeKHR    type;
19505     uint32_t                          generalShader;
19506     uint32_t                          closestHitShader;
19507     uint32_t                          anyHitShader;
19508     uint32_t                          intersectionShader;
19509     const void*                       pShaderGroupCaptureReplayHandle;
19510 } VkRayTracingShaderGroupCreateInfoKHR;
19511 
19512 typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
19513     VkStructureType    sType;
19514     const void*        pNext;
19515     uint32_t           maxPipelineRayPayloadSize;
19516     uint32_t           maxPipelineRayHitAttributeSize;
19517 } VkRayTracingPipelineInterfaceCreateInfoKHR;
19518 
19519 typedef struct VkRayTracingPipelineCreateInfoKHR {
19520     VkStructureType                                      sType;
19521     const void*                                          pNext;
19522     VkPipelineCreateFlags                                flags;
19523     uint32_t                                             stageCount;
19524     const VkPipelineShaderStageCreateInfo*               pStages;
19525     uint32_t                                             groupCount;
19526     const VkRayTracingShaderGroupCreateInfoKHR*          pGroups;
19527     uint32_t                                             maxPipelineRayRecursionDepth;
19528     const VkPipelineLibraryCreateInfoKHR*                pLibraryInfo;
19529     const VkRayTracingPipelineInterfaceCreateInfoKHR*    pLibraryInterface;
19530     const VkPipelineDynamicStateCreateInfo*              pDynamicState;
19531     VkPipelineLayout                                     layout;
19532     VkPipeline                                           basePipelineHandle;
19533     int32_t                                              basePipelineIndex;
19534 } VkRayTracingPipelineCreateInfoKHR;
19535 
19536 typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
19537     VkStructureType    sType;
19538     void*              pNext;
19539     VkBool32           rayTracingPipeline;
19540     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplay;
19541     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
19542     VkBool32           rayTracingPipelineTraceRaysIndirect;
19543     VkBool32           rayTraversalPrimitiveCulling;
19544 } VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
19545 
19546 typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
19547     VkStructureType    sType;
19548     void*              pNext;
19549     uint32_t           shaderGroupHandleSize;
19550     uint32_t           maxRayRecursionDepth;
19551     uint32_t           maxShaderGroupStride;
19552     uint32_t           shaderGroupBaseAlignment;
19553     uint32_t           shaderGroupHandleCaptureReplaySize;
19554     uint32_t           maxRayDispatchInvocationCount;
19555     uint32_t           shaderGroupHandleAlignment;
19556     uint32_t           maxRayHitAttributeSize;
19557 } VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
19558 
19559 typedef struct VkStridedDeviceAddressRegionKHR {
19560     VkDeviceAddress    deviceAddress;
19561     VkDeviceSize       stride;
19562     VkDeviceSize       size;
19563 } VkStridedDeviceAddressRegionKHR;
19564 
19565 typedef struct VkTraceRaysIndirectCommandKHR {
19566     uint32_t    width;
19567     uint32_t    height;
19568     uint32_t    depth;
19569 } VkTraceRaysIndirectCommandKHR;
19570 
19571 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);
19572 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
19573 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
19574 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
19575 typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
19576 typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
19577 
19578 #ifndef VK_NO_PROTOTYPES
19579 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
19580     VkCommandBuffer                             commandBuffer,
19581     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
19582     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
19583     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
19584     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
19585     uint32_t                                    width,
19586     uint32_t                                    height,
19587     uint32_t                                    depth);
19588 
19589 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
19590     VkDevice                                    device,
19591     VkDeferredOperationKHR                      deferredOperation,
19592     VkPipelineCache                             pipelineCache,
19593     uint32_t                                    createInfoCount,
19594     const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
19595     const VkAllocationCallbacks*                pAllocator,
19596     VkPipeline*                                 pPipelines);
19597 
19598 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
19599     VkDevice                                    device,
19600     VkPipeline                                  pipeline,
19601     uint32_t                                    firstGroup,
19602     uint32_t                                    groupCount,
19603     size_t                                      dataSize,
19604     void*                                       pData);
19605 
19606 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
19607     VkCommandBuffer                             commandBuffer,
19608     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
19609     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
19610     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
19611     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
19612     VkDeviceAddress                             indirectDeviceAddress);
19613 
19614 VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
19615     VkDevice                                    device,
19616     VkPipeline                                  pipeline,
19617     uint32_t                                    group,
19618     VkShaderGroupShaderKHR                      groupShader);
19619 
19620 VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
19621     VkCommandBuffer                             commandBuffer,
19622     uint32_t                                    pipelineStackSize);
19623 #endif
19624 
19625 
19626 // VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
19627 #define VK_KHR_ray_query 1
19628 #define VK_KHR_RAY_QUERY_SPEC_VERSION     1
19629 #define VK_KHR_RAY_QUERY_EXTENSION_NAME   "VK_KHR_ray_query"
19630 typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
19631     VkStructureType    sType;
19632     void*              pNext;
19633     VkBool32           rayQuery;
19634 } VkPhysicalDeviceRayQueryFeaturesKHR;
19635 
19636 
19637 
19638 // VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
19639 #define VK_EXT_mesh_shader 1
19640 #define VK_EXT_MESH_SHADER_SPEC_VERSION   1
19641 #define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
19642 typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
19643     VkStructureType    sType;
19644     void*              pNext;
19645     VkBool32           taskShader;
19646     VkBool32           meshShader;
19647     VkBool32           multiviewMeshShader;
19648     VkBool32           primitiveFragmentShadingRateMeshShader;
19649     VkBool32           meshShaderQueries;
19650 } VkPhysicalDeviceMeshShaderFeaturesEXT;
19651 
19652 typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
19653     VkStructureType    sType;
19654     void*              pNext;
19655     uint32_t           maxTaskWorkGroupTotalCount;
19656     uint32_t           maxTaskWorkGroupCount[3];
19657     uint32_t           maxTaskWorkGroupInvocations;
19658     uint32_t           maxTaskWorkGroupSize[3];
19659     uint32_t           maxTaskPayloadSize;
19660     uint32_t           maxTaskSharedMemorySize;
19661     uint32_t           maxTaskPayloadAndSharedMemorySize;
19662     uint32_t           maxMeshWorkGroupTotalCount;
19663     uint32_t           maxMeshWorkGroupCount[3];
19664     uint32_t           maxMeshWorkGroupInvocations;
19665     uint32_t           maxMeshWorkGroupSize[3];
19666     uint32_t           maxMeshSharedMemorySize;
19667     uint32_t           maxMeshPayloadAndSharedMemorySize;
19668     uint32_t           maxMeshOutputMemorySize;
19669     uint32_t           maxMeshPayloadAndOutputMemorySize;
19670     uint32_t           maxMeshOutputComponents;
19671     uint32_t           maxMeshOutputVertices;
19672     uint32_t           maxMeshOutputPrimitives;
19673     uint32_t           maxMeshOutputLayers;
19674     uint32_t           maxMeshMultiviewViewCount;
19675     uint32_t           meshOutputPerVertexGranularity;
19676     uint32_t           meshOutputPerPrimitiveGranularity;
19677     uint32_t           maxPreferredTaskWorkGroupInvocations;
19678     uint32_t           maxPreferredMeshWorkGroupInvocations;
19679     VkBool32           prefersLocalInvocationVertexOutput;
19680     VkBool32           prefersLocalInvocationPrimitiveOutput;
19681     VkBool32           prefersCompactVertexOutput;
19682     VkBool32           prefersCompactPrimitiveOutput;
19683 } VkPhysicalDeviceMeshShaderPropertiesEXT;
19684 
19685 typedef struct VkDrawMeshTasksIndirectCommandEXT {
19686     uint32_t    groupCountX;
19687     uint32_t    groupCountY;
19688     uint32_t    groupCountZ;
19689 } VkDrawMeshTasksIndirectCommandEXT;
19690 
19691 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
19692 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
19693 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
19694 
19695 #ifndef VK_NO_PROTOTYPES
19696 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
19697     VkCommandBuffer                             commandBuffer,
19698     uint32_t                                    groupCountX,
19699     uint32_t                                    groupCountY,
19700     uint32_t                                    groupCountZ);
19701 
19702 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
19703     VkCommandBuffer                             commandBuffer,
19704     VkBuffer                                    buffer,
19705     VkDeviceSize                                offset,
19706     uint32_t                                    drawCount,
19707     uint32_t                                    stride);
19708 
19709 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
19710     VkCommandBuffer                             commandBuffer,
19711     VkBuffer                                    buffer,
19712     VkDeviceSize                                offset,
19713     VkBuffer                                    countBuffer,
19714     VkDeviceSize                                countBufferOffset,
19715     uint32_t                                    maxDrawCount,
19716     uint32_t                                    stride);
19717 #endif
19718 
19719 #ifdef __cplusplus
19720 }
19721 #endif
19722 
19723 #endif
19724