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