xref: /aosp_15_r20/external/mesa3d/include/vulkan/vulkan_core.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 #ifndef VULKAN_CORE_H_
2 #define VULKAN_CORE_H_ 1
3 
4 /*
5 ** Copyright 2015-2024 The Khronos Group Inc.
6 **
7 ** SPDX-License-Identifier: Apache-2.0
8 */
9 
10 /*
11 ** This header is generated from the Khronos Vulkan XML API Registry.
12 **
13 */
14 
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 
21 
22 // VK_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
23 #define VK_VERSION_1_0 1
24 #include "vk_platform.h"
25 
26 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
27 
28 
29 #ifndef VK_USE_64_BIT_PTR_DEFINES
30     #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
31         #define VK_USE_64_BIT_PTR_DEFINES 1
32     #else
33         #define VK_USE_64_BIT_PTR_DEFINES 0
34     #endif
35 #endif
36 
37 
38 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
39     #if (VK_USE_64_BIT_PTR_DEFINES==1)
40         #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
41             #define VK_NULL_HANDLE nullptr
42         #else
43             #define VK_NULL_HANDLE ((void*)0)
44         #endif
45     #else
46         #define VK_NULL_HANDLE 0ULL
47     #endif
48 #endif
49 #ifndef VK_NULL_HANDLE
50     #define VK_NULL_HANDLE 0
51 #endif
52 
53 
54 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
55     #if (VK_USE_64_BIT_PTR_DEFINES==1)
56         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
57     #else
58         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
59     #endif
60 #endif
61 
62 #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
63     ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
64 
65 // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
66 //#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
67 
68 // Vulkan 1.0 version number
69 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
70 
71 // Version of this file
72 #define VK_HEADER_VERSION 295
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 // VK_MAKE_VERSION is deprecated, but no reason was given in the API XML
78 // DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
79 #define VK_MAKE_VERSION(major, minor, patch) \
80     ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
81 
82 // VK_VERSION_MAJOR is deprecated, but no reason was given in the API XML
83 // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
84 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U)
85 
86 // VK_VERSION_MINOR is deprecated, but no reason was given in the API XML
87 // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
88 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
89 
90 // VK_VERSION_PATCH is deprecated, but no reason was given in the API XML
91 // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
92 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
93 
94 #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
95 #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
96 #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
97 #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
98 typedef uint32_t VkBool32;
99 typedef uint64_t VkDeviceAddress;
100 typedef uint64_t VkDeviceSize;
101 typedef uint32_t VkFlags;
102 typedef uint32_t VkSampleMask;
103 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
104 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
105 VK_DEFINE_HANDLE(VkInstance)
106 VK_DEFINE_HANDLE(VkPhysicalDevice)
107 VK_DEFINE_HANDLE(VkDevice)
108 VK_DEFINE_HANDLE(VkQueue)
109 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
110 VK_DEFINE_HANDLE(VkCommandBuffer)
111 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
112 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
113 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
114 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
115 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
116 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
117 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
118 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
119 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
120 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
121 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
122 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
123 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
124 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
125 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
126 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
127 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
128 #define VK_ATTACHMENT_UNUSED              (~0U)
129 #define VK_FALSE                          0U
130 #define VK_LOD_CLAMP_NONE                 1000.0F
131 #define VK_QUEUE_FAMILY_IGNORED           (~0U)
132 #define VK_REMAINING_ARRAY_LAYERS         (~0U)
133 #define VK_REMAINING_MIP_LEVELS           (~0U)
134 #define VK_SUBPASS_EXTERNAL               (~0U)
135 #define VK_TRUE                           1U
136 #define VK_WHOLE_SIZE                     (~0ULL)
137 #define VK_MAX_MEMORY_TYPES               32U
138 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256U
139 #define VK_UUID_SIZE                      16U
140 #define VK_MAX_EXTENSION_NAME_SIZE        256U
141 #define VK_MAX_DESCRIPTION_SIZE           256U
142 #define VK_MAX_MEMORY_HEAPS               16U
143 
144 typedef enum VkResult {
145     VK_SUCCESS = 0,
146     VK_NOT_READY = 1,
147     VK_TIMEOUT = 2,
148     VK_EVENT_SET = 3,
149     VK_EVENT_RESET = 4,
150     VK_INCOMPLETE = 5,
151     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
152     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
153     VK_ERROR_INITIALIZATION_FAILED = -3,
154     VK_ERROR_DEVICE_LOST = -4,
155     VK_ERROR_MEMORY_MAP_FAILED = -5,
156     VK_ERROR_LAYER_NOT_PRESENT = -6,
157     VK_ERROR_EXTENSION_NOT_PRESENT = -7,
158     VK_ERROR_FEATURE_NOT_PRESENT = -8,
159     VK_ERROR_INCOMPATIBLE_DRIVER = -9,
160     VK_ERROR_TOO_MANY_OBJECTS = -10,
161     VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
162     VK_ERROR_FRAGMENTED_POOL = -12,
163     VK_ERROR_UNKNOWN = -13,
164     VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
165     VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
166     VK_ERROR_FRAGMENTATION = -1000161000,
167     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
168     VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
169     VK_ERROR_SURFACE_LOST_KHR = -1000000000,
170     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
171     VK_SUBOPTIMAL_KHR = 1000001003,
172     VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
173     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
174     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
175     VK_ERROR_INVALID_SHADER_NV = -1000012000,
176     VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000,
177     VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001,
178     VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002,
179     VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003,
180     VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004,
181     VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005,
182     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
183     VK_ERROR_NOT_PERMITTED_KHR = -1000174001,
184     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
185     VK_THREAD_IDLE_KHR = 1000268000,
186     VK_THREAD_DONE_KHR = 1000268001,
187     VK_OPERATION_DEFERRED_KHR = 1000268002,
188     VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
189     VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000,
190     VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
191     VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
192     VK_PIPELINE_BINARY_MISSING_KHR = 1000483000,
193     VK_ERROR_NOT_ENOUGH_SPACE_KHR = -1000483000,
194     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
195     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
196     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
197     VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED_KHR,
198     VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
199     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
200     VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
201     VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
202   // VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT is a deprecated alias
203     VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = VK_INCOMPATIBLE_SHADER_BINARY_EXT,
204     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
205 } VkResult;
206 
207 typedef enum VkStructureType {
208     VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
209     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
210     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
211     VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
212     VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
213     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
214     VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
215     VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
216     VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
217     VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
218     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
219     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
220     VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
221     VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
222     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
223     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
224     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
225     VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
226     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
227     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
228     VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
229     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
230     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
231     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
232     VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
233     VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
234     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
235     VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
236     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
237     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
238     VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
239     VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
240     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
241     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
242     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
243     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
244     VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
245     VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
246     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
247     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
248     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
249     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
250     VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
251     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
252     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
253     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
254     VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
255     VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
256     VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
257     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
258     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
259     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
260     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
261     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
262     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
263     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
264     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
265     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
266     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
267     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
268     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
269     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
270     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
271     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
272     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
273     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
274     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
275     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
276     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
277     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
278     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
279     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
280     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
281     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
282     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
283     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
284     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
285     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
286     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
287     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
288     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
289     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
290     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
291     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
292     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
293     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
294     VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
295     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
296     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
297     VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
298     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
299     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
300     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
301     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
302     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
303     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
304     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
305     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
306     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
307     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
308     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
309     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
310     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
311     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
312     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
313     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
314     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
315     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
316     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
317     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
318     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
319     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
320     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
321     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
322     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
323     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
324     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
325     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
326     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
327     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
328     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
329     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
330     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
331     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
332     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
333     VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
334     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
335     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
336     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
337     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
338     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
339     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
340     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
341     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
342     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
343     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
344     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
345     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
346     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
347     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
348     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
349     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
350     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
351     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
352     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
353     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
354     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
355     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
356     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
357     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
358     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
359     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
360     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
361     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
362     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
363     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
364     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
365     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
366     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
367     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
368     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
369     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
370     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
371     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
372     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
373     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
374     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
375     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
376     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
377     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
378     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
379     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
380     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
381     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
382     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
383     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
384     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
385     VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
386     VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
387     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
388     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
389     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
390     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
391     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
392     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
393     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
394     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
395     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
396     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
397     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
398     VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
399     VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
400     VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
401     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
402     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
403     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
404     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
405     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
406     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
407     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
408     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
409     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
410     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
411     VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
412     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
413     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
414     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
415     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
416     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
417     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
418     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
419     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
420     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
421     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
422     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
423     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
424     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
425     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
426     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
427     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
428     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
429     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
430     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
431     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
432     VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
433     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
434     VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
435     VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
436     VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
437     VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
438     VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
439     VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
440     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
441     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
442     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
443     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
444     VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
445     VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
446     VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
447     VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
448     VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
449     VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
450     VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
451     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
452     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
453     VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
454     VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
455     VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
456     VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
457     VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
458     VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
459     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
460     VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
461     VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
462     VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
463     VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
464     VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
465     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
466     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
467     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
468     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
469     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
470     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
471     VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
472     VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
473     VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
474     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
475     VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
476     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
477     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
478     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
479     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
480     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
481     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
482     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
483     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
484     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
485     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
486     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
487     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
488     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
489     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
490     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
491     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
492     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
493     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
494     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
495     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
496     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
497     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
498     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
499     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
500     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
501     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
502     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
503     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
504     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
505     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
506     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
507     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
508     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
509     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
510     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
511     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
512     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
513     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
514     VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
515     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
516     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
517     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
518     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
519     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
520     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
521     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
522     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
523     VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
524     VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
525     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
526     VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000,
527     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001,
528     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002,
529     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
530     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
531     VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
532     VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
533     VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
534     VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
535     VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
536     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
537     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
538     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
539     VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
540     VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
541     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
542     VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
543     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
544     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
545     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
546     VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
547     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
548     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
549     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
550     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
551     VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
552     VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
553     VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
554     VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
555     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
556     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
557     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
558     VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
559     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
560     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
561     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
562     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
563     VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
564     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
565     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
566     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
567     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
568     VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
569     VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
570     VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
571     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
572     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
573     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
574     VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
575     VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
576     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
577     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
578     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
579     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
580     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
581     VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
582     VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
583     VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
584     VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
585     VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
586     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
587     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
588     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
589     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
590     VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
591     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
592     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
593     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
594     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
595     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
596     VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
597     VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
598     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
599     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
600 #ifdef VK_ENABLE_BETA_EXTENSIONS
601     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
602 #endif
603 #ifdef VK_ENABLE_BETA_EXTENSIONS
604     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
605 #endif
606 #ifdef VK_ENABLE_BETA_EXTENSIONS
607     VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
608 #endif
609 #ifdef VK_ENABLE_BETA_EXTENSIONS
610     VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
611 #endif
612 #ifdef VK_ENABLE_BETA_EXTENSIONS
613     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
614 #endif
615     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
616     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
617     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
618     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
619     VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
620     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
621     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
622     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
623     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
624     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
625     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
626     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
627     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
628     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
629     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
630     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
631     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
632     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
633     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
634     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
635     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
636     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
637     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
638     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
639     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
640     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
641     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
642     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
643     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
644     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
645     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
646     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
647     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
648     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
649     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
650     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
651     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
652     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
653     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
654     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
655     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
656 #ifdef VK_ENABLE_BETA_EXTENSIONS
657     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
658 #endif
659 #ifdef VK_ENABLE_BETA_EXTENSIONS
660     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
661 #endif
662     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
663     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
664     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
665     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
666     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
667     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
668     VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
669     VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
670     VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
671     VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
672     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
673     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
674     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
675     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
676     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
677     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
678     VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
679     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
680     VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
681     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
682     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
683     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
684     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
685     VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
686     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
687     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
688     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
689     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
690     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
691     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
692     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
693     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000,
694     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000,
695     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001,
696     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
697     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
698     VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
699     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
700     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
701     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
702     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
703     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
704     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
705     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
706     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
707     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
708     VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
709     VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
710     VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
711     VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
712     VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
713     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
714     VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
715     VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
716     VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
717     VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
718     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
719     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
720     VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
721     VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
722     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
723     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
724     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
725     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
726     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
727     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
728     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = 1000232000,
729     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = 1000232001,
730     VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = 1000232002,
731     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
732     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
733     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
734     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
735     VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
736     VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
737     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
738     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
739     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
740     VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
741     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
742     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
743     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
744     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
745     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
746     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
747     VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
748     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
749     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
750     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
751     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
752     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
753     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
754     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
755     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
756     VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
757     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
758     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
759     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
760     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
761     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
762     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
763     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
764     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
765     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = 1000270000,
766     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = 1000270001,
767     VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = 1000270002,
768     VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = 1000270003,
769     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = 1000270004,
770     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = 1000270005,
771     VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = 1000270006,
772     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = 1000270007,
773     VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = 1000270008,
774     VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = 1000270009,
775     VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = 1000271000,
776     VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = 1000271001,
777     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
778     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
779     VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
780     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
781     VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000,
782     VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001,
783     VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002,
784     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000,
785     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001,
786     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002,
787     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003,
788     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004,
789     VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005,
790     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
791     VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
792     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
793     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
794     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
795     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
796     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
797     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
798     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
799     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
800     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
801     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
802     VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
803     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
804     VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
805     VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
806     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
807     VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
808     VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
809     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
810     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
811     VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
812     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
813     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
814     VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
815     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
816     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
817     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
818     VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
819     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
820     VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
821     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
822     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
823     VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
824     VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
825     VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
826     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
827     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
828     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
829     VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
830     VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
831     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
832     VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
833     VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
834     VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
835     VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
836     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
837     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
838     VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
839     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
840     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
841     VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
842     VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
843     VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
844     VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
845     VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
846     VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
847     VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
848     VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
849     VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
850     VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
851     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
852     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
853     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000,
854     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001,
855     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002,
856     VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003,
857     VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004,
858     VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005,
859     VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006,
860     VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007,
861     VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008,
862     VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010,
863     VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011,
864     VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012,
865     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009,
866     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
867     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
868     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
869     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
870     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
871     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
872     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
873     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
874     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
875     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
876     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
877     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
878     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
879     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
880     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
881     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
882     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
883     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
884     VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
885     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
886     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
887     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
888     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
889     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
890     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
891     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
892     VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
893     VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
894     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
895     VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
896     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
897     VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
898     VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
899     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
900     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
901     VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
902     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
903     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
904     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
905     VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
906     VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
907     VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
908     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
909     VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
910     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
911     VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
912     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
913     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
914     VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
915     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
916     VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
917     VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
918     VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
919     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
920     VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
921     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
922     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
923     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
924     VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
925     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
926     VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
927     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
928     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
929     VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
930     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
931     VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
932     VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
933     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
934     VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
935     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
936     VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
937     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
938     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
939     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
940     VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
941     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
942     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
943     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
944     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
945     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
946     VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
947     VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
948     VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
949     VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
950     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
951     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
952     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
953     VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
954     VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
955     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
956 #ifdef VK_ENABLE_BETA_EXTENSIONS
957     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
958 #endif
959 #ifdef VK_ENABLE_BETA_EXTENSIONS
960     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
961 #endif
962 #ifdef VK_ENABLE_BETA_EXTENSIONS
963     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
964 #endif
965     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
966     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
967     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
968     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
969     VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
970     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
971     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
972     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = 1000416000,
973     VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
974     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
975     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
976     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
977     VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
978     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
979     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
980     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
981     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000,
982     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
983     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
984     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
985     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
986     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
987     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
988     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000,
989     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001,
990     VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002,
991     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
992     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001,
993     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000,
994     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001,
995     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
996     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
997     VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
998     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
999     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
1000     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
1001     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
1002     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
1003     VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
1004     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
1005     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
1006     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
1007     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
1008     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
1009     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1010     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1011     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
1012     VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
1013     VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
1014     VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
1015     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
1016     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
1017     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
1018     VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
1019     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
1020     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
1021     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
1022     VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
1023     VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
1024     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
1025     VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
1026     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
1027     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
1028     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000,
1029     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
1030     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
1031     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
1032     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = 1000470000,
1033     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = 1000470001,
1034     VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = 1000470003,
1035     VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = 1000470004,
1036     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = 1000338002,
1037     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = 1000338003,
1038     VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = 1000470005,
1039     VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = 1000470006,
1040     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = 1000476000,
1041     VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = 1000476001,
1042     VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = 1000476002,
1043     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
1044     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
1045     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
1046     VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
1047     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = 1000483000,
1048     VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = 1000483001,
1049     VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = 1000483002,
1050     VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = 1000483003,
1051     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = 1000483004,
1052     VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = 1000483005,
1053     VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = 1000483006,
1054     VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = 1000483007,
1055     VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = 1000483008,
1056     VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = 1000483009,
1057     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
1058     VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
1059     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
1060     VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
1061     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
1062     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
1063     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
1064     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
1065     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
1066     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
1067     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
1068     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = 1000495000,
1069     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = 1000495001,
1070     VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
1071     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
1072     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
1073     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
1074     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
1075     VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
1076     VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
1077     VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
1078     VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
1079     VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
1080     VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
1081     VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
1082     VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
1083     VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
1084     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
1085     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
1086     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
1087     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
1088     VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
1089     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR = 1000201000,
1090     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR = 1000511000,
1091     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
1092     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
1093     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
1094     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
1095     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
1096     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
1097     VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
1098     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
1099     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
1100     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
1101     VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
1102     VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
1103     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
1104     VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
1105     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
1106     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
1107     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
1108     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
1109     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = 1000525000,
1110     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = 1000190001,
1111     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = 1000190002,
1112     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = 1000528000,
1113     VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
1114     VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
1115     VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
1116     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
1117     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
1118     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
1119     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = 1000265000,
1120     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = 1000259000,
1121     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = 1000259001,
1122     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = 1000259002,
1123     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
1124     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = 1000544000,
1125     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = 1000545000,
1126     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = 1000545001,
1127     VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = 1000545002,
1128     VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = 1000545003,
1129     VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = 1000545004,
1130     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = 1000545005,
1131     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = 1000545006,
1132     VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
1133     VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
1134     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
1135     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
1136     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000,
1137     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV = 1000559000,
1138     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = 1000562000,
1139     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = 1000562001,
1140     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = 1000562002,
1141     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = 1000562003,
1142     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004,
1143     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
1144     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
1145     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
1146     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
1147     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
1148     VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
1149     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1150     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1151   // VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a deprecated alias
1152     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1153     VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1154     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1155     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1156     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1157     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1158     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1159     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1160     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1161     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1162     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1163     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1164     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1165     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1166     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1167     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1168     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1169     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1170     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1171     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1172     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1173     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1174     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1175     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1176     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1177     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1178     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1179     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1180     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1181     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1182     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1183     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1184     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1185     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1186     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1187     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1188     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1189     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
1190     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
1191     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
1192     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1193     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1194     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
1195     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
1196   // VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT is a deprecated alias
1197     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
1198     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
1199     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
1200     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
1201     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
1202     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
1203     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
1204     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
1205     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
1206     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
1207     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
1208     VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
1209     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
1210     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
1211     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
1212     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
1213     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
1214     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
1215     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
1216     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1217     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1218     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
1219     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
1220     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
1221     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
1222     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
1223     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
1224     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
1225     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
1226     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
1227     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
1228     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
1229     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
1230     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
1231     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
1232     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
1233     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
1234     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
1235     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
1236     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
1237     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
1238     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
1239     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
1240     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
1241     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
1242     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
1243     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
1244     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
1245     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
1246     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
1247     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
1248     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
1249     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
1250     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
1251     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
1252     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR,
1253     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR,
1254     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
1255     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1256     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
1257     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
1258     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
1259     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
1260     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1261     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
1262     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
1263     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
1264     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
1265     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
1266     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
1267   // VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL is a deprecated alias
1268     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
1269     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
1270     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
1271     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
1272     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
1273     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1274     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
1275     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
1276     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1277     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1278     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
1279     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1280     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
1281     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
1282     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
1283     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
1284     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1285     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
1286     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
1287     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
1288     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR,
1289     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR,
1290     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR,
1291     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
1292     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR,
1293     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
1294     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
1295     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
1296     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
1297     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
1298     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
1299     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
1300     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
1301     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
1302     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
1303     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
1304     VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
1305     VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
1306     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
1307     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
1308     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
1309     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
1310     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
1311     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
1312     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
1313     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
1314     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
1315     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
1316     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
1317     VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
1318     VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
1319     VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
1320     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
1321     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
1322     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR,
1323     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR,
1324     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1325     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1326     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1327     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
1328     VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1329     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
1330     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
1331     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
1332     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
1333     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
1334     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
1335     VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1336     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1337 } VkStructureType;
1338 
1339 typedef enum VkPipelineCacheHeaderVersion {
1340     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1341     VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
1342 } VkPipelineCacheHeaderVersion;
1343 
1344 typedef enum VkImageLayout {
1345     VK_IMAGE_LAYOUT_UNDEFINED = 0,
1346     VK_IMAGE_LAYOUT_GENERAL = 1,
1347     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
1348     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
1349     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
1350     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
1351     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
1352     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
1353     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
1354     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
1355     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
1356     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
1357     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
1358     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
1359     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
1360     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
1361     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
1362     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
1363     VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
1364     VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
1365     VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
1366     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
1367     VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
1368     VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
1369     VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = 1000232000,
1370     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
1371     VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
1372     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
1373     VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
1374     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
1375     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
1376     VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
1377     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
1378     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
1379     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
1380     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
1381     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
1382     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
1383     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
1384 } VkImageLayout;
1385 
1386 typedef enum VkObjectType {
1387     VK_OBJECT_TYPE_UNKNOWN = 0,
1388     VK_OBJECT_TYPE_INSTANCE = 1,
1389     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1390     VK_OBJECT_TYPE_DEVICE = 3,
1391     VK_OBJECT_TYPE_QUEUE = 4,
1392     VK_OBJECT_TYPE_SEMAPHORE = 5,
1393     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1394     VK_OBJECT_TYPE_FENCE = 7,
1395     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1396     VK_OBJECT_TYPE_BUFFER = 9,
1397     VK_OBJECT_TYPE_IMAGE = 10,
1398     VK_OBJECT_TYPE_EVENT = 11,
1399     VK_OBJECT_TYPE_QUERY_POOL = 12,
1400     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1401     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1402     VK_OBJECT_TYPE_SHADER_MODULE = 15,
1403     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1404     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1405     VK_OBJECT_TYPE_RENDER_PASS = 18,
1406     VK_OBJECT_TYPE_PIPELINE = 19,
1407     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1408     VK_OBJECT_TYPE_SAMPLER = 21,
1409     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1410     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1411     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1412     VK_OBJECT_TYPE_COMMAND_POOL = 25,
1413     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1414     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1415     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1416     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1417     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1418     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1419     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1420     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1421     VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
1422     VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
1423     VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
1424     VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
1425     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1426     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
1427     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1428     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1429     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1430     VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
1431     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
1432     VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
1433     VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
1434     VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
1435     VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
1436     VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
1437     VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
1438     VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000,
1439     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1440     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1441     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1442     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1443 } VkObjectType;
1444 
1445 typedef enum VkVendorId {
1446     VK_VENDOR_ID_KHRONOS = 0x10000,
1447     VK_VENDOR_ID_VIV = 0x10001,
1448     VK_VENDOR_ID_VSI = 0x10002,
1449     VK_VENDOR_ID_KAZAN = 0x10003,
1450     VK_VENDOR_ID_CODEPLAY = 0x10004,
1451     VK_VENDOR_ID_MESA = 0x10005,
1452     VK_VENDOR_ID_POCL = 0x10006,
1453     VK_VENDOR_ID_MOBILEYE = 0x10007,
1454     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1455 } VkVendorId;
1456 
1457 typedef enum VkSystemAllocationScope {
1458     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1459     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1460     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1461     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1462     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1463     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1464 } VkSystemAllocationScope;
1465 
1466 typedef enum VkInternalAllocationType {
1467     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1468     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1469 } VkInternalAllocationType;
1470 
1471 typedef enum VkFormat {
1472     VK_FORMAT_UNDEFINED = 0,
1473     VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1474     VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1475     VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1476     VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1477     VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1478     VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1479     VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1480     VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1481     VK_FORMAT_R8_UNORM = 9,
1482     VK_FORMAT_R8_SNORM = 10,
1483     VK_FORMAT_R8_USCALED = 11,
1484     VK_FORMAT_R8_SSCALED = 12,
1485     VK_FORMAT_R8_UINT = 13,
1486     VK_FORMAT_R8_SINT = 14,
1487     VK_FORMAT_R8_SRGB = 15,
1488     VK_FORMAT_R8G8_UNORM = 16,
1489     VK_FORMAT_R8G8_SNORM = 17,
1490     VK_FORMAT_R8G8_USCALED = 18,
1491     VK_FORMAT_R8G8_SSCALED = 19,
1492     VK_FORMAT_R8G8_UINT = 20,
1493     VK_FORMAT_R8G8_SINT = 21,
1494     VK_FORMAT_R8G8_SRGB = 22,
1495     VK_FORMAT_R8G8B8_UNORM = 23,
1496     VK_FORMAT_R8G8B8_SNORM = 24,
1497     VK_FORMAT_R8G8B8_USCALED = 25,
1498     VK_FORMAT_R8G8B8_SSCALED = 26,
1499     VK_FORMAT_R8G8B8_UINT = 27,
1500     VK_FORMAT_R8G8B8_SINT = 28,
1501     VK_FORMAT_R8G8B8_SRGB = 29,
1502     VK_FORMAT_B8G8R8_UNORM = 30,
1503     VK_FORMAT_B8G8R8_SNORM = 31,
1504     VK_FORMAT_B8G8R8_USCALED = 32,
1505     VK_FORMAT_B8G8R8_SSCALED = 33,
1506     VK_FORMAT_B8G8R8_UINT = 34,
1507     VK_FORMAT_B8G8R8_SINT = 35,
1508     VK_FORMAT_B8G8R8_SRGB = 36,
1509     VK_FORMAT_R8G8B8A8_UNORM = 37,
1510     VK_FORMAT_R8G8B8A8_SNORM = 38,
1511     VK_FORMAT_R8G8B8A8_USCALED = 39,
1512     VK_FORMAT_R8G8B8A8_SSCALED = 40,
1513     VK_FORMAT_R8G8B8A8_UINT = 41,
1514     VK_FORMAT_R8G8B8A8_SINT = 42,
1515     VK_FORMAT_R8G8B8A8_SRGB = 43,
1516     VK_FORMAT_B8G8R8A8_UNORM = 44,
1517     VK_FORMAT_B8G8R8A8_SNORM = 45,
1518     VK_FORMAT_B8G8R8A8_USCALED = 46,
1519     VK_FORMAT_B8G8R8A8_SSCALED = 47,
1520     VK_FORMAT_B8G8R8A8_UINT = 48,
1521     VK_FORMAT_B8G8R8A8_SINT = 49,
1522     VK_FORMAT_B8G8R8A8_SRGB = 50,
1523     VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1524     VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1525     VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1526     VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1527     VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1528     VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1529     VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1530     VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1531     VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1532     VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1533     VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1534     VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1535     VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1536     VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1537     VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1538     VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1539     VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1540     VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1541     VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1542     VK_FORMAT_R16_UNORM = 70,
1543     VK_FORMAT_R16_SNORM = 71,
1544     VK_FORMAT_R16_USCALED = 72,
1545     VK_FORMAT_R16_SSCALED = 73,
1546     VK_FORMAT_R16_UINT = 74,
1547     VK_FORMAT_R16_SINT = 75,
1548     VK_FORMAT_R16_SFLOAT = 76,
1549     VK_FORMAT_R16G16_UNORM = 77,
1550     VK_FORMAT_R16G16_SNORM = 78,
1551     VK_FORMAT_R16G16_USCALED = 79,
1552     VK_FORMAT_R16G16_SSCALED = 80,
1553     VK_FORMAT_R16G16_UINT = 81,
1554     VK_FORMAT_R16G16_SINT = 82,
1555     VK_FORMAT_R16G16_SFLOAT = 83,
1556     VK_FORMAT_R16G16B16_UNORM = 84,
1557     VK_FORMAT_R16G16B16_SNORM = 85,
1558     VK_FORMAT_R16G16B16_USCALED = 86,
1559     VK_FORMAT_R16G16B16_SSCALED = 87,
1560     VK_FORMAT_R16G16B16_UINT = 88,
1561     VK_FORMAT_R16G16B16_SINT = 89,
1562     VK_FORMAT_R16G16B16_SFLOAT = 90,
1563     VK_FORMAT_R16G16B16A16_UNORM = 91,
1564     VK_FORMAT_R16G16B16A16_SNORM = 92,
1565     VK_FORMAT_R16G16B16A16_USCALED = 93,
1566     VK_FORMAT_R16G16B16A16_SSCALED = 94,
1567     VK_FORMAT_R16G16B16A16_UINT = 95,
1568     VK_FORMAT_R16G16B16A16_SINT = 96,
1569     VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1570     VK_FORMAT_R32_UINT = 98,
1571     VK_FORMAT_R32_SINT = 99,
1572     VK_FORMAT_R32_SFLOAT = 100,
1573     VK_FORMAT_R32G32_UINT = 101,
1574     VK_FORMAT_R32G32_SINT = 102,
1575     VK_FORMAT_R32G32_SFLOAT = 103,
1576     VK_FORMAT_R32G32B32_UINT = 104,
1577     VK_FORMAT_R32G32B32_SINT = 105,
1578     VK_FORMAT_R32G32B32_SFLOAT = 106,
1579     VK_FORMAT_R32G32B32A32_UINT = 107,
1580     VK_FORMAT_R32G32B32A32_SINT = 108,
1581     VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1582     VK_FORMAT_R64_UINT = 110,
1583     VK_FORMAT_R64_SINT = 111,
1584     VK_FORMAT_R64_SFLOAT = 112,
1585     VK_FORMAT_R64G64_UINT = 113,
1586     VK_FORMAT_R64G64_SINT = 114,
1587     VK_FORMAT_R64G64_SFLOAT = 115,
1588     VK_FORMAT_R64G64B64_UINT = 116,
1589     VK_FORMAT_R64G64B64_SINT = 117,
1590     VK_FORMAT_R64G64B64_SFLOAT = 118,
1591     VK_FORMAT_R64G64B64A64_UINT = 119,
1592     VK_FORMAT_R64G64B64A64_SINT = 120,
1593     VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1594     VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1595     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1596     VK_FORMAT_D16_UNORM = 124,
1597     VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1598     VK_FORMAT_D32_SFLOAT = 126,
1599     VK_FORMAT_S8_UINT = 127,
1600     VK_FORMAT_D16_UNORM_S8_UINT = 128,
1601     VK_FORMAT_D24_UNORM_S8_UINT = 129,
1602     VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1603     VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1604     VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1605     VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1606     VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1607     VK_FORMAT_BC2_UNORM_BLOCK = 135,
1608     VK_FORMAT_BC2_SRGB_BLOCK = 136,
1609     VK_FORMAT_BC3_UNORM_BLOCK = 137,
1610     VK_FORMAT_BC3_SRGB_BLOCK = 138,
1611     VK_FORMAT_BC4_UNORM_BLOCK = 139,
1612     VK_FORMAT_BC4_SNORM_BLOCK = 140,
1613     VK_FORMAT_BC5_UNORM_BLOCK = 141,
1614     VK_FORMAT_BC5_SNORM_BLOCK = 142,
1615     VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1616     VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1617     VK_FORMAT_BC7_UNORM_BLOCK = 145,
1618     VK_FORMAT_BC7_SRGB_BLOCK = 146,
1619     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1620     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1621     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1622     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1623     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1624     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1625     VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1626     VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1627     VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1628     VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1629     VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1630     VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1631     VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1632     VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1633     VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1634     VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1635     VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1636     VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1637     VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1638     VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1639     VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1640     VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1641     VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1642     VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1643     VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1644     VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1645     VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1646     VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1647     VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1648     VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1649     VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1650     VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1651     VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1652     VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1653     VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1654     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1655     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1656     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
1657     VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1658     VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1659     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1660     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1661     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1662     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1663     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1664     VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1665     VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1666     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1667     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1668     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1669     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1670     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1671     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1672     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1673     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1674     VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1675     VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1676     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1677     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1678     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1679     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1680     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1681     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1682     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1683     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1684     VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1685     VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1686     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1687     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1688     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1689     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1690     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1691     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
1692     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
1693     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
1694     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
1695     VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
1696     VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
1697     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
1698     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
1699     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
1700     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
1701     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
1702     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
1703     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
1704     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
1705     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
1706     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
1707     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
1708     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
1709     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
1710     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
1711     VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1712     VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1713     VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1714     VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1715     VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1716     VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1717     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1718     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
1719     VK_FORMAT_R16G16_SFIXED5_NV = 1000464000,
1720     VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = 1000470000,
1721     VK_FORMAT_A8_UNORM_KHR = 1000470001,
1722     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
1723     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
1724     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
1725     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
1726     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
1727     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
1728     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
1729     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
1730     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
1731     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
1732     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
1733     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
1734     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
1735     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
1736     VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
1737     VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
1738     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
1739     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
1740     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
1741     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
1742     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
1743     VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
1744     VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
1745     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
1746     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
1747     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
1748     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
1749     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
1750     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
1751     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
1752     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
1753     VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
1754     VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
1755     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
1756     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
1757     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
1758     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
1759     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
1760     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
1761     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
1762     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
1763     VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
1764     VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
1765     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
1766     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
1767     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
1768     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
1769     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
1770     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
1771     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
1772     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
1773     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
1774     VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
1775     VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
1776   // VK_FORMAT_R16G16_S10_5_NV is a deprecated alias
1777     VK_FORMAT_R16G16_S10_5_NV = VK_FORMAT_R16G16_SFIXED5_NV,
1778     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
1779 } VkFormat;
1780 
1781 typedef enum VkImageTiling {
1782     VK_IMAGE_TILING_OPTIMAL = 0,
1783     VK_IMAGE_TILING_LINEAR = 1,
1784     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
1785     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
1786 } VkImageTiling;
1787 
1788 typedef enum VkImageType {
1789     VK_IMAGE_TYPE_1D = 0,
1790     VK_IMAGE_TYPE_2D = 1,
1791     VK_IMAGE_TYPE_3D = 2,
1792     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
1793 } VkImageType;
1794 
1795 typedef enum VkPhysicalDeviceType {
1796     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
1797     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
1798     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
1799     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
1800     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
1801     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
1802 } VkPhysicalDeviceType;
1803 
1804 typedef enum VkQueryType {
1805     VK_QUERY_TYPE_OCCLUSION = 0,
1806     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
1807     VK_QUERY_TYPE_TIMESTAMP = 2,
1808     VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
1809     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
1810     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
1811     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
1812     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
1813     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
1814     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
1815     VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
1816     VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
1817     VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
1818     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
1819     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
1820     VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
1821     VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
1822     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
1823 } VkQueryType;
1824 
1825 typedef enum VkSharingMode {
1826     VK_SHARING_MODE_EXCLUSIVE = 0,
1827     VK_SHARING_MODE_CONCURRENT = 1,
1828     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
1829 } VkSharingMode;
1830 
1831 typedef enum VkComponentSwizzle {
1832     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
1833     VK_COMPONENT_SWIZZLE_ZERO = 1,
1834     VK_COMPONENT_SWIZZLE_ONE = 2,
1835     VK_COMPONENT_SWIZZLE_R = 3,
1836     VK_COMPONENT_SWIZZLE_G = 4,
1837     VK_COMPONENT_SWIZZLE_B = 5,
1838     VK_COMPONENT_SWIZZLE_A = 6,
1839     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
1840 } VkComponentSwizzle;
1841 
1842 typedef enum VkImageViewType {
1843     VK_IMAGE_VIEW_TYPE_1D = 0,
1844     VK_IMAGE_VIEW_TYPE_2D = 1,
1845     VK_IMAGE_VIEW_TYPE_3D = 2,
1846     VK_IMAGE_VIEW_TYPE_CUBE = 3,
1847     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
1848     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
1849     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
1850     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
1851 } VkImageViewType;
1852 
1853 typedef enum VkBlendFactor {
1854     VK_BLEND_FACTOR_ZERO = 0,
1855     VK_BLEND_FACTOR_ONE = 1,
1856     VK_BLEND_FACTOR_SRC_COLOR = 2,
1857     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
1858     VK_BLEND_FACTOR_DST_COLOR = 4,
1859     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
1860     VK_BLEND_FACTOR_SRC_ALPHA = 6,
1861     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
1862     VK_BLEND_FACTOR_DST_ALPHA = 8,
1863     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
1864     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
1865     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
1866     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
1867     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
1868     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
1869     VK_BLEND_FACTOR_SRC1_COLOR = 15,
1870     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
1871     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
1872     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
1873     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
1874 } VkBlendFactor;
1875 
1876 typedef enum VkBlendOp {
1877     VK_BLEND_OP_ADD = 0,
1878     VK_BLEND_OP_SUBTRACT = 1,
1879     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
1880     VK_BLEND_OP_MIN = 3,
1881     VK_BLEND_OP_MAX = 4,
1882     VK_BLEND_OP_ZERO_EXT = 1000148000,
1883     VK_BLEND_OP_SRC_EXT = 1000148001,
1884     VK_BLEND_OP_DST_EXT = 1000148002,
1885     VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
1886     VK_BLEND_OP_DST_OVER_EXT = 1000148004,
1887     VK_BLEND_OP_SRC_IN_EXT = 1000148005,
1888     VK_BLEND_OP_DST_IN_EXT = 1000148006,
1889     VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
1890     VK_BLEND_OP_DST_OUT_EXT = 1000148008,
1891     VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
1892     VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
1893     VK_BLEND_OP_XOR_EXT = 1000148011,
1894     VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
1895     VK_BLEND_OP_SCREEN_EXT = 1000148013,
1896     VK_BLEND_OP_OVERLAY_EXT = 1000148014,
1897     VK_BLEND_OP_DARKEN_EXT = 1000148015,
1898     VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
1899     VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
1900     VK_BLEND_OP_COLORBURN_EXT = 1000148018,
1901     VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
1902     VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
1903     VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
1904     VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
1905     VK_BLEND_OP_INVERT_EXT = 1000148023,
1906     VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
1907     VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
1908     VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
1909     VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
1910     VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
1911     VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
1912     VK_BLEND_OP_HARDMIX_EXT = 1000148030,
1913     VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
1914     VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
1915     VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
1916     VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
1917     VK_BLEND_OP_PLUS_EXT = 1000148035,
1918     VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
1919     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
1920     VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
1921     VK_BLEND_OP_MINUS_EXT = 1000148039,
1922     VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
1923     VK_BLEND_OP_CONTRAST_EXT = 1000148041,
1924     VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
1925     VK_BLEND_OP_RED_EXT = 1000148043,
1926     VK_BLEND_OP_GREEN_EXT = 1000148044,
1927     VK_BLEND_OP_BLUE_EXT = 1000148045,
1928     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
1929 } VkBlendOp;
1930 
1931 typedef enum VkCompareOp {
1932     VK_COMPARE_OP_NEVER = 0,
1933     VK_COMPARE_OP_LESS = 1,
1934     VK_COMPARE_OP_EQUAL = 2,
1935     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
1936     VK_COMPARE_OP_GREATER = 4,
1937     VK_COMPARE_OP_NOT_EQUAL = 5,
1938     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
1939     VK_COMPARE_OP_ALWAYS = 7,
1940     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
1941 } VkCompareOp;
1942 
1943 typedef enum VkDynamicState {
1944     VK_DYNAMIC_STATE_VIEWPORT = 0,
1945     VK_DYNAMIC_STATE_SCISSOR = 1,
1946     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
1947     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
1948     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
1949     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
1950     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
1951     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
1952     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
1953     VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
1954     VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
1955     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
1956     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
1957     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
1958     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
1959     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
1960     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
1961     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
1962     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
1963     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
1964     VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
1965     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
1966     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
1967     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
1968     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1969     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
1970     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
1971     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
1972     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
1973     VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
1974     VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1975     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1976     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
1977     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
1978     VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
1979     VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
1980     VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
1981     VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
1982     VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
1983     VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
1984     VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
1985     VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
1986     VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
1987     VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
1988     VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
1989     VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
1990     VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
1991     VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
1992     VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
1993     VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
1994     VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
1995     VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
1996     VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
1997     VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
1998     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
1999     VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
2000     VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
2001     VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
2002     VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
2003     VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
2004     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
2005     VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
2006     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
2007     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
2008     VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
2009     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
2010     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
2011     VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
2012     VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
2013     VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
2014     VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
2015     VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = 1000259000,
2016     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE_KHR,
2017     VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
2018     VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
2019     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
2020     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
2021     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
2022     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
2023     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
2024     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
2025     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
2026     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
2027     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
2028     VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
2029     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
2030     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2031     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2032     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
2033 } VkDynamicState;
2034 
2035 typedef enum VkFrontFace {
2036     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
2037     VK_FRONT_FACE_CLOCKWISE = 1,
2038     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
2039 } VkFrontFace;
2040 
2041 typedef enum VkVertexInputRate {
2042     VK_VERTEX_INPUT_RATE_VERTEX = 0,
2043     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
2044     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
2045 } VkVertexInputRate;
2046 
2047 typedef enum VkPrimitiveTopology {
2048     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
2049     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
2050     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
2051     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
2052     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
2053     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
2054     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
2055     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
2056     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
2057     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
2058     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
2059     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
2060 } VkPrimitiveTopology;
2061 
2062 typedef enum VkPolygonMode {
2063     VK_POLYGON_MODE_FILL = 0,
2064     VK_POLYGON_MODE_LINE = 1,
2065     VK_POLYGON_MODE_POINT = 2,
2066     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
2067     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
2068 } VkPolygonMode;
2069 
2070 typedef enum VkStencilOp {
2071     VK_STENCIL_OP_KEEP = 0,
2072     VK_STENCIL_OP_ZERO = 1,
2073     VK_STENCIL_OP_REPLACE = 2,
2074     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
2075     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
2076     VK_STENCIL_OP_INVERT = 5,
2077     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
2078     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
2079     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
2080 } VkStencilOp;
2081 
2082 typedef enum VkLogicOp {
2083     VK_LOGIC_OP_CLEAR = 0,
2084     VK_LOGIC_OP_AND = 1,
2085     VK_LOGIC_OP_AND_REVERSE = 2,
2086     VK_LOGIC_OP_COPY = 3,
2087     VK_LOGIC_OP_AND_INVERTED = 4,
2088     VK_LOGIC_OP_NO_OP = 5,
2089     VK_LOGIC_OP_XOR = 6,
2090     VK_LOGIC_OP_OR = 7,
2091     VK_LOGIC_OP_NOR = 8,
2092     VK_LOGIC_OP_EQUIVALENT = 9,
2093     VK_LOGIC_OP_INVERT = 10,
2094     VK_LOGIC_OP_OR_REVERSE = 11,
2095     VK_LOGIC_OP_COPY_INVERTED = 12,
2096     VK_LOGIC_OP_OR_INVERTED = 13,
2097     VK_LOGIC_OP_NAND = 14,
2098     VK_LOGIC_OP_SET = 15,
2099     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
2100 } VkLogicOp;
2101 
2102 typedef enum VkBorderColor {
2103     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2104     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2105     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2106     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2107     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2108     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2109     VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2110     VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2111     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2112 } VkBorderColor;
2113 
2114 typedef enum VkFilter {
2115     VK_FILTER_NEAREST = 0,
2116     VK_FILTER_LINEAR = 1,
2117     VK_FILTER_CUBIC_EXT = 1000015000,
2118     VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
2119     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2120 } VkFilter;
2121 
2122 typedef enum VkSamplerAddressMode {
2123     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2124     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2125     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2126     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2127     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2128   // VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR is a deprecated alias
2129     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2130     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2131 } VkSamplerAddressMode;
2132 
2133 typedef enum VkSamplerMipmapMode {
2134     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2135     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2136     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2137 } VkSamplerMipmapMode;
2138 
2139 typedef enum VkDescriptorType {
2140     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2141     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2142     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2143     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2144     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2145     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2146     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2147     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2148     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2149     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2150     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2151     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2152     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2153     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2154     VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
2155     VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
2156     VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
2157     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2158     VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2159     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2160 } VkDescriptorType;
2161 
2162 typedef enum VkAttachmentLoadOp {
2163     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2164     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2165     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2166     VK_ATTACHMENT_LOAD_OP_NONE_KHR = 1000400000,
2167     VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE_KHR,
2168     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2169 } VkAttachmentLoadOp;
2170 
2171 typedef enum VkAttachmentStoreOp {
2172     VK_ATTACHMENT_STORE_OP_STORE = 0,
2173     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2174     VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2175     VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2176     VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2177     VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2178     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2179 } VkAttachmentStoreOp;
2180 
2181 typedef enum VkPipelineBindPoint {
2182     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2183     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2184 #ifdef VK_ENABLE_BETA_EXTENSIONS
2185     VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
2186 #endif
2187     VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2188     VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2189     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2190     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2191 } VkPipelineBindPoint;
2192 
2193 typedef enum VkCommandBufferLevel {
2194     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2195     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2196     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2197 } VkCommandBufferLevel;
2198 
2199 typedef enum VkIndexType {
2200     VK_INDEX_TYPE_UINT16 = 0,
2201     VK_INDEX_TYPE_UINT32 = 1,
2202     VK_INDEX_TYPE_NONE_KHR = 1000165000,
2203     VK_INDEX_TYPE_UINT8_KHR = 1000265000,
2204     VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2205     VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8_KHR,
2206     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2207 } VkIndexType;
2208 
2209 typedef enum VkSubpassContents {
2210     VK_SUBPASS_CONTENTS_INLINE = 0,
2211     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2212     VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000,
2213     VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR,
2214     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2215 } VkSubpassContents;
2216 
2217 typedef enum VkAccessFlagBits {
2218     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2219     VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2220     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2221     VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2222     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2223     VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2224     VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2225     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2226     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2227     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2228     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2229     VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2230     VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2231     VK_ACCESS_HOST_READ_BIT = 0x00002000,
2232     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2233     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2234     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
2235     VK_ACCESS_NONE = 0,
2236     VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2237     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2238     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
2239     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
2240     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2241     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
2242     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
2243     VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2244     VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
2245     VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
2246     VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
2247     VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
2248     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
2249     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
2250     VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
2251     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2252 } VkAccessFlagBits;
2253 typedef VkFlags VkAccessFlags;
2254 
2255 typedef enum VkImageAspectFlagBits {
2256     VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2257     VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2258     VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2259     VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
2260     VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2261     VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2262     VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2263     VK_IMAGE_ASPECT_NONE = 0,
2264     VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2265     VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2266     VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2267     VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
2268     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
2269     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
2270     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
2271     VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
2272     VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2273 } VkImageAspectFlagBits;
2274 typedef VkFlags VkImageAspectFlags;
2275 
2276 typedef enum VkFormatFeatureFlagBits {
2277     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
2278     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
2279     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
2280     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
2281     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
2282     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
2283     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
2284     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
2285     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
2286     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
2287     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
2288     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
2289     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
2290     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2291     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2292     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2293     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2294     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2295     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2296     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2297     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2298     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2299     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
2300     VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
2301     VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
2302     VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
2303     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
2304     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
2305     VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
2306     VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
2307     VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
2308     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2309     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2310     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2311     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2312     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2313     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2314     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2315     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2316     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,
2317     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
2318     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2319     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2320 } VkFormatFeatureFlagBits;
2321 typedef VkFlags VkFormatFeatureFlags;
2322 
2323 typedef enum VkImageCreateFlagBits {
2324     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2325     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2326     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2327     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
2328     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
2329     VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2330     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
2331     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
2332     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2333     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
2334     VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
2335     VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
2336     VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
2337     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
2338     VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
2339     VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
2340     VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
2341     VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
2342     VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000,
2343     VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
2344     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2345     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2346     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2347     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2348     VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
2349     VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
2350     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2351 } VkImageCreateFlagBits;
2352 typedef VkFlags VkImageCreateFlags;
2353 
2354 typedef enum VkSampleCountFlagBits {
2355     VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2356     VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2357     VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2358     VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2359     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2360     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2361     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2362     VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2363 } VkSampleCountFlagBits;
2364 typedef VkFlags VkSampleCountFlags;
2365 
2366 typedef enum VkImageUsageFlagBits {
2367     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2368     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
2369     VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
2370     VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
2371     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
2372     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
2373     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
2374     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
2375     VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
2376     VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
2377     VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
2378     VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
2379     VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
2380     VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = 0x00400000,
2381     VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
2382     VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
2383     VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
2384     VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
2385     VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
2386     VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
2387     VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
2388     VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2389     VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2390 } VkImageUsageFlagBits;
2391 typedef VkFlags VkImageUsageFlags;
2392 
2393 typedef enum VkInstanceCreateFlagBits {
2394     VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
2395     VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2396 } VkInstanceCreateFlagBits;
2397 typedef VkFlags VkInstanceCreateFlags;
2398 
2399 typedef enum VkMemoryHeapFlagBits {
2400     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
2401     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2402     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2403     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2404 } VkMemoryHeapFlagBits;
2405 typedef VkFlags VkMemoryHeapFlags;
2406 
2407 typedef enum VkMemoryPropertyFlagBits {
2408     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2409     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2410     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2411     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2412     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
2413     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
2414     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
2415     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
2416     VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
2417     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2418 } VkMemoryPropertyFlagBits;
2419 typedef VkFlags VkMemoryPropertyFlags;
2420 
2421 typedef enum VkQueueFlagBits {
2422     VK_QUEUE_GRAPHICS_BIT = 0x00000001,
2423     VK_QUEUE_COMPUTE_BIT = 0x00000002,
2424     VK_QUEUE_TRANSFER_BIT = 0x00000004,
2425     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
2426     VK_QUEUE_PROTECTED_BIT = 0x00000010,
2427     VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
2428     VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
2429     VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
2430     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2431 } VkQueueFlagBits;
2432 typedef VkFlags VkQueueFlags;
2433 typedef VkFlags VkDeviceCreateFlags;
2434 
2435 typedef enum VkDeviceQueueCreateFlagBits {
2436     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2437     VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2438 } VkDeviceQueueCreateFlagBits;
2439 typedef VkFlags VkDeviceQueueCreateFlags;
2440 
2441 typedef enum VkPipelineStageFlagBits {
2442     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
2443     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
2444     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
2445     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
2446     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
2447     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
2448     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
2449     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
2450     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
2451     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
2452     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
2453     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
2454     VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
2455     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2456     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
2457     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
2458     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
2459     VK_PIPELINE_STAGE_NONE = 0,
2460     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
2461     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
2462     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
2463     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
2464     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2465     VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
2466     VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
2467     VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
2468     VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
2469     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2470     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2471     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2472     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2473     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
2474     VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
2475     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2476 } VkPipelineStageFlagBits;
2477 typedef VkFlags VkPipelineStageFlags;
2478 
2479 typedef enum VkMemoryMapFlagBits {
2480     VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
2481     VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2482 } VkMemoryMapFlagBits;
2483 typedef VkFlags VkMemoryMapFlags;
2484 
2485 typedef enum VkSparseMemoryBindFlagBits {
2486     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2487     VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2488 } VkSparseMemoryBindFlagBits;
2489 typedef VkFlags VkSparseMemoryBindFlags;
2490 
2491 typedef enum VkSparseImageFormatFlagBits {
2492     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
2493     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
2494     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
2495     VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2496 } VkSparseImageFormatFlagBits;
2497 typedef VkFlags VkSparseImageFormatFlags;
2498 
2499 typedef enum VkFenceCreateFlagBits {
2500     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2501     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2502 } VkFenceCreateFlagBits;
2503 typedef VkFlags VkFenceCreateFlags;
2504 typedef VkFlags VkSemaphoreCreateFlags;
2505 
2506 typedef enum VkEventCreateFlagBits {
2507     VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
2508     VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
2509     VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2510 } VkEventCreateFlagBits;
2511 typedef VkFlags VkEventCreateFlags;
2512 
2513 typedef enum VkQueryPipelineStatisticFlagBits {
2514     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
2515     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
2516     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
2517     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
2518     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
2519     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
2520     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
2521     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
2522     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
2523     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
2524     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
2525     VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
2526     VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
2527     VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
2528     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2529 } VkQueryPipelineStatisticFlagBits;
2530 typedef VkFlags VkQueryPipelineStatisticFlags;
2531 typedef VkFlags VkQueryPoolCreateFlags;
2532 
2533 typedef enum VkQueryResultFlagBits {
2534     VK_QUERY_RESULT_64_BIT = 0x00000001,
2535     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
2536     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
2537     VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
2538     VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
2539     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2540 } VkQueryResultFlagBits;
2541 typedef VkFlags VkQueryResultFlags;
2542 
2543 typedef enum VkBufferCreateFlagBits {
2544     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2545     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2546     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2547     VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
2548     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
2549     VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
2550     VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
2551     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2552     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2553     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2554 } VkBufferCreateFlagBits;
2555 typedef VkFlags VkBufferCreateFlags;
2556 
2557 typedef enum VkBufferUsageFlagBits {
2558     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2559     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
2560     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
2561     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
2562     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
2563     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
2564     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
2565     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
2566     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
2567     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
2568     VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
2569     VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
2570     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2571     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
2572     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
2573 #ifdef VK_ENABLE_BETA_EXTENSIONS
2574     VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
2575 #endif
2576     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
2577     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
2578     VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
2579     VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
2580     VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
2581     VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
2582     VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
2583     VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
2584     VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
2585     VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
2586     VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
2587     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2588     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2589     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2590 } VkBufferUsageFlagBits;
2591 typedef VkFlags VkBufferUsageFlags;
2592 typedef VkFlags VkBufferViewCreateFlags;
2593 
2594 typedef enum VkImageViewCreateFlagBits {
2595     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
2596     VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
2597     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
2598     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2599 } VkImageViewCreateFlagBits;
2600 typedef VkFlags VkImageViewCreateFlags;
2601 typedef VkFlags VkShaderModuleCreateFlags;
2602 
2603 typedef enum VkPipelineCacheCreateFlagBits {
2604     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
2605     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
2606     VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2607 } VkPipelineCacheCreateFlagBits;
2608 typedef VkFlags VkPipelineCacheCreateFlags;
2609 
2610 typedef enum VkColorComponentFlagBits {
2611     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2612     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2613     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2614     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
2615     VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2616 } VkColorComponentFlagBits;
2617 typedef VkFlags VkColorComponentFlags;
2618 
2619 typedef enum VkPipelineCreateFlagBits {
2620     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2621     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2622     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
2623     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2624     VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
2625     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
2626     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
2627     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
2628     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
2629     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
2630     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
2631     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
2632     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
2633     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
2634     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
2635     VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
2636     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
2637     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
2638     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
2639     VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
2640     VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
2641     VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
2642     VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
2643     VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
2644     VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
2645     VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
2646     VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
2647     VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
2648 #ifdef VK_ENABLE_BETA_EXTENSIONS
2649     VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
2650 #endif
2651     VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000,
2652     VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000,
2653     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
2654   // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a deprecated alias
2655     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2656   // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a deprecated alias
2657     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
2658     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
2659     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
2660     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
2661     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
2662     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2663 } VkPipelineCreateFlagBits;
2664 typedef VkFlags VkPipelineCreateFlags;
2665 
2666 typedef enum VkPipelineShaderStageCreateFlagBits {
2667     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
2668     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
2669     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
2670     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
2671     VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2672 } VkPipelineShaderStageCreateFlagBits;
2673 typedef VkFlags VkPipelineShaderStageCreateFlags;
2674 
2675 typedef enum VkShaderStageFlagBits {
2676     VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
2677     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2678     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
2679     VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2680     VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2681     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
2682     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
2683     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2684     VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
2685     VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
2686     VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
2687     VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
2688     VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
2689     VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
2690     VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
2691     VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
2692     VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
2693     VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
2694     VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
2695     VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
2696     VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
2697     VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
2698     VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
2699     VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
2700     VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
2701     VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
2702     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2703 } VkShaderStageFlagBits;
2704 
2705 typedef enum VkCullModeFlagBits {
2706     VK_CULL_MODE_NONE = 0,
2707     VK_CULL_MODE_FRONT_BIT = 0x00000001,
2708     VK_CULL_MODE_BACK_BIT = 0x00000002,
2709     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2710     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2711 } VkCullModeFlagBits;
2712 typedef VkFlags VkCullModeFlags;
2713 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
2714 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
2715 typedef VkFlags VkPipelineTessellationStateCreateFlags;
2716 typedef VkFlags VkPipelineViewportStateCreateFlags;
2717 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
2718 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
2719 
2720 typedef enum VkPipelineDepthStencilStateCreateFlagBits {
2721     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
2722     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
2723     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,
2724     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,
2725     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2726 } VkPipelineDepthStencilStateCreateFlagBits;
2727 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
2728 
2729 typedef enum VkPipelineColorBlendStateCreateFlagBits {
2730     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
2731     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
2732     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2733 } VkPipelineColorBlendStateCreateFlagBits;
2734 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
2735 typedef VkFlags VkPipelineDynamicStateCreateFlags;
2736 
2737 typedef enum VkPipelineLayoutCreateFlagBits {
2738     VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
2739     VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2740 } VkPipelineLayoutCreateFlagBits;
2741 typedef VkFlags VkPipelineLayoutCreateFlags;
2742 typedef VkFlags VkShaderStageFlags;
2743 
2744 typedef enum VkSamplerCreateFlagBits {
2745     VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
2746     VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
2747     VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
2748     VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
2749     VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
2750     VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2751 } VkSamplerCreateFlagBits;
2752 typedef VkFlags VkSamplerCreateFlags;
2753 
2754 typedef enum VkDescriptorPoolCreateFlagBits {
2755     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
2756     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
2757     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
2758     VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
2759     VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
2760     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
2761     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
2762     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2763 } VkDescriptorPoolCreateFlagBits;
2764 typedef VkFlags VkDescriptorPoolCreateFlags;
2765 typedef VkFlags VkDescriptorPoolResetFlags;
2766 
2767 typedef enum VkDescriptorSetLayoutCreateFlagBits {
2768     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
2769     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
2770     VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
2771     VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
2772     VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
2773     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
2774     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
2775     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
2776     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
2777     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2778 } VkDescriptorSetLayoutCreateFlagBits;
2779 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
2780 
2781 typedef enum VkAttachmentDescriptionFlagBits {
2782     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
2783     VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2784 } VkAttachmentDescriptionFlagBits;
2785 typedef VkFlags VkAttachmentDescriptionFlags;
2786 
2787 typedef enum VkDependencyFlagBits {
2788     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
2789     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2790     VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
2791     VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
2792     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
2793     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
2794     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2795 } VkDependencyFlagBits;
2796 typedef VkFlags VkDependencyFlags;
2797 
2798 typedef enum VkFramebufferCreateFlagBits {
2799     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
2800     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
2801     VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2802 } VkFramebufferCreateFlagBits;
2803 typedef VkFlags VkFramebufferCreateFlags;
2804 
2805 typedef enum VkRenderPassCreateFlagBits {
2806     VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
2807     VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2808 } VkRenderPassCreateFlagBits;
2809 typedef VkFlags VkRenderPassCreateFlags;
2810 
2811 typedef enum VkSubpassDescriptionFlagBits {
2812     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2813     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
2814     VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
2815     VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
2816     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
2817     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
2818     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
2819     VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
2820     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
2821     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
2822     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
2823     VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2824 } VkSubpassDescriptionFlagBits;
2825 typedef VkFlags VkSubpassDescriptionFlags;
2826 
2827 typedef enum VkCommandPoolCreateFlagBits {
2828     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
2829     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
2830     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
2831     VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2832 } VkCommandPoolCreateFlagBits;
2833 typedef VkFlags VkCommandPoolCreateFlags;
2834 
2835 typedef enum VkCommandPoolResetFlagBits {
2836     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2837     VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2838 } VkCommandPoolResetFlagBits;
2839 typedef VkFlags VkCommandPoolResetFlags;
2840 
2841 typedef enum VkCommandBufferUsageFlagBits {
2842     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2843     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2844     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
2845     VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2846 } VkCommandBufferUsageFlagBits;
2847 typedef VkFlags VkCommandBufferUsageFlags;
2848 
2849 typedef enum VkQueryControlFlagBits {
2850     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
2851     VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2852 } VkQueryControlFlagBits;
2853 typedef VkFlags VkQueryControlFlags;
2854 
2855 typedef enum VkCommandBufferResetFlagBits {
2856     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2857     VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2858 } VkCommandBufferResetFlagBits;
2859 typedef VkFlags VkCommandBufferResetFlags;
2860 
2861 typedef enum VkStencilFaceFlagBits {
2862     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
2863     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
2864     VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
2865   // VK_STENCIL_FRONT_AND_BACK is a deprecated alias
2866     VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
2867     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2868 } VkStencilFaceFlagBits;
2869 typedef VkFlags VkStencilFaceFlags;
2870 typedef struct VkExtent2D {
2871     uint32_t    width;
2872     uint32_t    height;
2873 } VkExtent2D;
2874 
2875 typedef struct VkExtent3D {
2876     uint32_t    width;
2877     uint32_t    height;
2878     uint32_t    depth;
2879 } VkExtent3D;
2880 
2881 typedef struct VkOffset2D {
2882     int32_t    x;
2883     int32_t    y;
2884 } VkOffset2D;
2885 
2886 typedef struct VkOffset3D {
2887     int32_t    x;
2888     int32_t    y;
2889     int32_t    z;
2890 } VkOffset3D;
2891 
2892 typedef struct VkRect2D {
2893     VkOffset2D    offset;
2894     VkExtent2D    extent;
2895 } VkRect2D;
2896 
2897 typedef struct VkBaseInStructure {
2898     VkStructureType                    sType;
2899     const struct VkBaseInStructure*    pNext;
2900 } VkBaseInStructure;
2901 
2902 typedef struct VkBaseOutStructure {
2903     VkStructureType               sType;
2904     struct VkBaseOutStructure*    pNext;
2905 } VkBaseOutStructure;
2906 
2907 typedef struct VkBufferMemoryBarrier {
2908     VkStructureType    sType;
2909     const void*        pNext;
2910     VkAccessFlags      srcAccessMask;
2911     VkAccessFlags      dstAccessMask;
2912     uint32_t           srcQueueFamilyIndex;
2913     uint32_t           dstQueueFamilyIndex;
2914     VkBuffer           buffer;
2915     VkDeviceSize       offset;
2916     VkDeviceSize       size;
2917 } VkBufferMemoryBarrier;
2918 
2919 typedef struct VkDispatchIndirectCommand {
2920     uint32_t    x;
2921     uint32_t    y;
2922     uint32_t    z;
2923 } VkDispatchIndirectCommand;
2924 
2925 typedef struct VkDrawIndexedIndirectCommand {
2926     uint32_t    indexCount;
2927     uint32_t    instanceCount;
2928     uint32_t    firstIndex;
2929     int32_t     vertexOffset;
2930     uint32_t    firstInstance;
2931 } VkDrawIndexedIndirectCommand;
2932 
2933 typedef struct VkDrawIndirectCommand {
2934     uint32_t    vertexCount;
2935     uint32_t    instanceCount;
2936     uint32_t    firstVertex;
2937     uint32_t    firstInstance;
2938 } VkDrawIndirectCommand;
2939 
2940 typedef struct VkImageSubresourceRange {
2941     VkImageAspectFlags    aspectMask;
2942     uint32_t              baseMipLevel;
2943     uint32_t              levelCount;
2944     uint32_t              baseArrayLayer;
2945     uint32_t              layerCount;
2946 } VkImageSubresourceRange;
2947 
2948 typedef struct VkImageMemoryBarrier {
2949     VkStructureType            sType;
2950     const void*                pNext;
2951     VkAccessFlags              srcAccessMask;
2952     VkAccessFlags              dstAccessMask;
2953     VkImageLayout              oldLayout;
2954     VkImageLayout              newLayout;
2955     uint32_t                   srcQueueFamilyIndex;
2956     uint32_t                   dstQueueFamilyIndex;
2957     VkImage                    image;
2958     VkImageSubresourceRange    subresourceRange;
2959 } VkImageMemoryBarrier;
2960 
2961 typedef struct VkMemoryBarrier {
2962     VkStructureType    sType;
2963     const void*        pNext;
2964     VkAccessFlags      srcAccessMask;
2965     VkAccessFlags      dstAccessMask;
2966 } VkMemoryBarrier;
2967 
2968 typedef struct VkPipelineCacheHeaderVersionOne {
2969     uint32_t                        headerSize;
2970     VkPipelineCacheHeaderVersion    headerVersion;
2971     uint32_t                        vendorID;
2972     uint32_t                        deviceID;
2973     uint8_t                         pipelineCacheUUID[VK_UUID_SIZE];
2974 } VkPipelineCacheHeaderVersionOne;
2975 
2976 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
2977     void*                                       pUserData,
2978     size_t                                      size,
2979     size_t                                      alignment,
2980     VkSystemAllocationScope                     allocationScope);
2981 
2982 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
2983     void*                                       pUserData,
2984     void*                                       pMemory);
2985 
2986 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
2987     void*                                       pUserData,
2988     size_t                                      size,
2989     VkInternalAllocationType                    allocationType,
2990     VkSystemAllocationScope                     allocationScope);
2991 
2992 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
2993     void*                                       pUserData,
2994     size_t                                      size,
2995     VkInternalAllocationType                    allocationType,
2996     VkSystemAllocationScope                     allocationScope);
2997 
2998 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
2999     void*                                       pUserData,
3000     void*                                       pOriginal,
3001     size_t                                      size,
3002     size_t                                      alignment,
3003     VkSystemAllocationScope                     allocationScope);
3004 
3005 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
3006 typedef struct VkAllocationCallbacks {
3007     void*                                   pUserData;
3008     PFN_vkAllocationFunction                pfnAllocation;
3009     PFN_vkReallocationFunction              pfnReallocation;
3010     PFN_vkFreeFunction                      pfnFree;
3011     PFN_vkInternalAllocationNotification    pfnInternalAllocation;
3012     PFN_vkInternalFreeNotification          pfnInternalFree;
3013 } VkAllocationCallbacks;
3014 
3015 typedef struct VkApplicationInfo {
3016     VkStructureType    sType;
3017     const void*        pNext;
3018     const char*        pApplicationName;
3019     uint32_t           applicationVersion;
3020     const char*        pEngineName;
3021     uint32_t           engineVersion;
3022     uint32_t           apiVersion;
3023 } VkApplicationInfo;
3024 
3025 typedef struct VkFormatProperties {
3026     VkFormatFeatureFlags    linearTilingFeatures;
3027     VkFormatFeatureFlags    optimalTilingFeatures;
3028     VkFormatFeatureFlags    bufferFeatures;
3029 } VkFormatProperties;
3030 
3031 typedef struct VkImageFormatProperties {
3032     VkExtent3D            maxExtent;
3033     uint32_t              maxMipLevels;
3034     uint32_t              maxArrayLayers;
3035     VkSampleCountFlags    sampleCounts;
3036     VkDeviceSize          maxResourceSize;
3037 } VkImageFormatProperties;
3038 
3039 typedef struct VkInstanceCreateInfo {
3040     VkStructureType             sType;
3041     const void*                 pNext;
3042     VkInstanceCreateFlags       flags;
3043     const VkApplicationInfo*    pApplicationInfo;
3044     uint32_t                    enabledLayerCount;
3045     const char* const*          ppEnabledLayerNames;
3046     uint32_t                    enabledExtensionCount;
3047     const char* const*          ppEnabledExtensionNames;
3048 } VkInstanceCreateInfo;
3049 
3050 typedef struct VkMemoryHeap {
3051     VkDeviceSize         size;
3052     VkMemoryHeapFlags    flags;
3053 } VkMemoryHeap;
3054 
3055 typedef struct VkMemoryType {
3056     VkMemoryPropertyFlags    propertyFlags;
3057     uint32_t                 heapIndex;
3058 } VkMemoryType;
3059 
3060 typedef struct VkPhysicalDeviceFeatures {
3061     VkBool32    robustBufferAccess;
3062     VkBool32    fullDrawIndexUint32;
3063     VkBool32    imageCubeArray;
3064     VkBool32    independentBlend;
3065     VkBool32    geometryShader;
3066     VkBool32    tessellationShader;
3067     VkBool32    sampleRateShading;
3068     VkBool32    dualSrcBlend;
3069     VkBool32    logicOp;
3070     VkBool32    multiDrawIndirect;
3071     VkBool32    drawIndirectFirstInstance;
3072     VkBool32    depthClamp;
3073     VkBool32    depthBiasClamp;
3074     VkBool32    fillModeNonSolid;
3075     VkBool32    depthBounds;
3076     VkBool32    wideLines;
3077     VkBool32    largePoints;
3078     VkBool32    alphaToOne;
3079     VkBool32    multiViewport;
3080     VkBool32    samplerAnisotropy;
3081     VkBool32    textureCompressionETC2;
3082     VkBool32    textureCompressionASTC_LDR;
3083     VkBool32    textureCompressionBC;
3084     VkBool32    occlusionQueryPrecise;
3085     VkBool32    pipelineStatisticsQuery;
3086     VkBool32    vertexPipelineStoresAndAtomics;
3087     VkBool32    fragmentStoresAndAtomics;
3088     VkBool32    shaderTessellationAndGeometryPointSize;
3089     VkBool32    shaderImageGatherExtended;
3090     VkBool32    shaderStorageImageExtendedFormats;
3091     VkBool32    shaderStorageImageMultisample;
3092     VkBool32    shaderStorageImageReadWithoutFormat;
3093     VkBool32    shaderStorageImageWriteWithoutFormat;
3094     VkBool32    shaderUniformBufferArrayDynamicIndexing;
3095     VkBool32    shaderSampledImageArrayDynamicIndexing;
3096     VkBool32    shaderStorageBufferArrayDynamicIndexing;
3097     VkBool32    shaderStorageImageArrayDynamicIndexing;
3098     VkBool32    shaderClipDistance;
3099     VkBool32    shaderCullDistance;
3100     VkBool32    shaderFloat64;
3101     VkBool32    shaderInt64;
3102     VkBool32    shaderInt16;
3103     VkBool32    shaderResourceResidency;
3104     VkBool32    shaderResourceMinLod;
3105     VkBool32    sparseBinding;
3106     VkBool32    sparseResidencyBuffer;
3107     VkBool32    sparseResidencyImage2D;
3108     VkBool32    sparseResidencyImage3D;
3109     VkBool32    sparseResidency2Samples;
3110     VkBool32    sparseResidency4Samples;
3111     VkBool32    sparseResidency8Samples;
3112     VkBool32    sparseResidency16Samples;
3113     VkBool32    sparseResidencyAliased;
3114     VkBool32    variableMultisampleRate;
3115     VkBool32    inheritedQueries;
3116 } VkPhysicalDeviceFeatures;
3117 
3118 typedef struct VkPhysicalDeviceLimits {
3119     uint32_t              maxImageDimension1D;
3120     uint32_t              maxImageDimension2D;
3121     uint32_t              maxImageDimension3D;
3122     uint32_t              maxImageDimensionCube;
3123     uint32_t              maxImageArrayLayers;
3124     uint32_t              maxTexelBufferElements;
3125     uint32_t              maxUniformBufferRange;
3126     uint32_t              maxStorageBufferRange;
3127     uint32_t              maxPushConstantsSize;
3128     uint32_t              maxMemoryAllocationCount;
3129     uint32_t              maxSamplerAllocationCount;
3130     VkDeviceSize          bufferImageGranularity;
3131     VkDeviceSize          sparseAddressSpaceSize;
3132     uint32_t              maxBoundDescriptorSets;
3133     uint32_t              maxPerStageDescriptorSamplers;
3134     uint32_t              maxPerStageDescriptorUniformBuffers;
3135     uint32_t              maxPerStageDescriptorStorageBuffers;
3136     uint32_t              maxPerStageDescriptorSampledImages;
3137     uint32_t              maxPerStageDescriptorStorageImages;
3138     uint32_t              maxPerStageDescriptorInputAttachments;
3139     uint32_t              maxPerStageResources;
3140     uint32_t              maxDescriptorSetSamplers;
3141     uint32_t              maxDescriptorSetUniformBuffers;
3142     uint32_t              maxDescriptorSetUniformBuffersDynamic;
3143     uint32_t              maxDescriptorSetStorageBuffers;
3144     uint32_t              maxDescriptorSetStorageBuffersDynamic;
3145     uint32_t              maxDescriptorSetSampledImages;
3146     uint32_t              maxDescriptorSetStorageImages;
3147     uint32_t              maxDescriptorSetInputAttachments;
3148     uint32_t              maxVertexInputAttributes;
3149     uint32_t              maxVertexInputBindings;
3150     uint32_t              maxVertexInputAttributeOffset;
3151     uint32_t              maxVertexInputBindingStride;
3152     uint32_t              maxVertexOutputComponents;
3153     uint32_t              maxTessellationGenerationLevel;
3154     uint32_t              maxTessellationPatchSize;
3155     uint32_t              maxTessellationControlPerVertexInputComponents;
3156     uint32_t              maxTessellationControlPerVertexOutputComponents;
3157     uint32_t              maxTessellationControlPerPatchOutputComponents;
3158     uint32_t              maxTessellationControlTotalOutputComponents;
3159     uint32_t              maxTessellationEvaluationInputComponents;
3160     uint32_t              maxTessellationEvaluationOutputComponents;
3161     uint32_t              maxGeometryShaderInvocations;
3162     uint32_t              maxGeometryInputComponents;
3163     uint32_t              maxGeometryOutputComponents;
3164     uint32_t              maxGeometryOutputVertices;
3165     uint32_t              maxGeometryTotalOutputComponents;
3166     uint32_t              maxFragmentInputComponents;
3167     uint32_t              maxFragmentOutputAttachments;
3168     uint32_t              maxFragmentDualSrcAttachments;
3169     uint32_t              maxFragmentCombinedOutputResources;
3170     uint32_t              maxComputeSharedMemorySize;
3171     uint32_t              maxComputeWorkGroupCount[3];
3172     uint32_t              maxComputeWorkGroupInvocations;
3173     uint32_t              maxComputeWorkGroupSize[3];
3174     uint32_t              subPixelPrecisionBits;
3175     uint32_t              subTexelPrecisionBits;
3176     uint32_t              mipmapPrecisionBits;
3177     uint32_t              maxDrawIndexedIndexValue;
3178     uint32_t              maxDrawIndirectCount;
3179     float                 maxSamplerLodBias;
3180     float                 maxSamplerAnisotropy;
3181     uint32_t              maxViewports;
3182     uint32_t              maxViewportDimensions[2];
3183     float                 viewportBoundsRange[2];
3184     uint32_t              viewportSubPixelBits;
3185     size_t                minMemoryMapAlignment;
3186     VkDeviceSize          minTexelBufferOffsetAlignment;
3187     VkDeviceSize          minUniformBufferOffsetAlignment;
3188     VkDeviceSize          minStorageBufferOffsetAlignment;
3189     int32_t               minTexelOffset;
3190     uint32_t              maxTexelOffset;
3191     int32_t               minTexelGatherOffset;
3192     uint32_t              maxTexelGatherOffset;
3193     float                 minInterpolationOffset;
3194     float                 maxInterpolationOffset;
3195     uint32_t              subPixelInterpolationOffsetBits;
3196     uint32_t              maxFramebufferWidth;
3197     uint32_t              maxFramebufferHeight;
3198     uint32_t              maxFramebufferLayers;
3199     VkSampleCountFlags    framebufferColorSampleCounts;
3200     VkSampleCountFlags    framebufferDepthSampleCounts;
3201     VkSampleCountFlags    framebufferStencilSampleCounts;
3202     VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
3203     uint32_t              maxColorAttachments;
3204     VkSampleCountFlags    sampledImageColorSampleCounts;
3205     VkSampleCountFlags    sampledImageIntegerSampleCounts;
3206     VkSampleCountFlags    sampledImageDepthSampleCounts;
3207     VkSampleCountFlags    sampledImageStencilSampleCounts;
3208     VkSampleCountFlags    storageImageSampleCounts;
3209     uint32_t              maxSampleMaskWords;
3210     VkBool32              timestampComputeAndGraphics;
3211     float                 timestampPeriod;
3212     uint32_t              maxClipDistances;
3213     uint32_t              maxCullDistances;
3214     uint32_t              maxCombinedClipAndCullDistances;
3215     uint32_t              discreteQueuePriorities;
3216     float                 pointSizeRange[2];
3217     float                 lineWidthRange[2];
3218     float                 pointSizeGranularity;
3219     float                 lineWidthGranularity;
3220     VkBool32              strictLines;
3221     VkBool32              standardSampleLocations;
3222     VkDeviceSize          optimalBufferCopyOffsetAlignment;
3223     VkDeviceSize          optimalBufferCopyRowPitchAlignment;
3224     VkDeviceSize          nonCoherentAtomSize;
3225 } VkPhysicalDeviceLimits;
3226 
3227 typedef struct VkPhysicalDeviceMemoryProperties {
3228     uint32_t        memoryTypeCount;
3229     VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
3230     uint32_t        memoryHeapCount;
3231     VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
3232 } VkPhysicalDeviceMemoryProperties;
3233 
3234 typedef struct VkPhysicalDeviceSparseProperties {
3235     VkBool32    residencyStandard2DBlockShape;
3236     VkBool32    residencyStandard2DMultisampleBlockShape;
3237     VkBool32    residencyStandard3DBlockShape;
3238     VkBool32    residencyAlignedMipSize;
3239     VkBool32    residencyNonResidentStrict;
3240 } VkPhysicalDeviceSparseProperties;
3241 
3242 typedef struct VkPhysicalDeviceProperties {
3243     uint32_t                            apiVersion;
3244     uint32_t                            driverVersion;
3245     uint32_t                            vendorID;
3246     uint32_t                            deviceID;
3247     VkPhysicalDeviceType                deviceType;
3248     char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3249     uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
3250     VkPhysicalDeviceLimits              limits;
3251     VkPhysicalDeviceSparseProperties    sparseProperties;
3252 } VkPhysicalDeviceProperties;
3253 
3254 typedef struct VkQueueFamilyProperties {
3255     VkQueueFlags    queueFlags;
3256     uint32_t        queueCount;
3257     uint32_t        timestampValidBits;
3258     VkExtent3D      minImageTransferGranularity;
3259 } VkQueueFamilyProperties;
3260 
3261 typedef struct VkDeviceQueueCreateInfo {
3262     VkStructureType             sType;
3263     const void*                 pNext;
3264     VkDeviceQueueCreateFlags    flags;
3265     uint32_t                    queueFamilyIndex;
3266     uint32_t                    queueCount;
3267     const float*                pQueuePriorities;
3268 } VkDeviceQueueCreateInfo;
3269 
3270 typedef struct VkDeviceCreateInfo {
3271     VkStructureType                    sType;
3272     const void*                        pNext;
3273     VkDeviceCreateFlags                flags;
3274     uint32_t                           queueCreateInfoCount;
3275     const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
3276     // enabledLayerCount is deprecated and should not be used
3277     uint32_t                           enabledLayerCount;
3278     // ppEnabledLayerNames is deprecated and should not be used
3279     const char* const*                 ppEnabledLayerNames;
3280     uint32_t                           enabledExtensionCount;
3281     const char* const*                 ppEnabledExtensionNames;
3282     const VkPhysicalDeviceFeatures*    pEnabledFeatures;
3283 } VkDeviceCreateInfo;
3284 
3285 typedef struct VkExtensionProperties {
3286     char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
3287     uint32_t    specVersion;
3288 } VkExtensionProperties;
3289 
3290 typedef struct VkLayerProperties {
3291     char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
3292     uint32_t    specVersion;
3293     uint32_t    implementationVersion;
3294     char        description[VK_MAX_DESCRIPTION_SIZE];
3295 } VkLayerProperties;
3296 
3297 typedef struct VkSubmitInfo {
3298     VkStructureType                sType;
3299     const void*                    pNext;
3300     uint32_t                       waitSemaphoreCount;
3301     const VkSemaphore*             pWaitSemaphores;
3302     const VkPipelineStageFlags*    pWaitDstStageMask;
3303     uint32_t                       commandBufferCount;
3304     const VkCommandBuffer*         pCommandBuffers;
3305     uint32_t                       signalSemaphoreCount;
3306     const VkSemaphore*             pSignalSemaphores;
3307 } VkSubmitInfo;
3308 
3309 typedef struct VkMappedMemoryRange {
3310     VkStructureType    sType;
3311     const void*        pNext;
3312     VkDeviceMemory     memory;
3313     VkDeviceSize       offset;
3314     VkDeviceSize       size;
3315 } VkMappedMemoryRange;
3316 
3317 typedef struct VkMemoryAllocateInfo {
3318     VkStructureType    sType;
3319     const void*        pNext;
3320     VkDeviceSize       allocationSize;
3321     uint32_t           memoryTypeIndex;
3322 } VkMemoryAllocateInfo;
3323 
3324 typedef struct VkMemoryRequirements {
3325     VkDeviceSize    size;
3326     VkDeviceSize    alignment;
3327     uint32_t        memoryTypeBits;
3328 } VkMemoryRequirements;
3329 
3330 typedef struct VkSparseMemoryBind {
3331     VkDeviceSize               resourceOffset;
3332     VkDeviceSize               size;
3333     VkDeviceMemory             memory;
3334     VkDeviceSize               memoryOffset;
3335     VkSparseMemoryBindFlags    flags;
3336 } VkSparseMemoryBind;
3337 
3338 typedef struct VkSparseBufferMemoryBindInfo {
3339     VkBuffer                     buffer;
3340     uint32_t                     bindCount;
3341     const VkSparseMemoryBind*    pBinds;
3342 } VkSparseBufferMemoryBindInfo;
3343 
3344 typedef struct VkSparseImageOpaqueMemoryBindInfo {
3345     VkImage                      image;
3346     uint32_t                     bindCount;
3347     const VkSparseMemoryBind*    pBinds;
3348 } VkSparseImageOpaqueMemoryBindInfo;
3349 
3350 typedef struct VkImageSubresource {
3351     VkImageAspectFlags    aspectMask;
3352     uint32_t              mipLevel;
3353     uint32_t              arrayLayer;
3354 } VkImageSubresource;
3355 
3356 typedef struct VkSparseImageMemoryBind {
3357     VkImageSubresource         subresource;
3358     VkOffset3D                 offset;
3359     VkExtent3D                 extent;
3360     VkDeviceMemory             memory;
3361     VkDeviceSize               memoryOffset;
3362     VkSparseMemoryBindFlags    flags;
3363 } VkSparseImageMemoryBind;
3364 
3365 typedef struct VkSparseImageMemoryBindInfo {
3366     VkImage                           image;
3367     uint32_t                          bindCount;
3368     const VkSparseImageMemoryBind*    pBinds;
3369 } VkSparseImageMemoryBindInfo;
3370 
3371 typedef struct VkBindSparseInfo {
3372     VkStructureType                             sType;
3373     const void*                                 pNext;
3374     uint32_t                                    waitSemaphoreCount;
3375     const VkSemaphore*                          pWaitSemaphores;
3376     uint32_t                                    bufferBindCount;
3377     const VkSparseBufferMemoryBindInfo*         pBufferBinds;
3378     uint32_t                                    imageOpaqueBindCount;
3379     const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
3380     uint32_t                                    imageBindCount;
3381     const VkSparseImageMemoryBindInfo*          pImageBinds;
3382     uint32_t                                    signalSemaphoreCount;
3383     const VkSemaphore*                          pSignalSemaphores;
3384 } VkBindSparseInfo;
3385 
3386 typedef struct VkSparseImageFormatProperties {
3387     VkImageAspectFlags          aspectMask;
3388     VkExtent3D                  imageGranularity;
3389     VkSparseImageFormatFlags    flags;
3390 } VkSparseImageFormatProperties;
3391 
3392 typedef struct VkSparseImageMemoryRequirements {
3393     VkSparseImageFormatProperties    formatProperties;
3394     uint32_t                         imageMipTailFirstLod;
3395     VkDeviceSize                     imageMipTailSize;
3396     VkDeviceSize                     imageMipTailOffset;
3397     VkDeviceSize                     imageMipTailStride;
3398 } VkSparseImageMemoryRequirements;
3399 
3400 typedef struct VkFenceCreateInfo {
3401     VkStructureType       sType;
3402     const void*           pNext;
3403     VkFenceCreateFlags    flags;
3404 } VkFenceCreateInfo;
3405 
3406 typedef struct VkSemaphoreCreateInfo {
3407     VkStructureType           sType;
3408     const void*               pNext;
3409     VkSemaphoreCreateFlags    flags;
3410 } VkSemaphoreCreateInfo;
3411 
3412 typedef struct VkEventCreateInfo {
3413     VkStructureType       sType;
3414     const void*           pNext;
3415     VkEventCreateFlags    flags;
3416 } VkEventCreateInfo;
3417 
3418 typedef struct VkQueryPoolCreateInfo {
3419     VkStructureType                  sType;
3420     const void*                      pNext;
3421     VkQueryPoolCreateFlags           flags;
3422     VkQueryType                      queryType;
3423     uint32_t                         queryCount;
3424     VkQueryPipelineStatisticFlags    pipelineStatistics;
3425 } VkQueryPoolCreateInfo;
3426 
3427 typedef struct VkBufferCreateInfo {
3428     VkStructureType        sType;
3429     const void*            pNext;
3430     VkBufferCreateFlags    flags;
3431     VkDeviceSize           size;
3432     VkBufferUsageFlags     usage;
3433     VkSharingMode          sharingMode;
3434     uint32_t               queueFamilyIndexCount;
3435     const uint32_t*        pQueueFamilyIndices;
3436 } VkBufferCreateInfo;
3437 
3438 typedef struct VkBufferViewCreateInfo {
3439     VkStructureType            sType;
3440     const void*                pNext;
3441     VkBufferViewCreateFlags    flags;
3442     VkBuffer                   buffer;
3443     VkFormat                   format;
3444     VkDeviceSize               offset;
3445     VkDeviceSize               range;
3446 } VkBufferViewCreateInfo;
3447 
3448 typedef struct VkImageCreateInfo {
3449     VkStructureType          sType;
3450     const void*              pNext;
3451     VkImageCreateFlags       flags;
3452     VkImageType              imageType;
3453     VkFormat                 format;
3454     VkExtent3D               extent;
3455     uint32_t                 mipLevels;
3456     uint32_t                 arrayLayers;
3457     VkSampleCountFlagBits    samples;
3458     VkImageTiling            tiling;
3459     VkImageUsageFlags        usage;
3460     VkSharingMode            sharingMode;
3461     uint32_t                 queueFamilyIndexCount;
3462     const uint32_t*          pQueueFamilyIndices;
3463     VkImageLayout            initialLayout;
3464 } VkImageCreateInfo;
3465 
3466 typedef struct VkSubresourceLayout {
3467     VkDeviceSize    offset;
3468     VkDeviceSize    size;
3469     VkDeviceSize    rowPitch;
3470     VkDeviceSize    arrayPitch;
3471     VkDeviceSize    depthPitch;
3472 } VkSubresourceLayout;
3473 
3474 typedef struct VkComponentMapping {
3475     VkComponentSwizzle    r;
3476     VkComponentSwizzle    g;
3477     VkComponentSwizzle    b;
3478     VkComponentSwizzle    a;
3479 } VkComponentMapping;
3480 
3481 typedef struct VkImageViewCreateInfo {
3482     VkStructureType            sType;
3483     const void*                pNext;
3484     VkImageViewCreateFlags     flags;
3485     VkImage                    image;
3486     VkImageViewType            viewType;
3487     VkFormat                   format;
3488     VkComponentMapping         components;
3489     VkImageSubresourceRange    subresourceRange;
3490 } VkImageViewCreateInfo;
3491 
3492 typedef struct VkShaderModuleCreateInfo {
3493     VkStructureType              sType;
3494     const void*                  pNext;
3495     VkShaderModuleCreateFlags    flags;
3496     size_t                       codeSize;
3497     const uint32_t*              pCode;
3498 } VkShaderModuleCreateInfo;
3499 
3500 typedef struct VkPipelineCacheCreateInfo {
3501     VkStructureType               sType;
3502     const void*                   pNext;
3503     VkPipelineCacheCreateFlags    flags;
3504     size_t                        initialDataSize;
3505     const void*                   pInitialData;
3506 } VkPipelineCacheCreateInfo;
3507 
3508 typedef struct VkSpecializationMapEntry {
3509     uint32_t    constantID;
3510     uint32_t    offset;
3511     size_t      size;
3512 } VkSpecializationMapEntry;
3513 
3514 typedef struct VkSpecializationInfo {
3515     uint32_t                           mapEntryCount;
3516     const VkSpecializationMapEntry*    pMapEntries;
3517     size_t                             dataSize;
3518     const void*                        pData;
3519 } VkSpecializationInfo;
3520 
3521 typedef struct VkPipelineShaderStageCreateInfo {
3522     VkStructureType                     sType;
3523     const void*                         pNext;
3524     VkPipelineShaderStageCreateFlags    flags;
3525     VkShaderStageFlagBits               stage;
3526     VkShaderModule                      module;
3527     const char*                         pName;
3528     const VkSpecializationInfo*         pSpecializationInfo;
3529 } VkPipelineShaderStageCreateInfo;
3530 
3531 typedef struct VkComputePipelineCreateInfo {
3532     VkStructureType                    sType;
3533     const void*                        pNext;
3534     VkPipelineCreateFlags              flags;
3535     VkPipelineShaderStageCreateInfo    stage;
3536     VkPipelineLayout                   layout;
3537     VkPipeline                         basePipelineHandle;
3538     int32_t                            basePipelineIndex;
3539 } VkComputePipelineCreateInfo;
3540 
3541 typedef struct VkVertexInputBindingDescription {
3542     uint32_t             binding;
3543     uint32_t             stride;
3544     VkVertexInputRate    inputRate;
3545 } VkVertexInputBindingDescription;
3546 
3547 typedef struct VkVertexInputAttributeDescription {
3548     uint32_t    location;
3549     uint32_t    binding;
3550     VkFormat    format;
3551     uint32_t    offset;
3552 } VkVertexInputAttributeDescription;
3553 
3554 typedef struct VkPipelineVertexInputStateCreateInfo {
3555     VkStructureType                             sType;
3556     const void*                                 pNext;
3557     VkPipelineVertexInputStateCreateFlags       flags;
3558     uint32_t                                    vertexBindingDescriptionCount;
3559     const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
3560     uint32_t                                    vertexAttributeDescriptionCount;
3561     const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
3562 } VkPipelineVertexInputStateCreateInfo;
3563 
3564 typedef struct VkPipelineInputAssemblyStateCreateInfo {
3565     VkStructureType                            sType;
3566     const void*                                pNext;
3567     VkPipelineInputAssemblyStateCreateFlags    flags;
3568     VkPrimitiveTopology                        topology;
3569     VkBool32                                   primitiveRestartEnable;
3570 } VkPipelineInputAssemblyStateCreateInfo;
3571 
3572 typedef struct VkPipelineTessellationStateCreateInfo {
3573     VkStructureType                           sType;
3574     const void*                               pNext;
3575     VkPipelineTessellationStateCreateFlags    flags;
3576     uint32_t                                  patchControlPoints;
3577 } VkPipelineTessellationStateCreateInfo;
3578 
3579 typedef struct VkViewport {
3580     float    x;
3581     float    y;
3582     float    width;
3583     float    height;
3584     float    minDepth;
3585     float    maxDepth;
3586 } VkViewport;
3587 
3588 typedef struct VkPipelineViewportStateCreateInfo {
3589     VkStructureType                       sType;
3590     const void*                           pNext;
3591     VkPipelineViewportStateCreateFlags    flags;
3592     uint32_t                              viewportCount;
3593     const VkViewport*                     pViewports;
3594     uint32_t                              scissorCount;
3595     const VkRect2D*                       pScissors;
3596 } VkPipelineViewportStateCreateInfo;
3597 
3598 typedef struct VkPipelineRasterizationStateCreateInfo {
3599     VkStructureType                            sType;
3600     const void*                                pNext;
3601     VkPipelineRasterizationStateCreateFlags    flags;
3602     VkBool32                                   depthClampEnable;
3603     VkBool32                                   rasterizerDiscardEnable;
3604     VkPolygonMode                              polygonMode;
3605     VkCullModeFlags                            cullMode;
3606     VkFrontFace                                frontFace;
3607     VkBool32                                   depthBiasEnable;
3608     float                                      depthBiasConstantFactor;
3609     float                                      depthBiasClamp;
3610     float                                      depthBiasSlopeFactor;
3611     float                                      lineWidth;
3612 } VkPipelineRasterizationStateCreateInfo;
3613 
3614 typedef struct VkPipelineMultisampleStateCreateInfo {
3615     VkStructureType                          sType;
3616     const void*                              pNext;
3617     VkPipelineMultisampleStateCreateFlags    flags;
3618     VkSampleCountFlagBits                    rasterizationSamples;
3619     VkBool32                                 sampleShadingEnable;
3620     float                                    minSampleShading;
3621     const VkSampleMask*                      pSampleMask;
3622     VkBool32                                 alphaToCoverageEnable;
3623     VkBool32                                 alphaToOneEnable;
3624 } VkPipelineMultisampleStateCreateInfo;
3625 
3626 typedef struct VkStencilOpState {
3627     VkStencilOp    failOp;
3628     VkStencilOp    passOp;
3629     VkStencilOp    depthFailOp;
3630     VkCompareOp    compareOp;
3631     uint32_t       compareMask;
3632     uint32_t       writeMask;
3633     uint32_t       reference;
3634 } VkStencilOpState;
3635 
3636 typedef struct VkPipelineDepthStencilStateCreateInfo {
3637     VkStructureType                           sType;
3638     const void*                               pNext;
3639     VkPipelineDepthStencilStateCreateFlags    flags;
3640     VkBool32                                  depthTestEnable;
3641     VkBool32                                  depthWriteEnable;
3642     VkCompareOp                               depthCompareOp;
3643     VkBool32                                  depthBoundsTestEnable;
3644     VkBool32                                  stencilTestEnable;
3645     VkStencilOpState                          front;
3646     VkStencilOpState                          back;
3647     float                                     minDepthBounds;
3648     float                                     maxDepthBounds;
3649 } VkPipelineDepthStencilStateCreateInfo;
3650 
3651 typedef struct VkPipelineColorBlendAttachmentState {
3652     VkBool32                 blendEnable;
3653     VkBlendFactor            srcColorBlendFactor;
3654     VkBlendFactor            dstColorBlendFactor;
3655     VkBlendOp                colorBlendOp;
3656     VkBlendFactor            srcAlphaBlendFactor;
3657     VkBlendFactor            dstAlphaBlendFactor;
3658     VkBlendOp                alphaBlendOp;
3659     VkColorComponentFlags    colorWriteMask;
3660 } VkPipelineColorBlendAttachmentState;
3661 
3662 typedef struct VkPipelineColorBlendStateCreateInfo {
3663     VkStructureType                               sType;
3664     const void*                                   pNext;
3665     VkPipelineColorBlendStateCreateFlags          flags;
3666     VkBool32                                      logicOpEnable;
3667     VkLogicOp                                     logicOp;
3668     uint32_t                                      attachmentCount;
3669     const VkPipelineColorBlendAttachmentState*    pAttachments;
3670     float                                         blendConstants[4];
3671 } VkPipelineColorBlendStateCreateInfo;
3672 
3673 typedef struct VkPipelineDynamicStateCreateInfo {
3674     VkStructureType                      sType;
3675     const void*                          pNext;
3676     VkPipelineDynamicStateCreateFlags    flags;
3677     uint32_t                             dynamicStateCount;
3678     const VkDynamicState*                pDynamicStates;
3679 } VkPipelineDynamicStateCreateInfo;
3680 
3681 typedef struct VkGraphicsPipelineCreateInfo {
3682     VkStructureType                                  sType;
3683     const void*                                      pNext;
3684     VkPipelineCreateFlags                            flags;
3685     uint32_t                                         stageCount;
3686     const VkPipelineShaderStageCreateInfo*           pStages;
3687     const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
3688     const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
3689     const VkPipelineTessellationStateCreateInfo*     pTessellationState;
3690     const VkPipelineViewportStateCreateInfo*         pViewportState;
3691     const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
3692     const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
3693     const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
3694     const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
3695     const VkPipelineDynamicStateCreateInfo*          pDynamicState;
3696     VkPipelineLayout                                 layout;
3697     VkRenderPass                                     renderPass;
3698     uint32_t                                         subpass;
3699     VkPipeline                                       basePipelineHandle;
3700     int32_t                                          basePipelineIndex;
3701 } VkGraphicsPipelineCreateInfo;
3702 
3703 typedef struct VkPushConstantRange {
3704     VkShaderStageFlags    stageFlags;
3705     uint32_t              offset;
3706     uint32_t              size;
3707 } VkPushConstantRange;
3708 
3709 typedef struct VkPipelineLayoutCreateInfo {
3710     VkStructureType                 sType;
3711     const void*                     pNext;
3712     VkPipelineLayoutCreateFlags     flags;
3713     uint32_t                        setLayoutCount;
3714     const VkDescriptorSetLayout*    pSetLayouts;
3715     uint32_t                        pushConstantRangeCount;
3716     const VkPushConstantRange*      pPushConstantRanges;
3717 } VkPipelineLayoutCreateInfo;
3718 
3719 typedef struct VkSamplerCreateInfo {
3720     VkStructureType         sType;
3721     const void*             pNext;
3722     VkSamplerCreateFlags    flags;
3723     VkFilter                magFilter;
3724     VkFilter                minFilter;
3725     VkSamplerMipmapMode     mipmapMode;
3726     VkSamplerAddressMode    addressModeU;
3727     VkSamplerAddressMode    addressModeV;
3728     VkSamplerAddressMode    addressModeW;
3729     float                   mipLodBias;
3730     VkBool32                anisotropyEnable;
3731     float                   maxAnisotropy;
3732     VkBool32                compareEnable;
3733     VkCompareOp             compareOp;
3734     float                   minLod;
3735     float                   maxLod;
3736     VkBorderColor           borderColor;
3737     VkBool32                unnormalizedCoordinates;
3738 } VkSamplerCreateInfo;
3739 
3740 typedef struct VkCopyDescriptorSet {
3741     VkStructureType    sType;
3742     const void*        pNext;
3743     VkDescriptorSet    srcSet;
3744     uint32_t           srcBinding;
3745     uint32_t           srcArrayElement;
3746     VkDescriptorSet    dstSet;
3747     uint32_t           dstBinding;
3748     uint32_t           dstArrayElement;
3749     uint32_t           descriptorCount;
3750 } VkCopyDescriptorSet;
3751 
3752 typedef struct VkDescriptorBufferInfo {
3753     VkBuffer        buffer;
3754     VkDeviceSize    offset;
3755     VkDeviceSize    range;
3756 } VkDescriptorBufferInfo;
3757 
3758 typedef struct VkDescriptorImageInfo {
3759     VkSampler        sampler;
3760     VkImageView      imageView;
3761     VkImageLayout    imageLayout;
3762 } VkDescriptorImageInfo;
3763 
3764 typedef struct VkDescriptorPoolSize {
3765     VkDescriptorType    type;
3766     uint32_t            descriptorCount;
3767 } VkDescriptorPoolSize;
3768 
3769 typedef struct VkDescriptorPoolCreateInfo {
3770     VkStructureType                sType;
3771     const void*                    pNext;
3772     VkDescriptorPoolCreateFlags    flags;
3773     uint32_t                       maxSets;
3774     uint32_t                       poolSizeCount;
3775     const VkDescriptorPoolSize*    pPoolSizes;
3776 } VkDescriptorPoolCreateInfo;
3777 
3778 typedef struct VkDescriptorSetAllocateInfo {
3779     VkStructureType                 sType;
3780     const void*                     pNext;
3781     VkDescriptorPool                descriptorPool;
3782     uint32_t                        descriptorSetCount;
3783     const VkDescriptorSetLayout*    pSetLayouts;
3784 } VkDescriptorSetAllocateInfo;
3785 
3786 typedef struct VkDescriptorSetLayoutBinding {
3787     uint32_t              binding;
3788     VkDescriptorType      descriptorType;
3789     uint32_t              descriptorCount;
3790     VkShaderStageFlags    stageFlags;
3791     const VkSampler*      pImmutableSamplers;
3792 } VkDescriptorSetLayoutBinding;
3793 
3794 typedef struct VkDescriptorSetLayoutCreateInfo {
3795     VkStructureType                        sType;
3796     const void*                            pNext;
3797     VkDescriptorSetLayoutCreateFlags       flags;
3798     uint32_t                               bindingCount;
3799     const VkDescriptorSetLayoutBinding*    pBindings;
3800 } VkDescriptorSetLayoutCreateInfo;
3801 
3802 typedef struct VkWriteDescriptorSet {
3803     VkStructureType                  sType;
3804     const void*                      pNext;
3805     VkDescriptorSet                  dstSet;
3806     uint32_t                         dstBinding;
3807     uint32_t                         dstArrayElement;
3808     uint32_t                         descriptorCount;
3809     VkDescriptorType                 descriptorType;
3810     const VkDescriptorImageInfo*     pImageInfo;
3811     const VkDescriptorBufferInfo*    pBufferInfo;
3812     const VkBufferView*              pTexelBufferView;
3813 } VkWriteDescriptorSet;
3814 
3815 typedef struct VkAttachmentDescription {
3816     VkAttachmentDescriptionFlags    flags;
3817     VkFormat                        format;
3818     VkSampleCountFlagBits           samples;
3819     VkAttachmentLoadOp              loadOp;
3820     VkAttachmentStoreOp             storeOp;
3821     VkAttachmentLoadOp              stencilLoadOp;
3822     VkAttachmentStoreOp             stencilStoreOp;
3823     VkImageLayout                   initialLayout;
3824     VkImageLayout                   finalLayout;
3825 } VkAttachmentDescription;
3826 
3827 typedef struct VkAttachmentReference {
3828     uint32_t         attachment;
3829     VkImageLayout    layout;
3830 } VkAttachmentReference;
3831 
3832 typedef struct VkFramebufferCreateInfo {
3833     VkStructureType             sType;
3834     const void*                 pNext;
3835     VkFramebufferCreateFlags    flags;
3836     VkRenderPass                renderPass;
3837     uint32_t                    attachmentCount;
3838     const VkImageView*          pAttachments;
3839     uint32_t                    width;
3840     uint32_t                    height;
3841     uint32_t                    layers;
3842 } VkFramebufferCreateInfo;
3843 
3844 typedef struct VkSubpassDescription {
3845     VkSubpassDescriptionFlags       flags;
3846     VkPipelineBindPoint             pipelineBindPoint;
3847     uint32_t                        inputAttachmentCount;
3848     const VkAttachmentReference*    pInputAttachments;
3849     uint32_t                        colorAttachmentCount;
3850     const VkAttachmentReference*    pColorAttachments;
3851     const VkAttachmentReference*    pResolveAttachments;
3852     const VkAttachmentReference*    pDepthStencilAttachment;
3853     uint32_t                        preserveAttachmentCount;
3854     const uint32_t*                 pPreserveAttachments;
3855 } VkSubpassDescription;
3856 
3857 typedef struct VkSubpassDependency {
3858     uint32_t                srcSubpass;
3859     uint32_t                dstSubpass;
3860     VkPipelineStageFlags    srcStageMask;
3861     VkPipelineStageFlags    dstStageMask;
3862     VkAccessFlags           srcAccessMask;
3863     VkAccessFlags           dstAccessMask;
3864     VkDependencyFlags       dependencyFlags;
3865 } VkSubpassDependency;
3866 
3867 typedef struct VkRenderPassCreateInfo {
3868     VkStructureType                   sType;
3869     const void*                       pNext;
3870     VkRenderPassCreateFlags           flags;
3871     uint32_t                          attachmentCount;
3872     const VkAttachmentDescription*    pAttachments;
3873     uint32_t                          subpassCount;
3874     const VkSubpassDescription*       pSubpasses;
3875     uint32_t                          dependencyCount;
3876     const VkSubpassDependency*        pDependencies;
3877 } VkRenderPassCreateInfo;
3878 
3879 typedef struct VkCommandPoolCreateInfo {
3880     VkStructureType             sType;
3881     const void*                 pNext;
3882     VkCommandPoolCreateFlags    flags;
3883     uint32_t                    queueFamilyIndex;
3884 } VkCommandPoolCreateInfo;
3885 
3886 typedef struct VkCommandBufferAllocateInfo {
3887     VkStructureType         sType;
3888     const void*             pNext;
3889     VkCommandPool           commandPool;
3890     VkCommandBufferLevel    level;
3891     uint32_t                commandBufferCount;
3892 } VkCommandBufferAllocateInfo;
3893 
3894 typedef struct VkCommandBufferInheritanceInfo {
3895     VkStructureType                  sType;
3896     const void*                      pNext;
3897     VkRenderPass                     renderPass;
3898     uint32_t                         subpass;
3899     VkFramebuffer                    framebuffer;
3900     VkBool32                         occlusionQueryEnable;
3901     VkQueryControlFlags              queryFlags;
3902     VkQueryPipelineStatisticFlags    pipelineStatistics;
3903 } VkCommandBufferInheritanceInfo;
3904 
3905 typedef struct VkCommandBufferBeginInfo {
3906     VkStructureType                          sType;
3907     const void*                              pNext;
3908     VkCommandBufferUsageFlags                flags;
3909     const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
3910 } VkCommandBufferBeginInfo;
3911 
3912 typedef struct VkBufferCopy {
3913     VkDeviceSize    srcOffset;
3914     VkDeviceSize    dstOffset;
3915     VkDeviceSize    size;
3916 } VkBufferCopy;
3917 
3918 typedef struct VkImageSubresourceLayers {
3919     VkImageAspectFlags    aspectMask;
3920     uint32_t              mipLevel;
3921     uint32_t              baseArrayLayer;
3922     uint32_t              layerCount;
3923 } VkImageSubresourceLayers;
3924 
3925 typedef struct VkBufferImageCopy {
3926     VkDeviceSize                bufferOffset;
3927     uint32_t                    bufferRowLength;
3928     uint32_t                    bufferImageHeight;
3929     VkImageSubresourceLayers    imageSubresource;
3930     VkOffset3D                  imageOffset;
3931     VkExtent3D                  imageExtent;
3932 } VkBufferImageCopy;
3933 
3934 typedef union VkClearColorValue {
3935     float       float32[4];
3936     int32_t     int32[4];
3937     uint32_t    uint32[4];
3938 } VkClearColorValue;
3939 
3940 typedef struct VkClearDepthStencilValue {
3941     float       depth;
3942     uint32_t    stencil;
3943 } VkClearDepthStencilValue;
3944 
3945 typedef union VkClearValue {
3946     VkClearColorValue           color;
3947     VkClearDepthStencilValue    depthStencil;
3948 } VkClearValue;
3949 
3950 typedef struct VkClearAttachment {
3951     VkImageAspectFlags    aspectMask;
3952     uint32_t              colorAttachment;
3953     VkClearValue          clearValue;
3954 } VkClearAttachment;
3955 
3956 typedef struct VkClearRect {
3957     VkRect2D    rect;
3958     uint32_t    baseArrayLayer;
3959     uint32_t    layerCount;
3960 } VkClearRect;
3961 
3962 typedef struct VkImageBlit {
3963     VkImageSubresourceLayers    srcSubresource;
3964     VkOffset3D                  srcOffsets[2];
3965     VkImageSubresourceLayers    dstSubresource;
3966     VkOffset3D                  dstOffsets[2];
3967 } VkImageBlit;
3968 
3969 typedef struct VkImageCopy {
3970     VkImageSubresourceLayers    srcSubresource;
3971     VkOffset3D                  srcOffset;
3972     VkImageSubresourceLayers    dstSubresource;
3973     VkOffset3D                  dstOffset;
3974     VkExtent3D                  extent;
3975 } VkImageCopy;
3976 
3977 typedef struct VkImageResolve {
3978     VkImageSubresourceLayers    srcSubresource;
3979     VkOffset3D                  srcOffset;
3980     VkImageSubresourceLayers    dstSubresource;
3981     VkOffset3D                  dstOffset;
3982     VkExtent3D                  extent;
3983 } VkImageResolve;
3984 
3985 typedef struct VkRenderPassBeginInfo {
3986     VkStructureType        sType;
3987     const void*            pNext;
3988     VkRenderPass           renderPass;
3989     VkFramebuffer          framebuffer;
3990     VkRect2D               renderArea;
3991     uint32_t               clearValueCount;
3992     const VkClearValue*    pClearValues;
3993 } VkRenderPassBeginInfo;
3994 
3995 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
3996 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
3997 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
3998 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
3999 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
4000 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
4001 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
4002 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
4003 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4004 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
4005 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
4006 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
4007 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
4008 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4009 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4010 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4011 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4012 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
4013 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
4014 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
4015 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
4016 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
4017 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
4018 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
4019 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
4020 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4021 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4022 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
4023 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4024 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4025 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
4026 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
4027 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4028 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
4029 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
4030 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
4031 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
4032 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
4033 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
4034 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
4035 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
4036 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
4037 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
4038 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
4039 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
4040 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
4041 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
4042 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
4043 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
4044 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);
4045 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
4046 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
4047 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
4048 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
4049 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
4050 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
4051 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
4052 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
4053 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
4054 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
4055 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
4056 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
4057 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
4058 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
4059 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
4060 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4061 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4062 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
4063 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
4064 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
4065 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
4066 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
4067 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
4068 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
4069 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
4070 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
4071 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
4072 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
4073 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
4074 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
4075 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
4076 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
4077 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
4078 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
4079 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
4080 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
4081 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
4082 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
4083 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
4084 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4085 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
4086 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
4087 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
4088 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4089 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
4090 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
4091 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4092 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4093 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
4094 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4095 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
4096 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
4097 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
4098 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);
4099 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4100 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
4101 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
4102 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
4103 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4104 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4105 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4106 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4107 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
4108 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
4109 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
4110 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4111 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4112 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4113 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4114 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4115 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4116 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4117 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4118 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4119 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4120 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);
4121 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);
4122 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4123 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4124 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4125 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4126 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4127 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4128 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4129 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4130 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4131 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4132 
4133 #ifndef VK_NO_PROTOTYPES
4134 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4135     const VkInstanceCreateInfo*                 pCreateInfo,
4136     const VkAllocationCallbacks*                pAllocator,
4137     VkInstance*                                 pInstance);
4138 
4139 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4140     VkInstance                                  instance,
4141     const VkAllocationCallbacks*                pAllocator);
4142 
4143 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4144     VkInstance                                  instance,
4145     uint32_t*                                   pPhysicalDeviceCount,
4146     VkPhysicalDevice*                           pPhysicalDevices);
4147 
4148 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4149     VkPhysicalDevice                            physicalDevice,
4150     VkPhysicalDeviceFeatures*                   pFeatures);
4151 
4152 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4153     VkPhysicalDevice                            physicalDevice,
4154     VkFormat                                    format,
4155     VkFormatProperties*                         pFormatProperties);
4156 
4157 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4158     VkPhysicalDevice                            physicalDevice,
4159     VkFormat                                    format,
4160     VkImageType                                 type,
4161     VkImageTiling                               tiling,
4162     VkImageUsageFlags                           usage,
4163     VkImageCreateFlags                          flags,
4164     VkImageFormatProperties*                    pImageFormatProperties);
4165 
4166 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4167     VkPhysicalDevice                            physicalDevice,
4168     VkPhysicalDeviceProperties*                 pProperties);
4169 
4170 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4171     VkPhysicalDevice                            physicalDevice,
4172     uint32_t*                                   pQueueFamilyPropertyCount,
4173     VkQueueFamilyProperties*                    pQueueFamilyProperties);
4174 
4175 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4176     VkPhysicalDevice                            physicalDevice,
4177     VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
4178 
4179 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4180     VkInstance                                  instance,
4181     const char*                                 pName);
4182 
4183 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4184     VkDevice                                    device,
4185     const char*                                 pName);
4186 
4187 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4188     VkPhysicalDevice                            physicalDevice,
4189     const VkDeviceCreateInfo*                   pCreateInfo,
4190     const VkAllocationCallbacks*                pAllocator,
4191     VkDevice*                                   pDevice);
4192 
4193 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4194     VkDevice                                    device,
4195     const VkAllocationCallbacks*                pAllocator);
4196 
4197 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4198     const char*                                 pLayerName,
4199     uint32_t*                                   pPropertyCount,
4200     VkExtensionProperties*                      pProperties);
4201 
4202 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4203     VkPhysicalDevice                            physicalDevice,
4204     const char*                                 pLayerName,
4205     uint32_t*                                   pPropertyCount,
4206     VkExtensionProperties*                      pProperties);
4207 
4208 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4209     uint32_t*                                   pPropertyCount,
4210     VkLayerProperties*                          pProperties);
4211 
4212 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4213     VkPhysicalDevice                            physicalDevice,
4214     uint32_t*                                   pPropertyCount,
4215     VkLayerProperties*                          pProperties);
4216 
4217 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4218     VkDevice                                    device,
4219     uint32_t                                    queueFamilyIndex,
4220     uint32_t                                    queueIndex,
4221     VkQueue*                                    pQueue);
4222 
4223 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4224     VkQueue                                     queue,
4225     uint32_t                                    submitCount,
4226     const VkSubmitInfo*                         pSubmits,
4227     VkFence                                     fence);
4228 
4229 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4230     VkQueue                                     queue);
4231 
4232 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4233     VkDevice                                    device);
4234 
4235 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4236     VkDevice                                    device,
4237     const VkMemoryAllocateInfo*                 pAllocateInfo,
4238     const VkAllocationCallbacks*                pAllocator,
4239     VkDeviceMemory*                             pMemory);
4240 
4241 VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4242     VkDevice                                    device,
4243     VkDeviceMemory                              memory,
4244     const VkAllocationCallbacks*                pAllocator);
4245 
4246 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4247     VkDevice                                    device,
4248     VkDeviceMemory                              memory,
4249     VkDeviceSize                                offset,
4250     VkDeviceSize                                size,
4251     VkMemoryMapFlags                            flags,
4252     void**                                      ppData);
4253 
4254 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4255     VkDevice                                    device,
4256     VkDeviceMemory                              memory);
4257 
4258 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4259     VkDevice                                    device,
4260     uint32_t                                    memoryRangeCount,
4261     const VkMappedMemoryRange*                  pMemoryRanges);
4262 
4263 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4264     VkDevice                                    device,
4265     uint32_t                                    memoryRangeCount,
4266     const VkMappedMemoryRange*                  pMemoryRanges);
4267 
4268 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4269     VkDevice                                    device,
4270     VkDeviceMemory                              memory,
4271     VkDeviceSize*                               pCommittedMemoryInBytes);
4272 
4273 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4274     VkDevice                                    device,
4275     VkBuffer                                    buffer,
4276     VkDeviceMemory                              memory,
4277     VkDeviceSize                                memoryOffset);
4278 
4279 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4280     VkDevice                                    device,
4281     VkImage                                     image,
4282     VkDeviceMemory                              memory,
4283     VkDeviceSize                                memoryOffset);
4284 
4285 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
4286     VkDevice                                    device,
4287     VkBuffer                                    buffer,
4288     VkMemoryRequirements*                       pMemoryRequirements);
4289 
4290 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
4291     VkDevice                                    device,
4292     VkImage                                     image,
4293     VkMemoryRequirements*                       pMemoryRequirements);
4294 
4295 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
4296     VkDevice                                    device,
4297     VkImage                                     image,
4298     uint32_t*                                   pSparseMemoryRequirementCount,
4299     VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
4300 
4301 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
4302     VkPhysicalDevice                            physicalDevice,
4303     VkFormat                                    format,
4304     VkImageType                                 type,
4305     VkSampleCountFlagBits                       samples,
4306     VkImageUsageFlags                           usage,
4307     VkImageTiling                               tiling,
4308     uint32_t*                                   pPropertyCount,
4309     VkSparseImageFormatProperties*              pProperties);
4310 
4311 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
4312     VkQueue                                     queue,
4313     uint32_t                                    bindInfoCount,
4314     const VkBindSparseInfo*                     pBindInfo,
4315     VkFence                                     fence);
4316 
4317 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
4318     VkDevice                                    device,
4319     const VkFenceCreateInfo*                    pCreateInfo,
4320     const VkAllocationCallbacks*                pAllocator,
4321     VkFence*                                    pFence);
4322 
4323 VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
4324     VkDevice                                    device,
4325     VkFence                                     fence,
4326     const VkAllocationCallbacks*                pAllocator);
4327 
4328 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
4329     VkDevice                                    device,
4330     uint32_t                                    fenceCount,
4331     const VkFence*                              pFences);
4332 
4333 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
4334     VkDevice                                    device,
4335     VkFence                                     fence);
4336 
4337 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
4338     VkDevice                                    device,
4339     uint32_t                                    fenceCount,
4340     const VkFence*                              pFences,
4341     VkBool32                                    waitAll,
4342     uint64_t                                    timeout);
4343 
4344 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
4345     VkDevice                                    device,
4346     const VkSemaphoreCreateInfo*                pCreateInfo,
4347     const VkAllocationCallbacks*                pAllocator,
4348     VkSemaphore*                                pSemaphore);
4349 
4350 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
4351     VkDevice                                    device,
4352     VkSemaphore                                 semaphore,
4353     const VkAllocationCallbacks*                pAllocator);
4354 
4355 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
4356     VkDevice                                    device,
4357     const VkEventCreateInfo*                    pCreateInfo,
4358     const VkAllocationCallbacks*                pAllocator,
4359     VkEvent*                                    pEvent);
4360 
4361 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
4362     VkDevice                                    device,
4363     VkEvent                                     event,
4364     const VkAllocationCallbacks*                pAllocator);
4365 
4366 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
4367     VkDevice                                    device,
4368     VkEvent                                     event);
4369 
4370 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
4371     VkDevice                                    device,
4372     VkEvent                                     event);
4373 
4374 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
4375     VkDevice                                    device,
4376     VkEvent                                     event);
4377 
4378 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
4379     VkDevice                                    device,
4380     const VkQueryPoolCreateInfo*                pCreateInfo,
4381     const VkAllocationCallbacks*                pAllocator,
4382     VkQueryPool*                                pQueryPool);
4383 
4384 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
4385     VkDevice                                    device,
4386     VkQueryPool                                 queryPool,
4387     const VkAllocationCallbacks*                pAllocator);
4388 
4389 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
4390     VkDevice                                    device,
4391     VkQueryPool                                 queryPool,
4392     uint32_t                                    firstQuery,
4393     uint32_t                                    queryCount,
4394     size_t                                      dataSize,
4395     void*                                       pData,
4396     VkDeviceSize                                stride,
4397     VkQueryResultFlags                          flags);
4398 
4399 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
4400     VkDevice                                    device,
4401     const VkBufferCreateInfo*                   pCreateInfo,
4402     const VkAllocationCallbacks*                pAllocator,
4403     VkBuffer*                                   pBuffer);
4404 
4405 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
4406     VkDevice                                    device,
4407     VkBuffer                                    buffer,
4408     const VkAllocationCallbacks*                pAllocator);
4409 
4410 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
4411     VkDevice                                    device,
4412     const VkBufferViewCreateInfo*               pCreateInfo,
4413     const VkAllocationCallbacks*                pAllocator,
4414     VkBufferView*                               pView);
4415 
4416 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
4417     VkDevice                                    device,
4418     VkBufferView                                bufferView,
4419     const VkAllocationCallbacks*                pAllocator);
4420 
4421 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
4422     VkDevice                                    device,
4423     const VkImageCreateInfo*                    pCreateInfo,
4424     const VkAllocationCallbacks*                pAllocator,
4425     VkImage*                                    pImage);
4426 
4427 VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
4428     VkDevice                                    device,
4429     VkImage                                     image,
4430     const VkAllocationCallbacks*                pAllocator);
4431 
4432 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
4433     VkDevice                                    device,
4434     VkImage                                     image,
4435     const VkImageSubresource*                   pSubresource,
4436     VkSubresourceLayout*                        pLayout);
4437 
4438 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
4439     VkDevice                                    device,
4440     const VkImageViewCreateInfo*                pCreateInfo,
4441     const VkAllocationCallbacks*                pAllocator,
4442     VkImageView*                                pView);
4443 
4444 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
4445     VkDevice                                    device,
4446     VkImageView                                 imageView,
4447     const VkAllocationCallbacks*                pAllocator);
4448 
4449 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
4450     VkDevice                                    device,
4451     const VkShaderModuleCreateInfo*             pCreateInfo,
4452     const VkAllocationCallbacks*                pAllocator,
4453     VkShaderModule*                             pShaderModule);
4454 
4455 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
4456     VkDevice                                    device,
4457     VkShaderModule                              shaderModule,
4458     const VkAllocationCallbacks*                pAllocator);
4459 
4460 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
4461     VkDevice                                    device,
4462     const VkPipelineCacheCreateInfo*            pCreateInfo,
4463     const VkAllocationCallbacks*                pAllocator,
4464     VkPipelineCache*                            pPipelineCache);
4465 
4466 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
4467     VkDevice                                    device,
4468     VkPipelineCache                             pipelineCache,
4469     const VkAllocationCallbacks*                pAllocator);
4470 
4471 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
4472     VkDevice                                    device,
4473     VkPipelineCache                             pipelineCache,
4474     size_t*                                     pDataSize,
4475     void*                                       pData);
4476 
4477 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
4478     VkDevice                                    device,
4479     VkPipelineCache                             dstCache,
4480     uint32_t                                    srcCacheCount,
4481     const VkPipelineCache*                      pSrcCaches);
4482 
4483 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
4484     VkDevice                                    device,
4485     VkPipelineCache                             pipelineCache,
4486     uint32_t                                    createInfoCount,
4487     const VkGraphicsPipelineCreateInfo*         pCreateInfos,
4488     const VkAllocationCallbacks*                pAllocator,
4489     VkPipeline*                                 pPipelines);
4490 
4491 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
4492     VkDevice                                    device,
4493     VkPipelineCache                             pipelineCache,
4494     uint32_t                                    createInfoCount,
4495     const VkComputePipelineCreateInfo*          pCreateInfos,
4496     const VkAllocationCallbacks*                pAllocator,
4497     VkPipeline*                                 pPipelines);
4498 
4499 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
4500     VkDevice                                    device,
4501     VkPipeline                                  pipeline,
4502     const VkAllocationCallbacks*                pAllocator);
4503 
4504 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
4505     VkDevice                                    device,
4506     const VkPipelineLayoutCreateInfo*           pCreateInfo,
4507     const VkAllocationCallbacks*                pAllocator,
4508     VkPipelineLayout*                           pPipelineLayout);
4509 
4510 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
4511     VkDevice                                    device,
4512     VkPipelineLayout                            pipelineLayout,
4513     const VkAllocationCallbacks*                pAllocator);
4514 
4515 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
4516     VkDevice                                    device,
4517     const VkSamplerCreateInfo*                  pCreateInfo,
4518     const VkAllocationCallbacks*                pAllocator,
4519     VkSampler*                                  pSampler);
4520 
4521 VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
4522     VkDevice                                    device,
4523     VkSampler                                   sampler,
4524     const VkAllocationCallbacks*                pAllocator);
4525 
4526 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
4527     VkDevice                                    device,
4528     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
4529     const VkAllocationCallbacks*                pAllocator,
4530     VkDescriptorSetLayout*                      pSetLayout);
4531 
4532 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
4533     VkDevice                                    device,
4534     VkDescriptorSetLayout                       descriptorSetLayout,
4535     const VkAllocationCallbacks*                pAllocator);
4536 
4537 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
4538     VkDevice                                    device,
4539     const VkDescriptorPoolCreateInfo*           pCreateInfo,
4540     const VkAllocationCallbacks*                pAllocator,
4541     VkDescriptorPool*                           pDescriptorPool);
4542 
4543 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
4544     VkDevice                                    device,
4545     VkDescriptorPool                            descriptorPool,
4546     const VkAllocationCallbacks*                pAllocator);
4547 
4548 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
4549     VkDevice                                    device,
4550     VkDescriptorPool                            descriptorPool,
4551     VkDescriptorPoolResetFlags                  flags);
4552 
4553 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
4554     VkDevice                                    device,
4555     const VkDescriptorSetAllocateInfo*          pAllocateInfo,
4556     VkDescriptorSet*                            pDescriptorSets);
4557 
4558 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
4559     VkDevice                                    device,
4560     VkDescriptorPool                            descriptorPool,
4561     uint32_t                                    descriptorSetCount,
4562     const VkDescriptorSet*                      pDescriptorSets);
4563 
4564 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
4565     VkDevice                                    device,
4566     uint32_t                                    descriptorWriteCount,
4567     const VkWriteDescriptorSet*                 pDescriptorWrites,
4568     uint32_t                                    descriptorCopyCount,
4569     const VkCopyDescriptorSet*                  pDescriptorCopies);
4570 
4571 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
4572     VkDevice                                    device,
4573     const VkFramebufferCreateInfo*              pCreateInfo,
4574     const VkAllocationCallbacks*                pAllocator,
4575     VkFramebuffer*                              pFramebuffer);
4576 
4577 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
4578     VkDevice                                    device,
4579     VkFramebuffer                               framebuffer,
4580     const VkAllocationCallbacks*                pAllocator);
4581 
4582 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
4583     VkDevice                                    device,
4584     const VkRenderPassCreateInfo*               pCreateInfo,
4585     const VkAllocationCallbacks*                pAllocator,
4586     VkRenderPass*                               pRenderPass);
4587 
4588 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
4589     VkDevice                                    device,
4590     VkRenderPass                                renderPass,
4591     const VkAllocationCallbacks*                pAllocator);
4592 
4593 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
4594     VkDevice                                    device,
4595     VkRenderPass                                renderPass,
4596     VkExtent2D*                                 pGranularity);
4597 
4598 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
4599     VkDevice                                    device,
4600     const VkCommandPoolCreateInfo*              pCreateInfo,
4601     const VkAllocationCallbacks*                pAllocator,
4602     VkCommandPool*                              pCommandPool);
4603 
4604 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
4605     VkDevice                                    device,
4606     VkCommandPool                               commandPool,
4607     const VkAllocationCallbacks*                pAllocator);
4608 
4609 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
4610     VkDevice                                    device,
4611     VkCommandPool                               commandPool,
4612     VkCommandPoolResetFlags                     flags);
4613 
4614 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
4615     VkDevice                                    device,
4616     const VkCommandBufferAllocateInfo*          pAllocateInfo,
4617     VkCommandBuffer*                            pCommandBuffers);
4618 
4619 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
4620     VkDevice                                    device,
4621     VkCommandPool                               commandPool,
4622     uint32_t                                    commandBufferCount,
4623     const VkCommandBuffer*                      pCommandBuffers);
4624 
4625 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
4626     VkCommandBuffer                             commandBuffer,
4627     const VkCommandBufferBeginInfo*             pBeginInfo);
4628 
4629 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
4630     VkCommandBuffer                             commandBuffer);
4631 
4632 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
4633     VkCommandBuffer                             commandBuffer,
4634     VkCommandBufferResetFlags                   flags);
4635 
4636 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
4637     VkCommandBuffer                             commandBuffer,
4638     VkPipelineBindPoint                         pipelineBindPoint,
4639     VkPipeline                                  pipeline);
4640 
4641 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
4642     VkCommandBuffer                             commandBuffer,
4643     uint32_t                                    firstViewport,
4644     uint32_t                                    viewportCount,
4645     const VkViewport*                           pViewports);
4646 
4647 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
4648     VkCommandBuffer                             commandBuffer,
4649     uint32_t                                    firstScissor,
4650     uint32_t                                    scissorCount,
4651     const VkRect2D*                             pScissors);
4652 
4653 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
4654     VkCommandBuffer                             commandBuffer,
4655     float                                       lineWidth);
4656 
4657 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
4658     VkCommandBuffer                             commandBuffer,
4659     float                                       depthBiasConstantFactor,
4660     float                                       depthBiasClamp,
4661     float                                       depthBiasSlopeFactor);
4662 
4663 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
4664     VkCommandBuffer                             commandBuffer,
4665     const float                                 blendConstants[4]);
4666 
4667 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
4668     VkCommandBuffer                             commandBuffer,
4669     float                                       minDepthBounds,
4670     float                                       maxDepthBounds);
4671 
4672 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
4673     VkCommandBuffer                             commandBuffer,
4674     VkStencilFaceFlags                          faceMask,
4675     uint32_t                                    compareMask);
4676 
4677 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
4678     VkCommandBuffer                             commandBuffer,
4679     VkStencilFaceFlags                          faceMask,
4680     uint32_t                                    writeMask);
4681 
4682 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
4683     VkCommandBuffer                             commandBuffer,
4684     VkStencilFaceFlags                          faceMask,
4685     uint32_t                                    reference);
4686 
4687 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
4688     VkCommandBuffer                             commandBuffer,
4689     VkPipelineBindPoint                         pipelineBindPoint,
4690     VkPipelineLayout                            layout,
4691     uint32_t                                    firstSet,
4692     uint32_t                                    descriptorSetCount,
4693     const VkDescriptorSet*                      pDescriptorSets,
4694     uint32_t                                    dynamicOffsetCount,
4695     const uint32_t*                             pDynamicOffsets);
4696 
4697 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
4698     VkCommandBuffer                             commandBuffer,
4699     VkBuffer                                    buffer,
4700     VkDeviceSize                                offset,
4701     VkIndexType                                 indexType);
4702 
4703 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
4704     VkCommandBuffer                             commandBuffer,
4705     uint32_t                                    firstBinding,
4706     uint32_t                                    bindingCount,
4707     const VkBuffer*                             pBuffers,
4708     const VkDeviceSize*                         pOffsets);
4709 
4710 VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
4711     VkCommandBuffer                             commandBuffer,
4712     uint32_t                                    vertexCount,
4713     uint32_t                                    instanceCount,
4714     uint32_t                                    firstVertex,
4715     uint32_t                                    firstInstance);
4716 
4717 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
4718     VkCommandBuffer                             commandBuffer,
4719     uint32_t                                    indexCount,
4720     uint32_t                                    instanceCount,
4721     uint32_t                                    firstIndex,
4722     int32_t                                     vertexOffset,
4723     uint32_t                                    firstInstance);
4724 
4725 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
4726     VkCommandBuffer                             commandBuffer,
4727     VkBuffer                                    buffer,
4728     VkDeviceSize                                offset,
4729     uint32_t                                    drawCount,
4730     uint32_t                                    stride);
4731 
4732 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
4733     VkCommandBuffer                             commandBuffer,
4734     VkBuffer                                    buffer,
4735     VkDeviceSize                                offset,
4736     uint32_t                                    drawCount,
4737     uint32_t                                    stride);
4738 
4739 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
4740     VkCommandBuffer                             commandBuffer,
4741     uint32_t                                    groupCountX,
4742     uint32_t                                    groupCountY,
4743     uint32_t                                    groupCountZ);
4744 
4745 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
4746     VkCommandBuffer                             commandBuffer,
4747     VkBuffer                                    buffer,
4748     VkDeviceSize                                offset);
4749 
4750 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
4751     VkCommandBuffer                             commandBuffer,
4752     VkBuffer                                    srcBuffer,
4753     VkBuffer                                    dstBuffer,
4754     uint32_t                                    regionCount,
4755     const VkBufferCopy*                         pRegions);
4756 
4757 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
4758     VkCommandBuffer                             commandBuffer,
4759     VkImage                                     srcImage,
4760     VkImageLayout                               srcImageLayout,
4761     VkImage                                     dstImage,
4762     VkImageLayout                               dstImageLayout,
4763     uint32_t                                    regionCount,
4764     const VkImageCopy*                          pRegions);
4765 
4766 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
4767     VkCommandBuffer                             commandBuffer,
4768     VkImage                                     srcImage,
4769     VkImageLayout                               srcImageLayout,
4770     VkImage                                     dstImage,
4771     VkImageLayout                               dstImageLayout,
4772     uint32_t                                    regionCount,
4773     const VkImageBlit*                          pRegions,
4774     VkFilter                                    filter);
4775 
4776 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
4777     VkCommandBuffer                             commandBuffer,
4778     VkBuffer                                    srcBuffer,
4779     VkImage                                     dstImage,
4780     VkImageLayout                               dstImageLayout,
4781     uint32_t                                    regionCount,
4782     const VkBufferImageCopy*                    pRegions);
4783 
4784 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
4785     VkCommandBuffer                             commandBuffer,
4786     VkImage                                     srcImage,
4787     VkImageLayout                               srcImageLayout,
4788     VkBuffer                                    dstBuffer,
4789     uint32_t                                    regionCount,
4790     const VkBufferImageCopy*                    pRegions);
4791 
4792 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
4793     VkCommandBuffer                             commandBuffer,
4794     VkBuffer                                    dstBuffer,
4795     VkDeviceSize                                dstOffset,
4796     VkDeviceSize                                dataSize,
4797     const void*                                 pData);
4798 
4799 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
4800     VkCommandBuffer                             commandBuffer,
4801     VkBuffer                                    dstBuffer,
4802     VkDeviceSize                                dstOffset,
4803     VkDeviceSize                                size,
4804     uint32_t                                    data);
4805 
4806 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
4807     VkCommandBuffer                             commandBuffer,
4808     VkImage                                     image,
4809     VkImageLayout                               imageLayout,
4810     const VkClearColorValue*                    pColor,
4811     uint32_t                                    rangeCount,
4812     const VkImageSubresourceRange*              pRanges);
4813 
4814 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
4815     VkCommandBuffer                             commandBuffer,
4816     VkImage                                     image,
4817     VkImageLayout                               imageLayout,
4818     const VkClearDepthStencilValue*             pDepthStencil,
4819     uint32_t                                    rangeCount,
4820     const VkImageSubresourceRange*              pRanges);
4821 
4822 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
4823     VkCommandBuffer                             commandBuffer,
4824     uint32_t                                    attachmentCount,
4825     const VkClearAttachment*                    pAttachments,
4826     uint32_t                                    rectCount,
4827     const VkClearRect*                          pRects);
4828 
4829 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
4830     VkCommandBuffer                             commandBuffer,
4831     VkImage                                     srcImage,
4832     VkImageLayout                               srcImageLayout,
4833     VkImage                                     dstImage,
4834     VkImageLayout                               dstImageLayout,
4835     uint32_t                                    regionCount,
4836     const VkImageResolve*                       pRegions);
4837 
4838 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
4839     VkCommandBuffer                             commandBuffer,
4840     VkEvent                                     event,
4841     VkPipelineStageFlags                        stageMask);
4842 
4843 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
4844     VkCommandBuffer                             commandBuffer,
4845     VkEvent                                     event,
4846     VkPipelineStageFlags                        stageMask);
4847 
4848 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
4849     VkCommandBuffer                             commandBuffer,
4850     uint32_t                                    eventCount,
4851     const VkEvent*                              pEvents,
4852     VkPipelineStageFlags                        srcStageMask,
4853     VkPipelineStageFlags                        dstStageMask,
4854     uint32_t                                    memoryBarrierCount,
4855     const VkMemoryBarrier*                      pMemoryBarriers,
4856     uint32_t                                    bufferMemoryBarrierCount,
4857     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
4858     uint32_t                                    imageMemoryBarrierCount,
4859     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
4860 
4861 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
4862     VkCommandBuffer                             commandBuffer,
4863     VkPipelineStageFlags                        srcStageMask,
4864     VkPipelineStageFlags                        dstStageMask,
4865     VkDependencyFlags                           dependencyFlags,
4866     uint32_t                                    memoryBarrierCount,
4867     const VkMemoryBarrier*                      pMemoryBarriers,
4868     uint32_t                                    bufferMemoryBarrierCount,
4869     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
4870     uint32_t                                    imageMemoryBarrierCount,
4871     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
4872 
4873 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
4874     VkCommandBuffer                             commandBuffer,
4875     VkQueryPool                                 queryPool,
4876     uint32_t                                    query,
4877     VkQueryControlFlags                         flags);
4878 
4879 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
4880     VkCommandBuffer                             commandBuffer,
4881     VkQueryPool                                 queryPool,
4882     uint32_t                                    query);
4883 
4884 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
4885     VkCommandBuffer                             commandBuffer,
4886     VkQueryPool                                 queryPool,
4887     uint32_t                                    firstQuery,
4888     uint32_t                                    queryCount);
4889 
4890 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
4891     VkCommandBuffer                             commandBuffer,
4892     VkPipelineStageFlagBits                     pipelineStage,
4893     VkQueryPool                                 queryPool,
4894     uint32_t                                    query);
4895 
4896 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
4897     VkCommandBuffer                             commandBuffer,
4898     VkQueryPool                                 queryPool,
4899     uint32_t                                    firstQuery,
4900     uint32_t                                    queryCount,
4901     VkBuffer                                    dstBuffer,
4902     VkDeviceSize                                dstOffset,
4903     VkDeviceSize                                stride,
4904     VkQueryResultFlags                          flags);
4905 
4906 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
4907     VkCommandBuffer                             commandBuffer,
4908     VkPipelineLayout                            layout,
4909     VkShaderStageFlags                          stageFlags,
4910     uint32_t                                    offset,
4911     uint32_t                                    size,
4912     const void*                                 pValues);
4913 
4914 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
4915     VkCommandBuffer                             commandBuffer,
4916     const VkRenderPassBeginInfo*                pRenderPassBegin,
4917     VkSubpassContents                           contents);
4918 
4919 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
4920     VkCommandBuffer                             commandBuffer,
4921     VkSubpassContents                           contents);
4922 
4923 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
4924     VkCommandBuffer                             commandBuffer);
4925 
4926 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
4927     VkCommandBuffer                             commandBuffer,
4928     uint32_t                                    commandBufferCount,
4929     const VkCommandBuffer*                      pCommandBuffers);
4930 #endif
4931 
4932 
4933 // VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
4934 #define VK_VERSION_1_1 1
4935 // Vulkan 1.1 version number
4936 #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
4937 
4938 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
4939 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
4940 #define VK_MAX_DEVICE_GROUP_SIZE          32U
4941 #define VK_LUID_SIZE                      8U
4942 #define VK_QUEUE_FAMILY_EXTERNAL          (~1U)
4943 
4944 typedef enum VkPointClippingBehavior {
4945     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
4946     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
4947     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
4948     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
4949     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
4950 } VkPointClippingBehavior;
4951 
4952 typedef enum VkTessellationDomainOrigin {
4953     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
4954     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
4955     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
4956     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
4957     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
4958 } VkTessellationDomainOrigin;
4959 
4960 typedef enum VkSamplerYcbcrModelConversion {
4961     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
4962     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
4963     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
4964     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
4965     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
4966     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
4967     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
4968     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
4969     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
4970     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
4971     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
4972 } VkSamplerYcbcrModelConversion;
4973 
4974 typedef enum VkSamplerYcbcrRange {
4975     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
4976     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
4977     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
4978     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
4979     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
4980 } VkSamplerYcbcrRange;
4981 
4982 typedef enum VkChromaLocation {
4983     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
4984     VK_CHROMA_LOCATION_MIDPOINT = 1,
4985     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
4986     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
4987     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
4988 } VkChromaLocation;
4989 
4990 typedef enum VkDescriptorUpdateTemplateType {
4991     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
4992     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
4993     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4994     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
4995 } VkDescriptorUpdateTemplateType;
4996 
4997 typedef enum VkSubgroupFeatureFlagBits {
4998     VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
4999     VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
5000     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
5001     VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
5002     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
5003     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
5004     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
5005     VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
5006     VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
5007     VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = 0x00000200,
5008     VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = 0x00000400,
5009     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5010 } VkSubgroupFeatureFlagBits;
5011 typedef VkFlags VkSubgroupFeatureFlags;
5012 
5013 typedef enum VkPeerMemoryFeatureFlagBits {
5014     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
5015     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
5016     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
5017     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
5018     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
5019     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
5020     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
5021     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
5022     VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5023 } VkPeerMemoryFeatureFlagBits;
5024 typedef VkFlags VkPeerMemoryFeatureFlags;
5025 
5026 typedef enum VkMemoryAllocateFlagBits {
5027     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
5028     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
5029     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
5030     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
5031     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
5032     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
5033     VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5034 } VkMemoryAllocateFlagBits;
5035 typedef VkFlags VkMemoryAllocateFlags;
5036 typedef VkFlags VkCommandPoolTrimFlags;
5037 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
5038 
5039 typedef enum VkExternalMemoryHandleTypeFlagBits {
5040     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5041     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5042     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5043     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
5044     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
5045     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
5046     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
5047     VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
5048     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
5049     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
5050     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
5051     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
5052     VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
5053     VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
5054     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5055     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5056     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5057     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5058     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5059     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5060     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5061     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5062 } VkExternalMemoryHandleTypeFlagBits;
5063 typedef VkFlags VkExternalMemoryHandleTypeFlags;
5064 
5065 typedef enum VkExternalMemoryFeatureFlagBits {
5066     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
5067     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
5068     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
5069     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5070     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5071     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
5072     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5073 } VkExternalMemoryFeatureFlagBits;
5074 typedef VkFlags VkExternalMemoryFeatureFlags;
5075 
5076 typedef enum VkExternalFenceHandleTypeFlagBits {
5077     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5078     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5079     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5080     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
5081     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5082     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5083     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5084     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
5085     VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5086 } VkExternalFenceHandleTypeFlagBits;
5087 typedef VkFlags VkExternalFenceHandleTypeFlags;
5088 
5089 typedef enum VkExternalFenceFeatureFlagBits {
5090     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5091     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5092     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5093     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
5094     VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5095 } VkExternalFenceFeatureFlagBits;
5096 typedef VkFlags VkExternalFenceFeatureFlags;
5097 
5098 typedef enum VkFenceImportFlagBits {
5099     VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
5100     VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
5101     VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5102 } VkFenceImportFlagBits;
5103 typedef VkFlags VkFenceImportFlags;
5104 
5105 typedef enum VkSemaphoreImportFlagBits {
5106     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
5107     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
5108     VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5109 } VkSemaphoreImportFlagBits;
5110 typedef VkFlags VkSemaphoreImportFlags;
5111 
5112 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
5113     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5114     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5115     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5116     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5117     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5118     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5119     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5120     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5121     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5122     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5123     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5124     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5125     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5126 } VkExternalSemaphoreHandleTypeFlagBits;
5127 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5128 
5129 typedef enum VkExternalSemaphoreFeatureFlagBits {
5130     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5131     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5132     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5133     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5134     VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5135 } VkExternalSemaphoreFeatureFlagBits;
5136 typedef VkFlags VkExternalSemaphoreFeatureFlags;
5137 typedef struct VkPhysicalDeviceSubgroupProperties {
5138     VkStructureType           sType;
5139     void*                     pNext;
5140     uint32_t                  subgroupSize;
5141     VkShaderStageFlags        supportedStages;
5142     VkSubgroupFeatureFlags    supportedOperations;
5143     VkBool32                  quadOperationsInAllStages;
5144 } VkPhysicalDeviceSubgroupProperties;
5145 
5146 typedef struct VkBindBufferMemoryInfo {
5147     VkStructureType    sType;
5148     const void*        pNext;
5149     VkBuffer           buffer;
5150     VkDeviceMemory     memory;
5151     VkDeviceSize       memoryOffset;
5152 } VkBindBufferMemoryInfo;
5153 
5154 typedef struct VkBindImageMemoryInfo {
5155     VkStructureType    sType;
5156     const void*        pNext;
5157     VkImage            image;
5158     VkDeviceMemory     memory;
5159     VkDeviceSize       memoryOffset;
5160 } VkBindImageMemoryInfo;
5161 
5162 typedef struct VkPhysicalDevice16BitStorageFeatures {
5163     VkStructureType    sType;
5164     void*              pNext;
5165     VkBool32           storageBuffer16BitAccess;
5166     VkBool32           uniformAndStorageBuffer16BitAccess;
5167     VkBool32           storagePushConstant16;
5168     VkBool32           storageInputOutput16;
5169 } VkPhysicalDevice16BitStorageFeatures;
5170 
5171 typedef struct VkMemoryDedicatedRequirements {
5172     VkStructureType    sType;
5173     void*              pNext;
5174     VkBool32           prefersDedicatedAllocation;
5175     VkBool32           requiresDedicatedAllocation;
5176 } VkMemoryDedicatedRequirements;
5177 
5178 typedef struct VkMemoryDedicatedAllocateInfo {
5179     VkStructureType    sType;
5180     const void*        pNext;
5181     VkImage            image;
5182     VkBuffer           buffer;
5183 } VkMemoryDedicatedAllocateInfo;
5184 
5185 typedef struct VkMemoryAllocateFlagsInfo {
5186     VkStructureType          sType;
5187     const void*              pNext;
5188     VkMemoryAllocateFlags    flags;
5189     uint32_t                 deviceMask;
5190 } VkMemoryAllocateFlagsInfo;
5191 
5192 typedef struct VkDeviceGroupRenderPassBeginInfo {
5193     VkStructureType    sType;
5194     const void*        pNext;
5195     uint32_t           deviceMask;
5196     uint32_t           deviceRenderAreaCount;
5197     const VkRect2D*    pDeviceRenderAreas;
5198 } VkDeviceGroupRenderPassBeginInfo;
5199 
5200 typedef struct VkDeviceGroupCommandBufferBeginInfo {
5201     VkStructureType    sType;
5202     const void*        pNext;
5203     uint32_t           deviceMask;
5204 } VkDeviceGroupCommandBufferBeginInfo;
5205 
5206 typedef struct VkDeviceGroupSubmitInfo {
5207     VkStructureType    sType;
5208     const void*        pNext;
5209     uint32_t           waitSemaphoreCount;
5210     const uint32_t*    pWaitSemaphoreDeviceIndices;
5211     uint32_t           commandBufferCount;
5212     const uint32_t*    pCommandBufferDeviceMasks;
5213     uint32_t           signalSemaphoreCount;
5214     const uint32_t*    pSignalSemaphoreDeviceIndices;
5215 } VkDeviceGroupSubmitInfo;
5216 
5217 typedef struct VkDeviceGroupBindSparseInfo {
5218     VkStructureType    sType;
5219     const void*        pNext;
5220     uint32_t           resourceDeviceIndex;
5221     uint32_t           memoryDeviceIndex;
5222 } VkDeviceGroupBindSparseInfo;
5223 
5224 typedef struct VkBindBufferMemoryDeviceGroupInfo {
5225     VkStructureType    sType;
5226     const void*        pNext;
5227     uint32_t           deviceIndexCount;
5228     const uint32_t*    pDeviceIndices;
5229 } VkBindBufferMemoryDeviceGroupInfo;
5230 
5231 typedef struct VkBindImageMemoryDeviceGroupInfo {
5232     VkStructureType    sType;
5233     const void*        pNext;
5234     uint32_t           deviceIndexCount;
5235     const uint32_t*    pDeviceIndices;
5236     uint32_t           splitInstanceBindRegionCount;
5237     const VkRect2D*    pSplitInstanceBindRegions;
5238 } VkBindImageMemoryDeviceGroupInfo;
5239 
5240 typedef struct VkPhysicalDeviceGroupProperties {
5241     VkStructureType     sType;
5242     void*               pNext;
5243     uint32_t            physicalDeviceCount;
5244     VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5245     VkBool32            subsetAllocation;
5246 } VkPhysicalDeviceGroupProperties;
5247 
5248 typedef struct VkDeviceGroupDeviceCreateInfo {
5249     VkStructureType            sType;
5250     const void*                pNext;
5251     uint32_t                   physicalDeviceCount;
5252     const VkPhysicalDevice*    pPhysicalDevices;
5253 } VkDeviceGroupDeviceCreateInfo;
5254 
5255 typedef struct VkBufferMemoryRequirementsInfo2 {
5256     VkStructureType    sType;
5257     const void*        pNext;
5258     VkBuffer           buffer;
5259 } VkBufferMemoryRequirementsInfo2;
5260 
5261 typedef struct VkImageMemoryRequirementsInfo2 {
5262     VkStructureType    sType;
5263     const void*        pNext;
5264     VkImage            image;
5265 } VkImageMemoryRequirementsInfo2;
5266 
5267 typedef struct VkImageSparseMemoryRequirementsInfo2 {
5268     VkStructureType    sType;
5269     const void*        pNext;
5270     VkImage            image;
5271 } VkImageSparseMemoryRequirementsInfo2;
5272 
5273 typedef struct VkMemoryRequirements2 {
5274     VkStructureType         sType;
5275     void*                   pNext;
5276     VkMemoryRequirements    memoryRequirements;
5277 } VkMemoryRequirements2;
5278 
5279 typedef struct VkSparseImageMemoryRequirements2 {
5280     VkStructureType                    sType;
5281     void*                              pNext;
5282     VkSparseImageMemoryRequirements    memoryRequirements;
5283 } VkSparseImageMemoryRequirements2;
5284 
5285 typedef struct VkPhysicalDeviceFeatures2 {
5286     VkStructureType             sType;
5287     void*                       pNext;
5288     VkPhysicalDeviceFeatures    features;
5289 } VkPhysicalDeviceFeatures2;
5290 
5291 typedef struct VkPhysicalDeviceProperties2 {
5292     VkStructureType               sType;
5293     void*                         pNext;
5294     VkPhysicalDeviceProperties    properties;
5295 } VkPhysicalDeviceProperties2;
5296 
5297 typedef struct VkFormatProperties2 {
5298     VkStructureType       sType;
5299     void*                 pNext;
5300     VkFormatProperties    formatProperties;
5301 } VkFormatProperties2;
5302 
5303 typedef struct VkImageFormatProperties2 {
5304     VkStructureType            sType;
5305     void*                      pNext;
5306     VkImageFormatProperties    imageFormatProperties;
5307 } VkImageFormatProperties2;
5308 
5309 typedef struct VkPhysicalDeviceImageFormatInfo2 {
5310     VkStructureType       sType;
5311     const void*           pNext;
5312     VkFormat              format;
5313     VkImageType           type;
5314     VkImageTiling         tiling;
5315     VkImageUsageFlags     usage;
5316     VkImageCreateFlags    flags;
5317 } VkPhysicalDeviceImageFormatInfo2;
5318 
5319 typedef struct VkQueueFamilyProperties2 {
5320     VkStructureType            sType;
5321     void*                      pNext;
5322     VkQueueFamilyProperties    queueFamilyProperties;
5323 } VkQueueFamilyProperties2;
5324 
5325 typedef struct VkPhysicalDeviceMemoryProperties2 {
5326     VkStructureType                     sType;
5327     void*                               pNext;
5328     VkPhysicalDeviceMemoryProperties    memoryProperties;
5329 } VkPhysicalDeviceMemoryProperties2;
5330 
5331 typedef struct VkSparseImageFormatProperties2 {
5332     VkStructureType                  sType;
5333     void*                            pNext;
5334     VkSparseImageFormatProperties    properties;
5335 } VkSparseImageFormatProperties2;
5336 
5337 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
5338     VkStructureType          sType;
5339     const void*              pNext;
5340     VkFormat                 format;
5341     VkImageType              type;
5342     VkSampleCountFlagBits    samples;
5343     VkImageUsageFlags        usage;
5344     VkImageTiling            tiling;
5345 } VkPhysicalDeviceSparseImageFormatInfo2;
5346 
5347 typedef struct VkPhysicalDevicePointClippingProperties {
5348     VkStructureType            sType;
5349     void*                      pNext;
5350     VkPointClippingBehavior    pointClippingBehavior;
5351 } VkPhysicalDevicePointClippingProperties;
5352 
5353 typedef struct VkInputAttachmentAspectReference {
5354     uint32_t              subpass;
5355     uint32_t              inputAttachmentIndex;
5356     VkImageAspectFlags    aspectMask;
5357 } VkInputAttachmentAspectReference;
5358 
5359 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
5360     VkStructureType                            sType;
5361     const void*                                pNext;
5362     uint32_t                                   aspectReferenceCount;
5363     const VkInputAttachmentAspectReference*    pAspectReferences;
5364 } VkRenderPassInputAttachmentAspectCreateInfo;
5365 
5366 typedef struct VkImageViewUsageCreateInfo {
5367     VkStructureType      sType;
5368     const void*          pNext;
5369     VkImageUsageFlags    usage;
5370 } VkImageViewUsageCreateInfo;
5371 
5372 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
5373     VkStructureType               sType;
5374     const void*                   pNext;
5375     VkTessellationDomainOrigin    domainOrigin;
5376 } VkPipelineTessellationDomainOriginStateCreateInfo;
5377 
5378 typedef struct VkRenderPassMultiviewCreateInfo {
5379     VkStructureType    sType;
5380     const void*        pNext;
5381     uint32_t           subpassCount;
5382     const uint32_t*    pViewMasks;
5383     uint32_t           dependencyCount;
5384     const int32_t*     pViewOffsets;
5385     uint32_t           correlationMaskCount;
5386     const uint32_t*    pCorrelationMasks;
5387 } VkRenderPassMultiviewCreateInfo;
5388 
5389 typedef struct VkPhysicalDeviceMultiviewFeatures {
5390     VkStructureType    sType;
5391     void*              pNext;
5392     VkBool32           multiview;
5393     VkBool32           multiviewGeometryShader;
5394     VkBool32           multiviewTessellationShader;
5395 } VkPhysicalDeviceMultiviewFeatures;
5396 
5397 typedef struct VkPhysicalDeviceMultiviewProperties {
5398     VkStructureType    sType;
5399     void*              pNext;
5400     uint32_t           maxMultiviewViewCount;
5401     uint32_t           maxMultiviewInstanceIndex;
5402 } VkPhysicalDeviceMultiviewProperties;
5403 
5404 typedef struct VkPhysicalDeviceVariablePointersFeatures {
5405     VkStructureType    sType;
5406     void*              pNext;
5407     VkBool32           variablePointersStorageBuffer;
5408     VkBool32           variablePointers;
5409 } VkPhysicalDeviceVariablePointersFeatures;
5410 
5411 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
5412 
5413 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
5414     VkStructureType    sType;
5415     void*              pNext;
5416     VkBool32           protectedMemory;
5417 } VkPhysicalDeviceProtectedMemoryFeatures;
5418 
5419 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
5420     VkStructureType    sType;
5421     void*              pNext;
5422     VkBool32           protectedNoFault;
5423 } VkPhysicalDeviceProtectedMemoryProperties;
5424 
5425 typedef struct VkDeviceQueueInfo2 {
5426     VkStructureType             sType;
5427     const void*                 pNext;
5428     VkDeviceQueueCreateFlags    flags;
5429     uint32_t                    queueFamilyIndex;
5430     uint32_t                    queueIndex;
5431 } VkDeviceQueueInfo2;
5432 
5433 typedef struct VkProtectedSubmitInfo {
5434     VkStructureType    sType;
5435     const void*        pNext;
5436     VkBool32           protectedSubmit;
5437 } VkProtectedSubmitInfo;
5438 
5439 typedef struct VkSamplerYcbcrConversionCreateInfo {
5440     VkStructureType                  sType;
5441     const void*                      pNext;
5442     VkFormat                         format;
5443     VkSamplerYcbcrModelConversion    ycbcrModel;
5444     VkSamplerYcbcrRange              ycbcrRange;
5445     VkComponentMapping               components;
5446     VkChromaLocation                 xChromaOffset;
5447     VkChromaLocation                 yChromaOffset;
5448     VkFilter                         chromaFilter;
5449     VkBool32                         forceExplicitReconstruction;
5450 } VkSamplerYcbcrConversionCreateInfo;
5451 
5452 typedef struct VkSamplerYcbcrConversionInfo {
5453     VkStructureType             sType;
5454     const void*                 pNext;
5455     VkSamplerYcbcrConversion    conversion;
5456 } VkSamplerYcbcrConversionInfo;
5457 
5458 typedef struct VkBindImagePlaneMemoryInfo {
5459     VkStructureType          sType;
5460     const void*              pNext;
5461     VkImageAspectFlagBits    planeAspect;
5462 } VkBindImagePlaneMemoryInfo;
5463 
5464 typedef struct VkImagePlaneMemoryRequirementsInfo {
5465     VkStructureType          sType;
5466     const void*              pNext;
5467     VkImageAspectFlagBits    planeAspect;
5468 } VkImagePlaneMemoryRequirementsInfo;
5469 
5470 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5471     VkStructureType    sType;
5472     void*              pNext;
5473     VkBool32           samplerYcbcrConversion;
5474 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
5475 
5476 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
5477     VkStructureType    sType;
5478     void*              pNext;
5479     uint32_t           combinedImageSamplerDescriptorCount;
5480 } VkSamplerYcbcrConversionImageFormatProperties;
5481 
5482 typedef struct VkDescriptorUpdateTemplateEntry {
5483     uint32_t            dstBinding;
5484     uint32_t            dstArrayElement;
5485     uint32_t            descriptorCount;
5486     VkDescriptorType    descriptorType;
5487     size_t              offset;
5488     size_t              stride;
5489 } VkDescriptorUpdateTemplateEntry;
5490 
5491 typedef struct VkDescriptorUpdateTemplateCreateInfo {
5492     VkStructureType                           sType;
5493     const void*                               pNext;
5494     VkDescriptorUpdateTemplateCreateFlags     flags;
5495     uint32_t                                  descriptorUpdateEntryCount;
5496     const VkDescriptorUpdateTemplateEntry*    pDescriptorUpdateEntries;
5497     VkDescriptorUpdateTemplateType            templateType;
5498     VkDescriptorSetLayout                     descriptorSetLayout;
5499     VkPipelineBindPoint                       pipelineBindPoint;
5500     VkPipelineLayout                          pipelineLayout;
5501     uint32_t                                  set;
5502 } VkDescriptorUpdateTemplateCreateInfo;
5503 
5504 typedef struct VkExternalMemoryProperties {
5505     VkExternalMemoryFeatureFlags       externalMemoryFeatures;
5506     VkExternalMemoryHandleTypeFlags    exportFromImportedHandleTypes;
5507     VkExternalMemoryHandleTypeFlags    compatibleHandleTypes;
5508 } VkExternalMemoryProperties;
5509 
5510 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
5511     VkStructureType                       sType;
5512     const void*                           pNext;
5513     VkExternalMemoryHandleTypeFlagBits    handleType;
5514 } VkPhysicalDeviceExternalImageFormatInfo;
5515 
5516 typedef struct VkExternalImageFormatProperties {
5517     VkStructureType               sType;
5518     void*                         pNext;
5519     VkExternalMemoryProperties    externalMemoryProperties;
5520 } VkExternalImageFormatProperties;
5521 
5522 typedef struct VkPhysicalDeviceExternalBufferInfo {
5523     VkStructureType                       sType;
5524     const void*                           pNext;
5525     VkBufferCreateFlags                   flags;
5526     VkBufferUsageFlags                    usage;
5527     VkExternalMemoryHandleTypeFlagBits    handleType;
5528 } VkPhysicalDeviceExternalBufferInfo;
5529 
5530 typedef struct VkExternalBufferProperties {
5531     VkStructureType               sType;
5532     void*                         pNext;
5533     VkExternalMemoryProperties    externalMemoryProperties;
5534 } VkExternalBufferProperties;
5535 
5536 typedef struct VkPhysicalDeviceIDProperties {
5537     VkStructureType    sType;
5538     void*              pNext;
5539     uint8_t            deviceUUID[VK_UUID_SIZE];
5540     uint8_t            driverUUID[VK_UUID_SIZE];
5541     uint8_t            deviceLUID[VK_LUID_SIZE];
5542     uint32_t           deviceNodeMask;
5543     VkBool32           deviceLUIDValid;
5544 } VkPhysicalDeviceIDProperties;
5545 
5546 typedef struct VkExternalMemoryImageCreateInfo {
5547     VkStructureType                    sType;
5548     const void*                        pNext;
5549     VkExternalMemoryHandleTypeFlags    handleTypes;
5550 } VkExternalMemoryImageCreateInfo;
5551 
5552 typedef struct VkExternalMemoryBufferCreateInfo {
5553     VkStructureType                    sType;
5554     const void*                        pNext;
5555     VkExternalMemoryHandleTypeFlags    handleTypes;
5556 } VkExternalMemoryBufferCreateInfo;
5557 
5558 typedef struct VkExportMemoryAllocateInfo {
5559     VkStructureType                    sType;
5560     const void*                        pNext;
5561     VkExternalMemoryHandleTypeFlags    handleTypes;
5562 } VkExportMemoryAllocateInfo;
5563 
5564 typedef struct VkPhysicalDeviceExternalFenceInfo {
5565     VkStructureType                      sType;
5566     const void*                          pNext;
5567     VkExternalFenceHandleTypeFlagBits    handleType;
5568 } VkPhysicalDeviceExternalFenceInfo;
5569 
5570 typedef struct VkExternalFenceProperties {
5571     VkStructureType                   sType;
5572     void*                             pNext;
5573     VkExternalFenceHandleTypeFlags    exportFromImportedHandleTypes;
5574     VkExternalFenceHandleTypeFlags    compatibleHandleTypes;
5575     VkExternalFenceFeatureFlags       externalFenceFeatures;
5576 } VkExternalFenceProperties;
5577 
5578 typedef struct VkExportFenceCreateInfo {
5579     VkStructureType                   sType;
5580     const void*                       pNext;
5581     VkExternalFenceHandleTypeFlags    handleTypes;
5582 } VkExportFenceCreateInfo;
5583 
5584 typedef struct VkExportSemaphoreCreateInfo {
5585     VkStructureType                       sType;
5586     const void*                           pNext;
5587     VkExternalSemaphoreHandleTypeFlags    handleTypes;
5588 } VkExportSemaphoreCreateInfo;
5589 
5590 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
5591     VkStructureType                          sType;
5592     const void*                              pNext;
5593     VkExternalSemaphoreHandleTypeFlagBits    handleType;
5594 } VkPhysicalDeviceExternalSemaphoreInfo;
5595 
5596 typedef struct VkExternalSemaphoreProperties {
5597     VkStructureType                       sType;
5598     void*                                 pNext;
5599     VkExternalSemaphoreHandleTypeFlags    exportFromImportedHandleTypes;
5600     VkExternalSemaphoreHandleTypeFlags    compatibleHandleTypes;
5601     VkExternalSemaphoreFeatureFlags       externalSemaphoreFeatures;
5602 } VkExternalSemaphoreProperties;
5603 
5604 typedef struct VkPhysicalDeviceMaintenance3Properties {
5605     VkStructureType    sType;
5606     void*              pNext;
5607     uint32_t           maxPerSetDescriptors;
5608     VkDeviceSize       maxMemoryAllocationSize;
5609 } VkPhysicalDeviceMaintenance3Properties;
5610 
5611 typedef struct VkDescriptorSetLayoutSupport {
5612     VkStructureType    sType;
5613     void*              pNext;
5614     VkBool32           supported;
5615 } VkDescriptorSetLayoutSupport;
5616 
5617 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
5618     VkStructureType    sType;
5619     void*              pNext;
5620     VkBool32           shaderDrawParameters;
5621 } VkPhysicalDeviceShaderDrawParametersFeatures;
5622 
5623 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
5624 
5625 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
5626 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
5627 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
5628 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
5629 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
5630 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);
5631 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
5632 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5633 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5634 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
5635 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
5636 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
5637 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
5638 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
5639 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
5640 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
5641 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
5642 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
5643 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
5644 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
5645 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
5646 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
5647 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
5648 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
5649 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
5650 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
5651 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
5652 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
5653 
5654 #ifndef VK_NO_PROTOTYPES
5655 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
5656     uint32_t*                                   pApiVersion);
5657 
5658 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
5659     VkDevice                                    device,
5660     uint32_t                                    bindInfoCount,
5661     const VkBindBufferMemoryInfo*               pBindInfos);
5662 
5663 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
5664     VkDevice                                    device,
5665     uint32_t                                    bindInfoCount,
5666     const VkBindImageMemoryInfo*                pBindInfos);
5667 
5668 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
5669     VkDevice                                    device,
5670     uint32_t                                    heapIndex,
5671     uint32_t                                    localDeviceIndex,
5672     uint32_t                                    remoteDeviceIndex,
5673     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
5674 
5675 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
5676     VkCommandBuffer                             commandBuffer,
5677     uint32_t                                    deviceMask);
5678 
5679 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
5680     VkCommandBuffer                             commandBuffer,
5681     uint32_t                                    baseGroupX,
5682     uint32_t                                    baseGroupY,
5683     uint32_t                                    baseGroupZ,
5684     uint32_t                                    groupCountX,
5685     uint32_t                                    groupCountY,
5686     uint32_t                                    groupCountZ);
5687 
5688 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
5689     VkInstance                                  instance,
5690     uint32_t*                                   pPhysicalDeviceGroupCount,
5691     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
5692 
5693 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
5694     VkDevice                                    device,
5695     const VkImageMemoryRequirementsInfo2*       pInfo,
5696     VkMemoryRequirements2*                      pMemoryRequirements);
5697 
5698 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
5699     VkDevice                                    device,
5700     const VkBufferMemoryRequirementsInfo2*      pInfo,
5701     VkMemoryRequirements2*                      pMemoryRequirements);
5702 
5703 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
5704     VkDevice                                    device,
5705     const VkImageSparseMemoryRequirementsInfo2* pInfo,
5706     uint32_t*                                   pSparseMemoryRequirementCount,
5707     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
5708 
5709 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
5710     VkPhysicalDevice                            physicalDevice,
5711     VkPhysicalDeviceFeatures2*                  pFeatures);
5712 
5713 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
5714     VkPhysicalDevice                            physicalDevice,
5715     VkPhysicalDeviceProperties2*                pProperties);
5716 
5717 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
5718     VkPhysicalDevice                            physicalDevice,
5719     VkFormat                                    format,
5720     VkFormatProperties2*                        pFormatProperties);
5721 
5722 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
5723     VkPhysicalDevice                            physicalDevice,
5724     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
5725     VkImageFormatProperties2*                   pImageFormatProperties);
5726 
5727 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
5728     VkPhysicalDevice                            physicalDevice,
5729     uint32_t*                                   pQueueFamilyPropertyCount,
5730     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
5731 
5732 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
5733     VkPhysicalDevice                            physicalDevice,
5734     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
5735 
5736 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
5737     VkPhysicalDevice                            physicalDevice,
5738     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
5739     uint32_t*                                   pPropertyCount,
5740     VkSparseImageFormatProperties2*             pProperties);
5741 
5742 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
5743     VkDevice                                    device,
5744     VkCommandPool                               commandPool,
5745     VkCommandPoolTrimFlags                      flags);
5746 
5747 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
5748     VkDevice                                    device,
5749     const VkDeviceQueueInfo2*                   pQueueInfo,
5750     VkQueue*                                    pQueue);
5751 
5752 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
5753     VkDevice                                    device,
5754     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
5755     const VkAllocationCallbacks*                pAllocator,
5756     VkSamplerYcbcrConversion*                   pYcbcrConversion);
5757 
5758 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
5759     VkDevice                                    device,
5760     VkSamplerYcbcrConversion                    ycbcrConversion,
5761     const VkAllocationCallbacks*                pAllocator);
5762 
5763 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
5764     VkDevice                                    device,
5765     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
5766     const VkAllocationCallbacks*                pAllocator,
5767     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
5768 
5769 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
5770     VkDevice                                    device,
5771     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
5772     const VkAllocationCallbacks*                pAllocator);
5773 
5774 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
5775     VkDevice                                    device,
5776     VkDescriptorSet                             descriptorSet,
5777     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
5778     const void*                                 pData);
5779 
5780 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
5781     VkPhysicalDevice                            physicalDevice,
5782     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
5783     VkExternalBufferProperties*                 pExternalBufferProperties);
5784 
5785 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
5786     VkPhysicalDevice                            physicalDevice,
5787     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
5788     VkExternalFenceProperties*                  pExternalFenceProperties);
5789 
5790 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
5791     VkPhysicalDevice                            physicalDevice,
5792     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
5793     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
5794 
5795 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
5796     VkDevice                                    device,
5797     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
5798     VkDescriptorSetLayoutSupport*               pSupport);
5799 #endif
5800 
5801 
5802 // VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
5803 #define VK_VERSION_1_2 1
5804 // Vulkan 1.2 version number
5805 #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
5806 
5807 #define VK_MAX_DRIVER_NAME_SIZE           256U
5808 #define VK_MAX_DRIVER_INFO_SIZE           256U
5809 
5810 typedef enum VkDriverId {
5811     VK_DRIVER_ID_AMD_PROPRIETARY = 1,
5812     VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
5813     VK_DRIVER_ID_MESA_RADV = 3,
5814     VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
5815     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
5816     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
5817     VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
5818     VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
5819     VK_DRIVER_ID_ARM_PROPRIETARY = 9,
5820     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
5821     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
5822     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
5823     VK_DRIVER_ID_MESA_LLVMPIPE = 13,
5824     VK_DRIVER_ID_MOLTENVK = 14,
5825     VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
5826     VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
5827     VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
5828     VK_DRIVER_ID_MESA_TURNIP = 18,
5829     VK_DRIVER_ID_MESA_V3DV = 19,
5830     VK_DRIVER_ID_MESA_PANVK = 20,
5831     VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
5832     VK_DRIVER_ID_MESA_VENUS = 22,
5833     VK_DRIVER_ID_MESA_DOZEN = 23,
5834     VK_DRIVER_ID_MESA_NVK = 24,
5835     VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
5836     VK_DRIVER_ID_MESA_HONEYKRISP = 26,
5837     VK_DRIVER_ID_RESERVED_27 = 27,
5838     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
5839     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
5840     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
5841     VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
5842     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
5843     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
5844     VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
5845     VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
5846     VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
5847     VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
5848     VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
5849     VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
5850     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
5851 } VkDriverId;
5852 
5853 typedef enum VkShaderFloatControlsIndependence {
5854     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
5855     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
5856     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
5857     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
5858     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
5859     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
5860     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
5861 } VkShaderFloatControlsIndependence;
5862 
5863 typedef enum VkSamplerReductionMode {
5864     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
5865     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
5866     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
5867     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
5868     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
5869     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
5870     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
5871     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
5872 } VkSamplerReductionMode;
5873 
5874 typedef enum VkSemaphoreType {
5875     VK_SEMAPHORE_TYPE_BINARY = 0,
5876     VK_SEMAPHORE_TYPE_TIMELINE = 1,
5877     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
5878     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
5879     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
5880 } VkSemaphoreType;
5881 
5882 typedef enum VkResolveModeFlagBits {
5883     VK_RESOLVE_MODE_NONE = 0,
5884     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
5885     VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
5886     VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
5887     VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
5888     VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 0x00000010,
5889     VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
5890     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
5891     VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
5892     VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
5893     VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
5894     VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5895 } VkResolveModeFlagBits;
5896 typedef VkFlags VkResolveModeFlags;
5897 
5898 typedef enum VkDescriptorBindingFlagBits {
5899     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
5900     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
5901     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
5902     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
5903     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
5904     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
5905     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
5906     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
5907     VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5908 } VkDescriptorBindingFlagBits;
5909 typedef VkFlags VkDescriptorBindingFlags;
5910 
5911 typedef enum VkSemaphoreWaitFlagBits {
5912     VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
5913     VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
5914     VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5915 } VkSemaphoreWaitFlagBits;
5916 typedef VkFlags VkSemaphoreWaitFlags;
5917 typedef struct VkPhysicalDeviceVulkan11Features {
5918     VkStructureType    sType;
5919     void*              pNext;
5920     VkBool32           storageBuffer16BitAccess;
5921     VkBool32           uniformAndStorageBuffer16BitAccess;
5922     VkBool32           storagePushConstant16;
5923     VkBool32           storageInputOutput16;
5924     VkBool32           multiview;
5925     VkBool32           multiviewGeometryShader;
5926     VkBool32           multiviewTessellationShader;
5927     VkBool32           variablePointersStorageBuffer;
5928     VkBool32           variablePointers;
5929     VkBool32           protectedMemory;
5930     VkBool32           samplerYcbcrConversion;
5931     VkBool32           shaderDrawParameters;
5932 } VkPhysicalDeviceVulkan11Features;
5933 
5934 typedef struct VkPhysicalDeviceVulkan11Properties {
5935     VkStructureType            sType;
5936     void*                      pNext;
5937     uint8_t                    deviceUUID[VK_UUID_SIZE];
5938     uint8_t                    driverUUID[VK_UUID_SIZE];
5939     uint8_t                    deviceLUID[VK_LUID_SIZE];
5940     uint32_t                   deviceNodeMask;
5941     VkBool32                   deviceLUIDValid;
5942     uint32_t                   subgroupSize;
5943     VkShaderStageFlags         subgroupSupportedStages;
5944     VkSubgroupFeatureFlags     subgroupSupportedOperations;
5945     VkBool32                   subgroupQuadOperationsInAllStages;
5946     VkPointClippingBehavior    pointClippingBehavior;
5947     uint32_t                   maxMultiviewViewCount;
5948     uint32_t                   maxMultiviewInstanceIndex;
5949     VkBool32                   protectedNoFault;
5950     uint32_t                   maxPerSetDescriptors;
5951     VkDeviceSize               maxMemoryAllocationSize;
5952 } VkPhysicalDeviceVulkan11Properties;
5953 
5954 typedef struct VkPhysicalDeviceVulkan12Features {
5955     VkStructureType    sType;
5956     void*              pNext;
5957     VkBool32           samplerMirrorClampToEdge;
5958     VkBool32           drawIndirectCount;
5959     VkBool32           storageBuffer8BitAccess;
5960     VkBool32           uniformAndStorageBuffer8BitAccess;
5961     VkBool32           storagePushConstant8;
5962     VkBool32           shaderBufferInt64Atomics;
5963     VkBool32           shaderSharedInt64Atomics;
5964     VkBool32           shaderFloat16;
5965     VkBool32           shaderInt8;
5966     VkBool32           descriptorIndexing;
5967     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
5968     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
5969     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
5970     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
5971     VkBool32           shaderSampledImageArrayNonUniformIndexing;
5972     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
5973     VkBool32           shaderStorageImageArrayNonUniformIndexing;
5974     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
5975     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
5976     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
5977     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
5978     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
5979     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
5980     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
5981     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
5982     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
5983     VkBool32           descriptorBindingUpdateUnusedWhilePending;
5984     VkBool32           descriptorBindingPartiallyBound;
5985     VkBool32           descriptorBindingVariableDescriptorCount;
5986     VkBool32           runtimeDescriptorArray;
5987     VkBool32           samplerFilterMinmax;
5988     VkBool32           scalarBlockLayout;
5989     VkBool32           imagelessFramebuffer;
5990     VkBool32           uniformBufferStandardLayout;
5991     VkBool32           shaderSubgroupExtendedTypes;
5992     VkBool32           separateDepthStencilLayouts;
5993     VkBool32           hostQueryReset;
5994     VkBool32           timelineSemaphore;
5995     VkBool32           bufferDeviceAddress;
5996     VkBool32           bufferDeviceAddressCaptureReplay;
5997     VkBool32           bufferDeviceAddressMultiDevice;
5998     VkBool32           vulkanMemoryModel;
5999     VkBool32           vulkanMemoryModelDeviceScope;
6000     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
6001     VkBool32           shaderOutputViewportIndex;
6002     VkBool32           shaderOutputLayer;
6003     VkBool32           subgroupBroadcastDynamicId;
6004 } VkPhysicalDeviceVulkan12Features;
6005 
6006 typedef struct VkConformanceVersion {
6007     uint8_t    major;
6008     uint8_t    minor;
6009     uint8_t    subminor;
6010     uint8_t    patch;
6011 } VkConformanceVersion;
6012 
6013 typedef struct VkPhysicalDeviceVulkan12Properties {
6014     VkStructureType                      sType;
6015     void*                                pNext;
6016     VkDriverId                           driverID;
6017     char                                 driverName[VK_MAX_DRIVER_NAME_SIZE];
6018     char                                 driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6019     VkConformanceVersion                 conformanceVersion;
6020     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
6021     VkShaderFloatControlsIndependence    roundingModeIndependence;
6022     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
6023     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
6024     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
6025     VkBool32                             shaderDenormPreserveFloat16;
6026     VkBool32                             shaderDenormPreserveFloat32;
6027     VkBool32                             shaderDenormPreserveFloat64;
6028     VkBool32                             shaderDenormFlushToZeroFloat16;
6029     VkBool32                             shaderDenormFlushToZeroFloat32;
6030     VkBool32                             shaderDenormFlushToZeroFloat64;
6031     VkBool32                             shaderRoundingModeRTEFloat16;
6032     VkBool32                             shaderRoundingModeRTEFloat32;
6033     VkBool32                             shaderRoundingModeRTEFloat64;
6034     VkBool32                             shaderRoundingModeRTZFloat16;
6035     VkBool32                             shaderRoundingModeRTZFloat32;
6036     VkBool32                             shaderRoundingModeRTZFloat64;
6037     uint32_t                             maxUpdateAfterBindDescriptorsInAllPools;
6038     VkBool32                             shaderUniformBufferArrayNonUniformIndexingNative;
6039     VkBool32                             shaderSampledImageArrayNonUniformIndexingNative;
6040     VkBool32                             shaderStorageBufferArrayNonUniformIndexingNative;
6041     VkBool32                             shaderStorageImageArrayNonUniformIndexingNative;
6042     VkBool32                             shaderInputAttachmentArrayNonUniformIndexingNative;
6043     VkBool32                             robustBufferAccessUpdateAfterBind;
6044     VkBool32                             quadDivergentImplicitLod;
6045     uint32_t                             maxPerStageDescriptorUpdateAfterBindSamplers;
6046     uint32_t                             maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6047     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6048     uint32_t                             maxPerStageDescriptorUpdateAfterBindSampledImages;
6049     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageImages;
6050     uint32_t                             maxPerStageDescriptorUpdateAfterBindInputAttachments;
6051     uint32_t                             maxPerStageUpdateAfterBindResources;
6052     uint32_t                             maxDescriptorSetUpdateAfterBindSamplers;
6053     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffers;
6054     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6055     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffers;
6056     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6057     uint32_t                             maxDescriptorSetUpdateAfterBindSampledImages;
6058     uint32_t                             maxDescriptorSetUpdateAfterBindStorageImages;
6059     uint32_t                             maxDescriptorSetUpdateAfterBindInputAttachments;
6060     VkResolveModeFlags                   supportedDepthResolveModes;
6061     VkResolveModeFlags                   supportedStencilResolveModes;
6062     VkBool32                             independentResolveNone;
6063     VkBool32                             independentResolve;
6064     VkBool32                             filterMinmaxSingleComponentFormats;
6065     VkBool32                             filterMinmaxImageComponentMapping;
6066     uint64_t                             maxTimelineSemaphoreValueDifference;
6067     VkSampleCountFlags                   framebufferIntegerColorSampleCounts;
6068 } VkPhysicalDeviceVulkan12Properties;
6069 
6070 typedef struct VkImageFormatListCreateInfo {
6071     VkStructureType    sType;
6072     const void*        pNext;
6073     uint32_t           viewFormatCount;
6074     const VkFormat*    pViewFormats;
6075 } VkImageFormatListCreateInfo;
6076 
6077 typedef struct VkAttachmentDescription2 {
6078     VkStructureType                 sType;
6079     const void*                     pNext;
6080     VkAttachmentDescriptionFlags    flags;
6081     VkFormat                        format;
6082     VkSampleCountFlagBits           samples;
6083     VkAttachmentLoadOp              loadOp;
6084     VkAttachmentStoreOp             storeOp;
6085     VkAttachmentLoadOp              stencilLoadOp;
6086     VkAttachmentStoreOp             stencilStoreOp;
6087     VkImageLayout                   initialLayout;
6088     VkImageLayout                   finalLayout;
6089 } VkAttachmentDescription2;
6090 
6091 typedef struct VkAttachmentReference2 {
6092     VkStructureType       sType;
6093     const void*           pNext;
6094     uint32_t              attachment;
6095     VkImageLayout         layout;
6096     VkImageAspectFlags    aspectMask;
6097 } VkAttachmentReference2;
6098 
6099 typedef struct VkSubpassDescription2 {
6100     VkStructureType                  sType;
6101     const void*                      pNext;
6102     VkSubpassDescriptionFlags        flags;
6103     VkPipelineBindPoint              pipelineBindPoint;
6104     uint32_t                         viewMask;
6105     uint32_t                         inputAttachmentCount;
6106     const VkAttachmentReference2*    pInputAttachments;
6107     uint32_t                         colorAttachmentCount;
6108     const VkAttachmentReference2*    pColorAttachments;
6109     const VkAttachmentReference2*    pResolveAttachments;
6110     const VkAttachmentReference2*    pDepthStencilAttachment;
6111     uint32_t                         preserveAttachmentCount;
6112     const uint32_t*                  pPreserveAttachments;
6113 } VkSubpassDescription2;
6114 
6115 typedef struct VkSubpassDependency2 {
6116     VkStructureType         sType;
6117     const void*             pNext;
6118     uint32_t                srcSubpass;
6119     uint32_t                dstSubpass;
6120     VkPipelineStageFlags    srcStageMask;
6121     VkPipelineStageFlags    dstStageMask;
6122     VkAccessFlags           srcAccessMask;
6123     VkAccessFlags           dstAccessMask;
6124     VkDependencyFlags       dependencyFlags;
6125     int32_t                 viewOffset;
6126 } VkSubpassDependency2;
6127 
6128 typedef struct VkRenderPassCreateInfo2 {
6129     VkStructureType                    sType;
6130     const void*                        pNext;
6131     VkRenderPassCreateFlags            flags;
6132     uint32_t                           attachmentCount;
6133     const VkAttachmentDescription2*    pAttachments;
6134     uint32_t                           subpassCount;
6135     const VkSubpassDescription2*       pSubpasses;
6136     uint32_t                           dependencyCount;
6137     const VkSubpassDependency2*        pDependencies;
6138     uint32_t                           correlatedViewMaskCount;
6139     const uint32_t*                    pCorrelatedViewMasks;
6140 } VkRenderPassCreateInfo2;
6141 
6142 typedef struct VkSubpassBeginInfo {
6143     VkStructureType      sType;
6144     const void*          pNext;
6145     VkSubpassContents    contents;
6146 } VkSubpassBeginInfo;
6147 
6148 typedef struct VkSubpassEndInfo {
6149     VkStructureType    sType;
6150     const void*        pNext;
6151 } VkSubpassEndInfo;
6152 
6153 typedef struct VkPhysicalDevice8BitStorageFeatures {
6154     VkStructureType    sType;
6155     void*              pNext;
6156     VkBool32           storageBuffer8BitAccess;
6157     VkBool32           uniformAndStorageBuffer8BitAccess;
6158     VkBool32           storagePushConstant8;
6159 } VkPhysicalDevice8BitStorageFeatures;
6160 
6161 typedef struct VkPhysicalDeviceDriverProperties {
6162     VkStructureType         sType;
6163     void*                   pNext;
6164     VkDriverId              driverID;
6165     char                    driverName[VK_MAX_DRIVER_NAME_SIZE];
6166     char                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6167     VkConformanceVersion    conformanceVersion;
6168 } VkPhysicalDeviceDriverProperties;
6169 
6170 typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6171     VkStructureType    sType;
6172     void*              pNext;
6173     VkBool32           shaderBufferInt64Atomics;
6174     VkBool32           shaderSharedInt64Atomics;
6175 } VkPhysicalDeviceShaderAtomicInt64Features;
6176 
6177 typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6178     VkStructureType    sType;
6179     void*              pNext;
6180     VkBool32           shaderFloat16;
6181     VkBool32           shaderInt8;
6182 } VkPhysicalDeviceShaderFloat16Int8Features;
6183 
6184 typedef struct VkPhysicalDeviceFloatControlsProperties {
6185     VkStructureType                      sType;
6186     void*                                pNext;
6187     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
6188     VkShaderFloatControlsIndependence    roundingModeIndependence;
6189     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
6190     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
6191     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
6192     VkBool32                             shaderDenormPreserveFloat16;
6193     VkBool32                             shaderDenormPreserveFloat32;
6194     VkBool32                             shaderDenormPreserveFloat64;
6195     VkBool32                             shaderDenormFlushToZeroFloat16;
6196     VkBool32                             shaderDenormFlushToZeroFloat32;
6197     VkBool32                             shaderDenormFlushToZeroFloat64;
6198     VkBool32                             shaderRoundingModeRTEFloat16;
6199     VkBool32                             shaderRoundingModeRTEFloat32;
6200     VkBool32                             shaderRoundingModeRTEFloat64;
6201     VkBool32                             shaderRoundingModeRTZFloat16;
6202     VkBool32                             shaderRoundingModeRTZFloat32;
6203     VkBool32                             shaderRoundingModeRTZFloat64;
6204 } VkPhysicalDeviceFloatControlsProperties;
6205 
6206 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6207     VkStructureType                    sType;
6208     const void*                        pNext;
6209     uint32_t                           bindingCount;
6210     const VkDescriptorBindingFlags*    pBindingFlags;
6211 } VkDescriptorSetLayoutBindingFlagsCreateInfo;
6212 
6213 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6214     VkStructureType    sType;
6215     void*              pNext;
6216     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
6217     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
6218     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
6219     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
6220     VkBool32           shaderSampledImageArrayNonUniformIndexing;
6221     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
6222     VkBool32           shaderStorageImageArrayNonUniformIndexing;
6223     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
6224     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
6225     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
6226     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
6227     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
6228     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
6229     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
6230     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
6231     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
6232     VkBool32           descriptorBindingUpdateUnusedWhilePending;
6233     VkBool32           descriptorBindingPartiallyBound;
6234     VkBool32           descriptorBindingVariableDescriptorCount;
6235     VkBool32           runtimeDescriptorArray;
6236 } VkPhysicalDeviceDescriptorIndexingFeatures;
6237 
6238 typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6239     VkStructureType    sType;
6240     void*              pNext;
6241     uint32_t           maxUpdateAfterBindDescriptorsInAllPools;
6242     VkBool32           shaderUniformBufferArrayNonUniformIndexingNative;
6243     VkBool32           shaderSampledImageArrayNonUniformIndexingNative;
6244     VkBool32           shaderStorageBufferArrayNonUniformIndexingNative;
6245     VkBool32           shaderStorageImageArrayNonUniformIndexingNative;
6246     VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative;
6247     VkBool32           robustBufferAccessUpdateAfterBind;
6248     VkBool32           quadDivergentImplicitLod;
6249     uint32_t           maxPerStageDescriptorUpdateAfterBindSamplers;
6250     uint32_t           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6251     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6252     uint32_t           maxPerStageDescriptorUpdateAfterBindSampledImages;
6253     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageImages;
6254     uint32_t           maxPerStageDescriptorUpdateAfterBindInputAttachments;
6255     uint32_t           maxPerStageUpdateAfterBindResources;
6256     uint32_t           maxDescriptorSetUpdateAfterBindSamplers;
6257     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffers;
6258     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6259     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffers;
6260     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6261     uint32_t           maxDescriptorSetUpdateAfterBindSampledImages;
6262     uint32_t           maxDescriptorSetUpdateAfterBindStorageImages;
6263     uint32_t           maxDescriptorSetUpdateAfterBindInputAttachments;
6264 } VkPhysicalDeviceDescriptorIndexingProperties;
6265 
6266 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6267     VkStructureType    sType;
6268     const void*        pNext;
6269     uint32_t           descriptorSetCount;
6270     const uint32_t*    pDescriptorCounts;
6271 } VkDescriptorSetVariableDescriptorCountAllocateInfo;
6272 
6273 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6274     VkStructureType    sType;
6275     void*              pNext;
6276     uint32_t           maxVariableDescriptorCount;
6277 } VkDescriptorSetVariableDescriptorCountLayoutSupport;
6278 
6279 typedef struct VkSubpassDescriptionDepthStencilResolve {
6280     VkStructureType                  sType;
6281     const void*                      pNext;
6282     VkResolveModeFlagBits            depthResolveMode;
6283     VkResolveModeFlagBits            stencilResolveMode;
6284     const VkAttachmentReference2*    pDepthStencilResolveAttachment;
6285 } VkSubpassDescriptionDepthStencilResolve;
6286 
6287 typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6288     VkStructureType       sType;
6289     void*                 pNext;
6290     VkResolveModeFlags    supportedDepthResolveModes;
6291     VkResolveModeFlags    supportedStencilResolveModes;
6292     VkBool32              independentResolveNone;
6293     VkBool32              independentResolve;
6294 } VkPhysicalDeviceDepthStencilResolveProperties;
6295 
6296 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
6297     VkStructureType    sType;
6298     void*              pNext;
6299     VkBool32           scalarBlockLayout;
6300 } VkPhysicalDeviceScalarBlockLayoutFeatures;
6301 
6302 typedef struct VkImageStencilUsageCreateInfo {
6303     VkStructureType      sType;
6304     const void*          pNext;
6305     VkImageUsageFlags    stencilUsage;
6306 } VkImageStencilUsageCreateInfo;
6307 
6308 typedef struct VkSamplerReductionModeCreateInfo {
6309     VkStructureType           sType;
6310     const void*               pNext;
6311     VkSamplerReductionMode    reductionMode;
6312 } VkSamplerReductionModeCreateInfo;
6313 
6314 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
6315     VkStructureType    sType;
6316     void*              pNext;
6317     VkBool32           filterMinmaxSingleComponentFormats;
6318     VkBool32           filterMinmaxImageComponentMapping;
6319 } VkPhysicalDeviceSamplerFilterMinmaxProperties;
6320 
6321 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
6322     VkStructureType    sType;
6323     void*              pNext;
6324     VkBool32           vulkanMemoryModel;
6325     VkBool32           vulkanMemoryModelDeviceScope;
6326     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
6327 } VkPhysicalDeviceVulkanMemoryModelFeatures;
6328 
6329 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
6330     VkStructureType    sType;
6331     void*              pNext;
6332     VkBool32           imagelessFramebuffer;
6333 } VkPhysicalDeviceImagelessFramebufferFeatures;
6334 
6335 typedef struct VkFramebufferAttachmentImageInfo {
6336     VkStructureType       sType;
6337     const void*           pNext;
6338     VkImageCreateFlags    flags;
6339     VkImageUsageFlags     usage;
6340     uint32_t              width;
6341     uint32_t              height;
6342     uint32_t              layerCount;
6343     uint32_t              viewFormatCount;
6344     const VkFormat*       pViewFormats;
6345 } VkFramebufferAttachmentImageInfo;
6346 
6347 typedef struct VkFramebufferAttachmentsCreateInfo {
6348     VkStructureType                            sType;
6349     const void*                                pNext;
6350     uint32_t                                   attachmentImageInfoCount;
6351     const VkFramebufferAttachmentImageInfo*    pAttachmentImageInfos;
6352 } VkFramebufferAttachmentsCreateInfo;
6353 
6354 typedef struct VkRenderPassAttachmentBeginInfo {
6355     VkStructureType       sType;
6356     const void*           pNext;
6357     uint32_t              attachmentCount;
6358     const VkImageView*    pAttachments;
6359 } VkRenderPassAttachmentBeginInfo;
6360 
6361 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
6362     VkStructureType    sType;
6363     void*              pNext;
6364     VkBool32           uniformBufferStandardLayout;
6365 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
6366 
6367 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6368     VkStructureType    sType;
6369     void*              pNext;
6370     VkBool32           shaderSubgroupExtendedTypes;
6371 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6372 
6373 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
6374     VkStructureType    sType;
6375     void*              pNext;
6376     VkBool32           separateDepthStencilLayouts;
6377 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
6378 
6379 typedef struct VkAttachmentReferenceStencilLayout {
6380     VkStructureType    sType;
6381     void*              pNext;
6382     VkImageLayout      stencilLayout;
6383 } VkAttachmentReferenceStencilLayout;
6384 
6385 typedef struct VkAttachmentDescriptionStencilLayout {
6386     VkStructureType    sType;
6387     void*              pNext;
6388     VkImageLayout      stencilInitialLayout;
6389     VkImageLayout      stencilFinalLayout;
6390 } VkAttachmentDescriptionStencilLayout;
6391 
6392 typedef struct VkPhysicalDeviceHostQueryResetFeatures {
6393     VkStructureType    sType;
6394     void*              pNext;
6395     VkBool32           hostQueryReset;
6396 } VkPhysicalDeviceHostQueryResetFeatures;
6397 
6398 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
6399     VkStructureType    sType;
6400     void*              pNext;
6401     VkBool32           timelineSemaphore;
6402 } VkPhysicalDeviceTimelineSemaphoreFeatures;
6403 
6404 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
6405     VkStructureType    sType;
6406     void*              pNext;
6407     uint64_t           maxTimelineSemaphoreValueDifference;
6408 } VkPhysicalDeviceTimelineSemaphoreProperties;
6409 
6410 typedef struct VkSemaphoreTypeCreateInfo {
6411     VkStructureType    sType;
6412     const void*        pNext;
6413     VkSemaphoreType    semaphoreType;
6414     uint64_t           initialValue;
6415 } VkSemaphoreTypeCreateInfo;
6416 
6417 typedef struct VkTimelineSemaphoreSubmitInfo {
6418     VkStructureType    sType;
6419     const void*        pNext;
6420     uint32_t           waitSemaphoreValueCount;
6421     const uint64_t*    pWaitSemaphoreValues;
6422     uint32_t           signalSemaphoreValueCount;
6423     const uint64_t*    pSignalSemaphoreValues;
6424 } VkTimelineSemaphoreSubmitInfo;
6425 
6426 typedef struct VkSemaphoreWaitInfo {
6427     VkStructureType         sType;
6428     const void*             pNext;
6429     VkSemaphoreWaitFlags    flags;
6430     uint32_t                semaphoreCount;
6431     const VkSemaphore*      pSemaphores;
6432     const uint64_t*         pValues;
6433 } VkSemaphoreWaitInfo;
6434 
6435 typedef struct VkSemaphoreSignalInfo {
6436     VkStructureType    sType;
6437     const void*        pNext;
6438     VkSemaphore        semaphore;
6439     uint64_t           value;
6440 } VkSemaphoreSignalInfo;
6441 
6442 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
6443     VkStructureType    sType;
6444     void*              pNext;
6445     VkBool32           bufferDeviceAddress;
6446     VkBool32           bufferDeviceAddressCaptureReplay;
6447     VkBool32           bufferDeviceAddressMultiDevice;
6448 } VkPhysicalDeviceBufferDeviceAddressFeatures;
6449 
6450 typedef struct VkBufferDeviceAddressInfo {
6451     VkStructureType    sType;
6452     const void*        pNext;
6453     VkBuffer           buffer;
6454 } VkBufferDeviceAddressInfo;
6455 
6456 typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
6457     VkStructureType    sType;
6458     const void*        pNext;
6459     uint64_t           opaqueCaptureAddress;
6460 } VkBufferOpaqueCaptureAddressCreateInfo;
6461 
6462 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
6463     VkStructureType    sType;
6464     const void*        pNext;
6465     uint64_t           opaqueCaptureAddress;
6466 } VkMemoryOpaqueCaptureAddressAllocateInfo;
6467 
6468 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
6469     VkStructureType    sType;
6470     const void*        pNext;
6471     VkDeviceMemory     memory;
6472 } VkDeviceMemoryOpaqueCaptureAddressInfo;
6473 
6474 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6475 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6476 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6477 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
6478 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
6479 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
6480 typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
6481 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
6482 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
6483 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
6484 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6485 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6486 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6487 
6488 #ifndef VK_NO_PROTOTYPES
6489 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
6490     VkCommandBuffer                             commandBuffer,
6491     VkBuffer                                    buffer,
6492     VkDeviceSize                                offset,
6493     VkBuffer                                    countBuffer,
6494     VkDeviceSize                                countBufferOffset,
6495     uint32_t                                    maxDrawCount,
6496     uint32_t                                    stride);
6497 
6498 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
6499     VkCommandBuffer                             commandBuffer,
6500     VkBuffer                                    buffer,
6501     VkDeviceSize                                offset,
6502     VkBuffer                                    countBuffer,
6503     VkDeviceSize                                countBufferOffset,
6504     uint32_t                                    maxDrawCount,
6505     uint32_t                                    stride);
6506 
6507 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
6508     VkDevice                                    device,
6509     const VkRenderPassCreateInfo2*              pCreateInfo,
6510     const VkAllocationCallbacks*                pAllocator,
6511     VkRenderPass*                               pRenderPass);
6512 
6513 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
6514     VkCommandBuffer                             commandBuffer,
6515     const VkRenderPassBeginInfo*                pRenderPassBegin,
6516     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
6517 
6518 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
6519     VkCommandBuffer                             commandBuffer,
6520     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
6521     const VkSubpassEndInfo*                     pSubpassEndInfo);
6522 
6523 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
6524     VkCommandBuffer                             commandBuffer,
6525     const VkSubpassEndInfo*                     pSubpassEndInfo);
6526 
6527 VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
6528     VkDevice                                    device,
6529     VkQueryPool                                 queryPool,
6530     uint32_t                                    firstQuery,
6531     uint32_t                                    queryCount);
6532 
6533 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
6534     VkDevice                                    device,
6535     VkSemaphore                                 semaphore,
6536     uint64_t*                                   pValue);
6537 
6538 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
6539     VkDevice                                    device,
6540     const VkSemaphoreWaitInfo*                  pWaitInfo,
6541     uint64_t                                    timeout);
6542 
6543 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
6544     VkDevice                                    device,
6545     const VkSemaphoreSignalInfo*                pSignalInfo);
6546 
6547 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
6548     VkDevice                                    device,
6549     const VkBufferDeviceAddressInfo*            pInfo);
6550 
6551 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
6552     VkDevice                                    device,
6553     const VkBufferDeviceAddressInfo*            pInfo);
6554 
6555 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
6556     VkDevice                                    device,
6557     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6558 #endif
6559 
6560 
6561 // VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
6562 #define VK_VERSION_1_3 1
6563 // Vulkan 1.3 version number
6564 #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
6565 
6566 typedef uint64_t VkFlags64;
6567 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
6568 
6569 typedef enum VkPipelineCreationFeedbackFlagBits {
6570     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
6571     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
6572     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
6573     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
6574     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
6575     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
6576     VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6577 } VkPipelineCreationFeedbackFlagBits;
6578 typedef VkFlags VkPipelineCreationFeedbackFlags;
6579 
6580 typedef enum VkToolPurposeFlagBits {
6581     VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
6582     VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
6583     VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
6584     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
6585     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
6586     VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
6587     VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
6588     VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
6589     VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
6590     VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
6591     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
6592     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
6593     VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6594 } VkToolPurposeFlagBits;
6595 typedef VkFlags VkToolPurposeFlags;
6596 typedef VkFlags VkPrivateDataSlotCreateFlags;
6597 typedef VkFlags64 VkPipelineStageFlags2;
6598 
6599 // Flag bits for VkPipelineStageFlagBits2
6600 typedef VkFlags64 VkPipelineStageFlagBits2;
6601 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
6602 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
6603 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
6604 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
6605 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
6606 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
6607 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
6608 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
6609 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
6610 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
6611 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
6612 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
6613 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
6614 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
6615 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
6616 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
6617 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
6618 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
6619 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
6620 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
6621 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
6622 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
6623 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
6624 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
6625 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
6626 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
6627 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
6628 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
6629 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
6630 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
6631 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
6632 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
6633 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
6634 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
6635 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
6636 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
6637 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
6638 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
6639 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
6640 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
6641 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
6642 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
6643 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
6644 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
6645 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
6646 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
6647 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
6648 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
6649 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
6650 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
6651 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
6652 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
6653 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
6654 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
6655 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
6656 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
6657 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
6658 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
6659 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
6660 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
6661 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
6662 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
6663 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
6664 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
6665 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
6666 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
6667 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
6668 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
6669 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
6670 // VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI is a deprecated alias
6671 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
6672 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
6673 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
6674 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
6675 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
6676 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
6677 
6678 typedef VkFlags64 VkAccessFlags2;
6679 
6680 // Flag bits for VkAccessFlagBits2
6681 typedef VkFlags64 VkAccessFlagBits2;
6682 static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
6683 static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
6684 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
6685 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
6686 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
6687 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
6688 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
6689 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
6690 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
6691 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
6692 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
6693 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
6694 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
6695 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
6696 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
6697 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
6698 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
6699 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
6700 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
6701 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
6702 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
6703 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
6704 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
6705 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
6706 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
6707 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
6708 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
6709 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
6710 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
6711 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
6712 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
6713 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
6714 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
6715 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
6716 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
6717 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
6718 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
6719 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
6720 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
6721 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
6722 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
6723 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
6724 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
6725 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
6726 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
6727 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
6728 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
6729 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
6730 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
6731 static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
6732 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
6733 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
6734 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
6735 static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
6736 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
6737 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
6738 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
6739 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
6740 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
6741 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
6742 static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
6743 static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
6744 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
6745 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
6746 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
6747 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
6748 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
6749 
6750 
6751 typedef enum VkSubmitFlagBits {
6752     VK_SUBMIT_PROTECTED_BIT = 0x00000001,
6753     VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
6754     VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6755 } VkSubmitFlagBits;
6756 typedef VkFlags VkSubmitFlags;
6757 
6758 typedef enum VkRenderingFlagBits {
6759     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
6760     VK_RENDERING_SUSPENDING_BIT = 0x00000002,
6761     VK_RENDERING_RESUMING_BIT = 0x00000004,
6762     VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
6763     VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010,
6764     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
6765     VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
6766     VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
6767     VK_RENDERING_CONTENTS_INLINE_BIT_EXT = VK_RENDERING_CONTENTS_INLINE_BIT_KHR,
6768     VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6769 } VkRenderingFlagBits;
6770 typedef VkFlags VkRenderingFlags;
6771 typedef VkFlags64 VkFormatFeatureFlags2;
6772 
6773 // Flag bits for VkFormatFeatureFlagBits2
6774 typedef VkFlags64 VkFormatFeatureFlagBits2;
6775 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
6776 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
6777 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
6778 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
6779 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
6780 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
6781 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
6782 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
6783 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
6784 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
6785 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
6786 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
6787 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
6788 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
6789 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
6790 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
6791 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
6792 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
6793 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
6794 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
6795 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
6796 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
6797 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
6798 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
6799 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
6800 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
6801 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
6802 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
6803 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
6804 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
6805 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
6806 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
6807 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
6808 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
6809 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
6810 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
6811 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
6812 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
6813 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
6814 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
6815 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
6816 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
6817 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
6818 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
6819 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
6820 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
6821 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
6822 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
6823 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
6824 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
6825 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
6826 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
6827 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
6828 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
6829 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
6830 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
6831 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
6832 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
6833 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
6834 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
6835 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
6836 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
6837 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
6838 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
6839 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
6840 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
6841 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
6842 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
6843 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
6844 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
6845 
6846 typedef struct VkPhysicalDeviceVulkan13Features {
6847     VkStructureType    sType;
6848     void*              pNext;
6849     VkBool32           robustImageAccess;
6850     VkBool32           inlineUniformBlock;
6851     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
6852     VkBool32           pipelineCreationCacheControl;
6853     VkBool32           privateData;
6854     VkBool32           shaderDemoteToHelperInvocation;
6855     VkBool32           shaderTerminateInvocation;
6856     VkBool32           subgroupSizeControl;
6857     VkBool32           computeFullSubgroups;
6858     VkBool32           synchronization2;
6859     VkBool32           textureCompressionASTC_HDR;
6860     VkBool32           shaderZeroInitializeWorkgroupMemory;
6861     VkBool32           dynamicRendering;
6862     VkBool32           shaderIntegerDotProduct;
6863     VkBool32           maintenance4;
6864 } VkPhysicalDeviceVulkan13Features;
6865 
6866 typedef struct VkPhysicalDeviceVulkan13Properties {
6867     VkStructureType       sType;
6868     void*                 pNext;
6869     uint32_t              minSubgroupSize;
6870     uint32_t              maxSubgroupSize;
6871     uint32_t              maxComputeWorkgroupSubgroups;
6872     VkShaderStageFlags    requiredSubgroupSizeStages;
6873     uint32_t              maxInlineUniformBlockSize;
6874     uint32_t              maxPerStageDescriptorInlineUniformBlocks;
6875     uint32_t              maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
6876     uint32_t              maxDescriptorSetInlineUniformBlocks;
6877     uint32_t              maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
6878     uint32_t              maxInlineUniformTotalSize;
6879     VkBool32              integerDotProduct8BitUnsignedAccelerated;
6880     VkBool32              integerDotProduct8BitSignedAccelerated;
6881     VkBool32              integerDotProduct8BitMixedSignednessAccelerated;
6882     VkBool32              integerDotProduct4x8BitPackedUnsignedAccelerated;
6883     VkBool32              integerDotProduct4x8BitPackedSignedAccelerated;
6884     VkBool32              integerDotProduct4x8BitPackedMixedSignednessAccelerated;
6885     VkBool32              integerDotProduct16BitUnsignedAccelerated;
6886     VkBool32              integerDotProduct16BitSignedAccelerated;
6887     VkBool32              integerDotProduct16BitMixedSignednessAccelerated;
6888     VkBool32              integerDotProduct32BitUnsignedAccelerated;
6889     VkBool32              integerDotProduct32BitSignedAccelerated;
6890     VkBool32              integerDotProduct32BitMixedSignednessAccelerated;
6891     VkBool32              integerDotProduct64BitUnsignedAccelerated;
6892     VkBool32              integerDotProduct64BitSignedAccelerated;
6893     VkBool32              integerDotProduct64BitMixedSignednessAccelerated;
6894     VkBool32              integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
6895     VkBool32              integerDotProductAccumulatingSaturating8BitSignedAccelerated;
6896     VkBool32              integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
6897     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
6898     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
6899     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
6900     VkBool32              integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
6901     VkBool32              integerDotProductAccumulatingSaturating16BitSignedAccelerated;
6902     VkBool32              integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
6903     VkBool32              integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
6904     VkBool32              integerDotProductAccumulatingSaturating32BitSignedAccelerated;
6905     VkBool32              integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
6906     VkBool32              integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
6907     VkBool32              integerDotProductAccumulatingSaturating64BitSignedAccelerated;
6908     VkBool32              integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
6909     VkDeviceSize          storageTexelBufferOffsetAlignmentBytes;
6910     VkBool32              storageTexelBufferOffsetSingleTexelAlignment;
6911     VkDeviceSize          uniformTexelBufferOffsetAlignmentBytes;
6912     VkBool32              uniformTexelBufferOffsetSingleTexelAlignment;
6913     VkDeviceSize          maxBufferSize;
6914 } VkPhysicalDeviceVulkan13Properties;
6915 
6916 typedef struct VkPipelineCreationFeedback {
6917     VkPipelineCreationFeedbackFlags    flags;
6918     uint64_t                           duration;
6919 } VkPipelineCreationFeedback;
6920 
6921 typedef struct VkPipelineCreationFeedbackCreateInfo {
6922     VkStructureType                sType;
6923     const void*                    pNext;
6924     VkPipelineCreationFeedback*    pPipelineCreationFeedback;
6925     uint32_t                       pipelineStageCreationFeedbackCount;
6926     VkPipelineCreationFeedback*    pPipelineStageCreationFeedbacks;
6927 } VkPipelineCreationFeedbackCreateInfo;
6928 
6929 typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
6930     VkStructureType    sType;
6931     void*              pNext;
6932     VkBool32           shaderTerminateInvocation;
6933 } VkPhysicalDeviceShaderTerminateInvocationFeatures;
6934 
6935 typedef struct VkPhysicalDeviceToolProperties {
6936     VkStructureType       sType;
6937     void*                 pNext;
6938     char                  name[VK_MAX_EXTENSION_NAME_SIZE];
6939     char                  version[VK_MAX_EXTENSION_NAME_SIZE];
6940     VkToolPurposeFlags    purposes;
6941     char                  description[VK_MAX_DESCRIPTION_SIZE];
6942     char                  layer[VK_MAX_EXTENSION_NAME_SIZE];
6943 } VkPhysicalDeviceToolProperties;
6944 
6945 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
6946     VkStructureType    sType;
6947     void*              pNext;
6948     VkBool32           shaderDemoteToHelperInvocation;
6949 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
6950 
6951 typedef struct VkPhysicalDevicePrivateDataFeatures {
6952     VkStructureType    sType;
6953     void*              pNext;
6954     VkBool32           privateData;
6955 } VkPhysicalDevicePrivateDataFeatures;
6956 
6957 typedef struct VkDevicePrivateDataCreateInfo {
6958     VkStructureType    sType;
6959     const void*        pNext;
6960     uint32_t           privateDataSlotRequestCount;
6961 } VkDevicePrivateDataCreateInfo;
6962 
6963 typedef struct VkPrivateDataSlotCreateInfo {
6964     VkStructureType                 sType;
6965     const void*                     pNext;
6966     VkPrivateDataSlotCreateFlags    flags;
6967 } VkPrivateDataSlotCreateInfo;
6968 
6969 typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
6970     VkStructureType    sType;
6971     void*              pNext;
6972     VkBool32           pipelineCreationCacheControl;
6973 } VkPhysicalDevicePipelineCreationCacheControlFeatures;
6974 
6975 typedef struct VkMemoryBarrier2 {
6976     VkStructureType          sType;
6977     const void*              pNext;
6978     VkPipelineStageFlags2    srcStageMask;
6979     VkAccessFlags2           srcAccessMask;
6980     VkPipelineStageFlags2    dstStageMask;
6981     VkAccessFlags2           dstAccessMask;
6982 } VkMemoryBarrier2;
6983 
6984 typedef struct VkBufferMemoryBarrier2 {
6985     VkStructureType          sType;
6986     const void*              pNext;
6987     VkPipelineStageFlags2    srcStageMask;
6988     VkAccessFlags2           srcAccessMask;
6989     VkPipelineStageFlags2    dstStageMask;
6990     VkAccessFlags2           dstAccessMask;
6991     uint32_t                 srcQueueFamilyIndex;
6992     uint32_t                 dstQueueFamilyIndex;
6993     VkBuffer                 buffer;
6994     VkDeviceSize             offset;
6995     VkDeviceSize             size;
6996 } VkBufferMemoryBarrier2;
6997 
6998 typedef struct VkImageMemoryBarrier2 {
6999     VkStructureType            sType;
7000     const void*                pNext;
7001     VkPipelineStageFlags2      srcStageMask;
7002     VkAccessFlags2             srcAccessMask;
7003     VkPipelineStageFlags2      dstStageMask;
7004     VkAccessFlags2             dstAccessMask;
7005     VkImageLayout              oldLayout;
7006     VkImageLayout              newLayout;
7007     uint32_t                   srcQueueFamilyIndex;
7008     uint32_t                   dstQueueFamilyIndex;
7009     VkImage                    image;
7010     VkImageSubresourceRange    subresourceRange;
7011 } VkImageMemoryBarrier2;
7012 
7013 typedef struct VkDependencyInfo {
7014     VkStructureType                  sType;
7015     const void*                      pNext;
7016     VkDependencyFlags                dependencyFlags;
7017     uint32_t                         memoryBarrierCount;
7018     const VkMemoryBarrier2*          pMemoryBarriers;
7019     uint32_t                         bufferMemoryBarrierCount;
7020     const VkBufferMemoryBarrier2*    pBufferMemoryBarriers;
7021     uint32_t                         imageMemoryBarrierCount;
7022     const VkImageMemoryBarrier2*     pImageMemoryBarriers;
7023 } VkDependencyInfo;
7024 
7025 typedef struct VkSemaphoreSubmitInfo {
7026     VkStructureType          sType;
7027     const void*              pNext;
7028     VkSemaphore              semaphore;
7029     uint64_t                 value;
7030     VkPipelineStageFlags2    stageMask;
7031     uint32_t                 deviceIndex;
7032 } VkSemaphoreSubmitInfo;
7033 
7034 typedef struct VkCommandBufferSubmitInfo {
7035     VkStructureType    sType;
7036     const void*        pNext;
7037     VkCommandBuffer    commandBuffer;
7038     uint32_t           deviceMask;
7039 } VkCommandBufferSubmitInfo;
7040 
7041 typedef struct VkSubmitInfo2 {
7042     VkStructureType                     sType;
7043     const void*                         pNext;
7044     VkSubmitFlags                       flags;
7045     uint32_t                            waitSemaphoreInfoCount;
7046     const VkSemaphoreSubmitInfo*        pWaitSemaphoreInfos;
7047     uint32_t                            commandBufferInfoCount;
7048     const VkCommandBufferSubmitInfo*    pCommandBufferInfos;
7049     uint32_t                            signalSemaphoreInfoCount;
7050     const VkSemaphoreSubmitInfo*        pSignalSemaphoreInfos;
7051 } VkSubmitInfo2;
7052 
7053 typedef struct VkPhysicalDeviceSynchronization2Features {
7054     VkStructureType    sType;
7055     void*              pNext;
7056     VkBool32           synchronization2;
7057 } VkPhysicalDeviceSynchronization2Features;
7058 
7059 typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
7060     VkStructureType    sType;
7061     void*              pNext;
7062     VkBool32           shaderZeroInitializeWorkgroupMemory;
7063 } VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
7064 
7065 typedef struct VkPhysicalDeviceImageRobustnessFeatures {
7066     VkStructureType    sType;
7067     void*              pNext;
7068     VkBool32           robustImageAccess;
7069 } VkPhysicalDeviceImageRobustnessFeatures;
7070 
7071 typedef struct VkBufferCopy2 {
7072     VkStructureType    sType;
7073     const void*        pNext;
7074     VkDeviceSize       srcOffset;
7075     VkDeviceSize       dstOffset;
7076     VkDeviceSize       size;
7077 } VkBufferCopy2;
7078 
7079 typedef struct VkCopyBufferInfo2 {
7080     VkStructureType         sType;
7081     const void*             pNext;
7082     VkBuffer                srcBuffer;
7083     VkBuffer                dstBuffer;
7084     uint32_t                regionCount;
7085     const VkBufferCopy2*    pRegions;
7086 } VkCopyBufferInfo2;
7087 
7088 typedef struct VkImageCopy2 {
7089     VkStructureType             sType;
7090     const void*                 pNext;
7091     VkImageSubresourceLayers    srcSubresource;
7092     VkOffset3D                  srcOffset;
7093     VkImageSubresourceLayers    dstSubresource;
7094     VkOffset3D                  dstOffset;
7095     VkExtent3D                  extent;
7096 } VkImageCopy2;
7097 
7098 typedef struct VkCopyImageInfo2 {
7099     VkStructureType        sType;
7100     const void*            pNext;
7101     VkImage                srcImage;
7102     VkImageLayout          srcImageLayout;
7103     VkImage                dstImage;
7104     VkImageLayout          dstImageLayout;
7105     uint32_t               regionCount;
7106     const VkImageCopy2*    pRegions;
7107 } VkCopyImageInfo2;
7108 
7109 typedef struct VkBufferImageCopy2 {
7110     VkStructureType             sType;
7111     const void*                 pNext;
7112     VkDeviceSize                bufferOffset;
7113     uint32_t                    bufferRowLength;
7114     uint32_t                    bufferImageHeight;
7115     VkImageSubresourceLayers    imageSubresource;
7116     VkOffset3D                  imageOffset;
7117     VkExtent3D                  imageExtent;
7118 } VkBufferImageCopy2;
7119 
7120 typedef struct VkCopyBufferToImageInfo2 {
7121     VkStructureType              sType;
7122     const void*                  pNext;
7123     VkBuffer                     srcBuffer;
7124     VkImage                      dstImage;
7125     VkImageLayout                dstImageLayout;
7126     uint32_t                     regionCount;
7127     const VkBufferImageCopy2*    pRegions;
7128 } VkCopyBufferToImageInfo2;
7129 
7130 typedef struct VkCopyImageToBufferInfo2 {
7131     VkStructureType              sType;
7132     const void*                  pNext;
7133     VkImage                      srcImage;
7134     VkImageLayout                srcImageLayout;
7135     VkBuffer                     dstBuffer;
7136     uint32_t                     regionCount;
7137     const VkBufferImageCopy2*    pRegions;
7138 } VkCopyImageToBufferInfo2;
7139 
7140 typedef struct VkImageBlit2 {
7141     VkStructureType             sType;
7142     const void*                 pNext;
7143     VkImageSubresourceLayers    srcSubresource;
7144     VkOffset3D                  srcOffsets[2];
7145     VkImageSubresourceLayers    dstSubresource;
7146     VkOffset3D                  dstOffsets[2];
7147 } VkImageBlit2;
7148 
7149 typedef struct VkBlitImageInfo2 {
7150     VkStructureType        sType;
7151     const void*            pNext;
7152     VkImage                srcImage;
7153     VkImageLayout          srcImageLayout;
7154     VkImage                dstImage;
7155     VkImageLayout          dstImageLayout;
7156     uint32_t               regionCount;
7157     const VkImageBlit2*    pRegions;
7158     VkFilter               filter;
7159 } VkBlitImageInfo2;
7160 
7161 typedef struct VkImageResolve2 {
7162     VkStructureType             sType;
7163     const void*                 pNext;
7164     VkImageSubresourceLayers    srcSubresource;
7165     VkOffset3D                  srcOffset;
7166     VkImageSubresourceLayers    dstSubresource;
7167     VkOffset3D                  dstOffset;
7168     VkExtent3D                  extent;
7169 } VkImageResolve2;
7170 
7171 typedef struct VkResolveImageInfo2 {
7172     VkStructureType           sType;
7173     const void*               pNext;
7174     VkImage                   srcImage;
7175     VkImageLayout             srcImageLayout;
7176     VkImage                   dstImage;
7177     VkImageLayout             dstImageLayout;
7178     uint32_t                  regionCount;
7179     const VkImageResolve2*    pRegions;
7180 } VkResolveImageInfo2;
7181 
7182 typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7183     VkStructureType    sType;
7184     void*              pNext;
7185     VkBool32           subgroupSizeControl;
7186     VkBool32           computeFullSubgroups;
7187 } VkPhysicalDeviceSubgroupSizeControlFeatures;
7188 
7189 typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7190     VkStructureType       sType;
7191     void*                 pNext;
7192     uint32_t              minSubgroupSize;
7193     uint32_t              maxSubgroupSize;
7194     uint32_t              maxComputeWorkgroupSubgroups;
7195     VkShaderStageFlags    requiredSubgroupSizeStages;
7196 } VkPhysicalDeviceSubgroupSizeControlProperties;
7197 
7198 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7199     VkStructureType    sType;
7200     void*              pNext;
7201     uint32_t           requiredSubgroupSize;
7202 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7203 
7204 typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7205     VkStructureType    sType;
7206     void*              pNext;
7207     VkBool32           inlineUniformBlock;
7208     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
7209 } VkPhysicalDeviceInlineUniformBlockFeatures;
7210 
7211 typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7212     VkStructureType    sType;
7213     void*              pNext;
7214     uint32_t           maxInlineUniformBlockSize;
7215     uint32_t           maxPerStageDescriptorInlineUniformBlocks;
7216     uint32_t           maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7217     uint32_t           maxDescriptorSetInlineUniformBlocks;
7218     uint32_t           maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7219 } VkPhysicalDeviceInlineUniformBlockProperties;
7220 
7221 typedef struct VkWriteDescriptorSetInlineUniformBlock {
7222     VkStructureType    sType;
7223     const void*        pNext;
7224     uint32_t           dataSize;
7225     const void*        pData;
7226 } VkWriteDescriptorSetInlineUniformBlock;
7227 
7228 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7229     VkStructureType    sType;
7230     const void*        pNext;
7231     uint32_t           maxInlineUniformBlockBindings;
7232 } VkDescriptorPoolInlineUniformBlockCreateInfo;
7233 
7234 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7235     VkStructureType    sType;
7236     void*              pNext;
7237     VkBool32           textureCompressionASTC_HDR;
7238 } VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7239 
7240 typedef struct VkRenderingAttachmentInfo {
7241     VkStructureType          sType;
7242     const void*              pNext;
7243     VkImageView              imageView;
7244     VkImageLayout            imageLayout;
7245     VkResolveModeFlagBits    resolveMode;
7246     VkImageView              resolveImageView;
7247     VkImageLayout            resolveImageLayout;
7248     VkAttachmentLoadOp       loadOp;
7249     VkAttachmentStoreOp      storeOp;
7250     VkClearValue             clearValue;
7251 } VkRenderingAttachmentInfo;
7252 
7253 typedef struct VkRenderingInfo {
7254     VkStructureType                     sType;
7255     const void*                         pNext;
7256     VkRenderingFlags                    flags;
7257     VkRect2D                            renderArea;
7258     uint32_t                            layerCount;
7259     uint32_t                            viewMask;
7260     uint32_t                            colorAttachmentCount;
7261     const VkRenderingAttachmentInfo*    pColorAttachments;
7262     const VkRenderingAttachmentInfo*    pDepthAttachment;
7263     const VkRenderingAttachmentInfo*    pStencilAttachment;
7264 } VkRenderingInfo;
7265 
7266 typedef struct VkPipelineRenderingCreateInfo {
7267     VkStructureType    sType;
7268     const void*        pNext;
7269     uint32_t           viewMask;
7270     uint32_t           colorAttachmentCount;
7271     const VkFormat*    pColorAttachmentFormats;
7272     VkFormat           depthAttachmentFormat;
7273     VkFormat           stencilAttachmentFormat;
7274 } VkPipelineRenderingCreateInfo;
7275 
7276 typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7277     VkStructureType    sType;
7278     void*              pNext;
7279     VkBool32           dynamicRendering;
7280 } VkPhysicalDeviceDynamicRenderingFeatures;
7281 
7282 typedef struct VkCommandBufferInheritanceRenderingInfo {
7283     VkStructureType          sType;
7284     const void*              pNext;
7285     VkRenderingFlags         flags;
7286     uint32_t                 viewMask;
7287     uint32_t                 colorAttachmentCount;
7288     const VkFormat*          pColorAttachmentFormats;
7289     VkFormat                 depthAttachmentFormat;
7290     VkFormat                 stencilAttachmentFormat;
7291     VkSampleCountFlagBits    rasterizationSamples;
7292 } VkCommandBufferInheritanceRenderingInfo;
7293 
7294 typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7295     VkStructureType    sType;
7296     void*              pNext;
7297     VkBool32           shaderIntegerDotProduct;
7298 } VkPhysicalDeviceShaderIntegerDotProductFeatures;
7299 
7300 typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
7301     VkStructureType    sType;
7302     void*              pNext;
7303     VkBool32           integerDotProduct8BitUnsignedAccelerated;
7304     VkBool32           integerDotProduct8BitSignedAccelerated;
7305     VkBool32           integerDotProduct8BitMixedSignednessAccelerated;
7306     VkBool32           integerDotProduct4x8BitPackedUnsignedAccelerated;
7307     VkBool32           integerDotProduct4x8BitPackedSignedAccelerated;
7308     VkBool32           integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7309     VkBool32           integerDotProduct16BitUnsignedAccelerated;
7310     VkBool32           integerDotProduct16BitSignedAccelerated;
7311     VkBool32           integerDotProduct16BitMixedSignednessAccelerated;
7312     VkBool32           integerDotProduct32BitUnsignedAccelerated;
7313     VkBool32           integerDotProduct32BitSignedAccelerated;
7314     VkBool32           integerDotProduct32BitMixedSignednessAccelerated;
7315     VkBool32           integerDotProduct64BitUnsignedAccelerated;
7316     VkBool32           integerDotProduct64BitSignedAccelerated;
7317     VkBool32           integerDotProduct64BitMixedSignednessAccelerated;
7318     VkBool32           integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7319     VkBool32           integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7320     VkBool32           integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7321     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7322     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7323     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7324     VkBool32           integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7325     VkBool32           integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7326     VkBool32           integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7327     VkBool32           integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7328     VkBool32           integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7329     VkBool32           integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7330     VkBool32           integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7331     VkBool32           integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7332     VkBool32           integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7333 } VkPhysicalDeviceShaderIntegerDotProductProperties;
7334 
7335 typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
7336     VkStructureType    sType;
7337     void*              pNext;
7338     VkDeviceSize       storageTexelBufferOffsetAlignmentBytes;
7339     VkBool32           storageTexelBufferOffsetSingleTexelAlignment;
7340     VkDeviceSize       uniformTexelBufferOffsetAlignmentBytes;
7341     VkBool32           uniformTexelBufferOffsetSingleTexelAlignment;
7342 } VkPhysicalDeviceTexelBufferAlignmentProperties;
7343 
7344 typedef struct VkFormatProperties3 {
7345     VkStructureType          sType;
7346     void*                    pNext;
7347     VkFormatFeatureFlags2    linearTilingFeatures;
7348     VkFormatFeatureFlags2    optimalTilingFeatures;
7349     VkFormatFeatureFlags2    bufferFeatures;
7350 } VkFormatProperties3;
7351 
7352 typedef struct VkPhysicalDeviceMaintenance4Features {
7353     VkStructureType    sType;
7354     void*              pNext;
7355     VkBool32           maintenance4;
7356 } VkPhysicalDeviceMaintenance4Features;
7357 
7358 typedef struct VkPhysicalDeviceMaintenance4Properties {
7359     VkStructureType    sType;
7360     void*              pNext;
7361     VkDeviceSize       maxBufferSize;
7362 } VkPhysicalDeviceMaintenance4Properties;
7363 
7364 typedef struct VkDeviceBufferMemoryRequirements {
7365     VkStructureType              sType;
7366     const void*                  pNext;
7367     const VkBufferCreateInfo*    pCreateInfo;
7368 } VkDeviceBufferMemoryRequirements;
7369 
7370 typedef struct VkDeviceImageMemoryRequirements {
7371     VkStructureType             sType;
7372     const void*                 pNext;
7373     const VkImageCreateInfo*    pCreateInfo;
7374     VkImageAspectFlagBits       planeAspect;
7375 } VkDeviceImageMemoryRequirements;
7376 
7377 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
7378 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
7379 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
7380 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
7381 typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
7382 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
7383 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
7384 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
7385 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
7386 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
7387 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
7388 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
7389 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
7390 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7391 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7392 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
7393 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
7394 typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
7395 typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer                   commandBuffer);
7396 typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
7397 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
7398 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
7399 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
7400 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
7401 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);
7402 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
7403 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
7404 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
7405 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
7406 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
7407 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
7408 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
7409 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
7410 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
7411 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7412 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7413 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7414 
7415 #ifndef VK_NO_PROTOTYPES
7416 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
7417     VkPhysicalDevice                            physicalDevice,
7418     uint32_t*                                   pToolCount,
7419     VkPhysicalDeviceToolProperties*             pToolProperties);
7420 
7421 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
7422     VkDevice                                    device,
7423     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
7424     const VkAllocationCallbacks*                pAllocator,
7425     VkPrivateDataSlot*                          pPrivateDataSlot);
7426 
7427 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
7428     VkDevice                                    device,
7429     VkPrivateDataSlot                           privateDataSlot,
7430     const VkAllocationCallbacks*                pAllocator);
7431 
7432 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
7433     VkDevice                                    device,
7434     VkObjectType                                objectType,
7435     uint64_t                                    objectHandle,
7436     VkPrivateDataSlot                           privateDataSlot,
7437     uint64_t                                    data);
7438 
7439 VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
7440     VkDevice                                    device,
7441     VkObjectType                                objectType,
7442     uint64_t                                    objectHandle,
7443     VkPrivateDataSlot                           privateDataSlot,
7444     uint64_t*                                   pData);
7445 
7446 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
7447     VkCommandBuffer                             commandBuffer,
7448     VkEvent                                     event,
7449     const VkDependencyInfo*                     pDependencyInfo);
7450 
7451 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
7452     VkCommandBuffer                             commandBuffer,
7453     VkEvent                                     event,
7454     VkPipelineStageFlags2                       stageMask);
7455 
7456 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
7457     VkCommandBuffer                             commandBuffer,
7458     uint32_t                                    eventCount,
7459     const VkEvent*                              pEvents,
7460     const VkDependencyInfo*                     pDependencyInfos);
7461 
7462 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
7463     VkCommandBuffer                             commandBuffer,
7464     const VkDependencyInfo*                     pDependencyInfo);
7465 
7466 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
7467     VkCommandBuffer                             commandBuffer,
7468     VkPipelineStageFlags2                       stage,
7469     VkQueryPool                                 queryPool,
7470     uint32_t                                    query);
7471 
7472 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
7473     VkQueue                                     queue,
7474     uint32_t                                    submitCount,
7475     const VkSubmitInfo2*                        pSubmits,
7476     VkFence                                     fence);
7477 
7478 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
7479     VkCommandBuffer                             commandBuffer,
7480     const VkCopyBufferInfo2*                    pCopyBufferInfo);
7481 
7482 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
7483     VkCommandBuffer                             commandBuffer,
7484     const VkCopyImageInfo2*                     pCopyImageInfo);
7485 
7486 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
7487     VkCommandBuffer                             commandBuffer,
7488     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
7489 
7490 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
7491     VkCommandBuffer                             commandBuffer,
7492     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
7493 
7494 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
7495     VkCommandBuffer                             commandBuffer,
7496     const VkBlitImageInfo2*                     pBlitImageInfo);
7497 
7498 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
7499     VkCommandBuffer                             commandBuffer,
7500     const VkResolveImageInfo2*                  pResolveImageInfo);
7501 
7502 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
7503     VkCommandBuffer                             commandBuffer,
7504     const VkRenderingInfo*                      pRenderingInfo);
7505 
7506 VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
7507     VkCommandBuffer                             commandBuffer);
7508 
7509 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
7510     VkCommandBuffer                             commandBuffer,
7511     VkCullModeFlags                             cullMode);
7512 
7513 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
7514     VkCommandBuffer                             commandBuffer,
7515     VkFrontFace                                 frontFace);
7516 
7517 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
7518     VkCommandBuffer                             commandBuffer,
7519     VkPrimitiveTopology                         primitiveTopology);
7520 
7521 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
7522     VkCommandBuffer                             commandBuffer,
7523     uint32_t                                    viewportCount,
7524     const VkViewport*                           pViewports);
7525 
7526 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
7527     VkCommandBuffer                             commandBuffer,
7528     uint32_t                                    scissorCount,
7529     const VkRect2D*                             pScissors);
7530 
7531 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
7532     VkCommandBuffer                             commandBuffer,
7533     uint32_t                                    firstBinding,
7534     uint32_t                                    bindingCount,
7535     const VkBuffer*                             pBuffers,
7536     const VkDeviceSize*                         pOffsets,
7537     const VkDeviceSize*                         pSizes,
7538     const VkDeviceSize*                         pStrides);
7539 
7540 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
7541     VkCommandBuffer                             commandBuffer,
7542     VkBool32                                    depthTestEnable);
7543 
7544 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
7545     VkCommandBuffer                             commandBuffer,
7546     VkBool32                                    depthWriteEnable);
7547 
7548 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
7549     VkCommandBuffer                             commandBuffer,
7550     VkCompareOp                                 depthCompareOp);
7551 
7552 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
7553     VkCommandBuffer                             commandBuffer,
7554     VkBool32                                    depthBoundsTestEnable);
7555 
7556 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
7557     VkCommandBuffer                             commandBuffer,
7558     VkBool32                                    stencilTestEnable);
7559 
7560 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
7561     VkCommandBuffer                             commandBuffer,
7562     VkStencilFaceFlags                          faceMask,
7563     VkStencilOp                                 failOp,
7564     VkStencilOp                                 passOp,
7565     VkStencilOp                                 depthFailOp,
7566     VkCompareOp                                 compareOp);
7567 
7568 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
7569     VkCommandBuffer                             commandBuffer,
7570     VkBool32                                    rasterizerDiscardEnable);
7571 
7572 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
7573     VkCommandBuffer                             commandBuffer,
7574     VkBool32                                    depthBiasEnable);
7575 
7576 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
7577     VkCommandBuffer                             commandBuffer,
7578     VkBool32                                    primitiveRestartEnable);
7579 
7580 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
7581     VkDevice                                    device,
7582     const VkDeviceBufferMemoryRequirements*     pInfo,
7583     VkMemoryRequirements2*                      pMemoryRequirements);
7584 
7585 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
7586     VkDevice                                    device,
7587     const VkDeviceImageMemoryRequirements*      pInfo,
7588     VkMemoryRequirements2*                      pMemoryRequirements);
7589 
7590 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
7591     VkDevice                                    device,
7592     const VkDeviceImageMemoryRequirements*      pInfo,
7593     uint32_t*                                   pSparseMemoryRequirementCount,
7594     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
7595 #endif
7596 
7597 
7598 // VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
7599 #define VK_KHR_surface 1
7600 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
7601 #define VK_KHR_SURFACE_SPEC_VERSION       25
7602 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
7603 
7604 typedef enum VkPresentModeKHR {
7605     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
7606     VK_PRESENT_MODE_MAILBOX_KHR = 1,
7607     VK_PRESENT_MODE_FIFO_KHR = 2,
7608     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
7609     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
7610     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
7611     VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
7612 } VkPresentModeKHR;
7613 
7614 typedef enum VkColorSpaceKHR {
7615     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
7616     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
7617     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
7618     VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
7619     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
7620     VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
7621     VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
7622     VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
7623     VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
7624   // VK_COLOR_SPACE_DOLBYVISION_EXT is deprecated, but no reason was given in the API XML
7625     VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
7626     VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
7627     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
7628     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
7629     VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
7630     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
7631     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
7632   // VK_COLORSPACE_SRGB_NONLINEAR_KHR is a deprecated alias
7633     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
7634   // VK_COLOR_SPACE_DCI_P3_LINEAR_EXT is a deprecated alias
7635     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
7636     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
7637 } VkColorSpaceKHR;
7638 
7639 typedef enum VkSurfaceTransformFlagBitsKHR {
7640     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
7641     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
7642     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
7643     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
7644     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
7645     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
7646     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
7647     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
7648     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
7649     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7650 } VkSurfaceTransformFlagBitsKHR;
7651 
7652 typedef enum VkCompositeAlphaFlagBitsKHR {
7653     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
7654     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
7655     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
7656     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
7657     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7658 } VkCompositeAlphaFlagBitsKHR;
7659 typedef VkFlags VkCompositeAlphaFlagsKHR;
7660 typedef VkFlags VkSurfaceTransformFlagsKHR;
7661 typedef struct VkSurfaceCapabilitiesKHR {
7662     uint32_t                         minImageCount;
7663     uint32_t                         maxImageCount;
7664     VkExtent2D                       currentExtent;
7665     VkExtent2D                       minImageExtent;
7666     VkExtent2D                       maxImageExtent;
7667     uint32_t                         maxImageArrayLayers;
7668     VkSurfaceTransformFlagsKHR       supportedTransforms;
7669     VkSurfaceTransformFlagBitsKHR    currentTransform;
7670     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
7671     VkImageUsageFlags                supportedUsageFlags;
7672 } VkSurfaceCapabilitiesKHR;
7673 
7674 typedef struct VkSurfaceFormatKHR {
7675     VkFormat           format;
7676     VkColorSpaceKHR    colorSpace;
7677 } VkSurfaceFormatKHR;
7678 
7679 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
7680 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
7681 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
7682 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
7683 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
7684 
7685 #ifndef VK_NO_PROTOTYPES
7686 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
7687     VkInstance                                  instance,
7688     VkSurfaceKHR                                surface,
7689     const VkAllocationCallbacks*                pAllocator);
7690 
7691 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
7692     VkPhysicalDevice                            physicalDevice,
7693     uint32_t                                    queueFamilyIndex,
7694     VkSurfaceKHR                                surface,
7695     VkBool32*                                   pSupported);
7696 
7697 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
7698     VkPhysicalDevice                            physicalDevice,
7699     VkSurfaceKHR                                surface,
7700     VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
7701 
7702 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
7703     VkPhysicalDevice                            physicalDevice,
7704     VkSurfaceKHR                                surface,
7705     uint32_t*                                   pSurfaceFormatCount,
7706     VkSurfaceFormatKHR*                         pSurfaceFormats);
7707 
7708 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
7709     VkPhysicalDevice                            physicalDevice,
7710     VkSurfaceKHR                                surface,
7711     uint32_t*                                   pPresentModeCount,
7712     VkPresentModeKHR*                           pPresentModes);
7713 #endif
7714 
7715 
7716 // VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
7717 #define VK_KHR_swapchain 1
7718 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
7719 #define VK_KHR_SWAPCHAIN_SPEC_VERSION     70
7720 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
7721 
7722 typedef enum VkSwapchainCreateFlagBitsKHR {
7723     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
7724     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
7725     VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
7726     VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0x00000008,
7727     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7728 } VkSwapchainCreateFlagBitsKHR;
7729 typedef VkFlags VkSwapchainCreateFlagsKHR;
7730 
7731 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
7732     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
7733     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
7734     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
7735     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
7736     VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7737 } VkDeviceGroupPresentModeFlagBitsKHR;
7738 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
7739 typedef struct VkSwapchainCreateInfoKHR {
7740     VkStructureType                  sType;
7741     const void*                      pNext;
7742     VkSwapchainCreateFlagsKHR        flags;
7743     VkSurfaceKHR                     surface;
7744     uint32_t                         minImageCount;
7745     VkFormat                         imageFormat;
7746     VkColorSpaceKHR                  imageColorSpace;
7747     VkExtent2D                       imageExtent;
7748     uint32_t                         imageArrayLayers;
7749     VkImageUsageFlags                imageUsage;
7750     VkSharingMode                    imageSharingMode;
7751     uint32_t                         queueFamilyIndexCount;
7752     const uint32_t*                  pQueueFamilyIndices;
7753     VkSurfaceTransformFlagBitsKHR    preTransform;
7754     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
7755     VkPresentModeKHR                 presentMode;
7756     VkBool32                         clipped;
7757     VkSwapchainKHR                   oldSwapchain;
7758 } VkSwapchainCreateInfoKHR;
7759 
7760 typedef struct VkPresentInfoKHR {
7761     VkStructureType          sType;
7762     const void*              pNext;
7763     uint32_t                 waitSemaphoreCount;
7764     const VkSemaphore*       pWaitSemaphores;
7765     uint32_t                 swapchainCount;
7766     const VkSwapchainKHR*    pSwapchains;
7767     const uint32_t*          pImageIndices;
7768     VkResult*                pResults;
7769 } VkPresentInfoKHR;
7770 
7771 typedef struct VkImageSwapchainCreateInfoKHR {
7772     VkStructureType    sType;
7773     const void*        pNext;
7774     VkSwapchainKHR     swapchain;
7775 } VkImageSwapchainCreateInfoKHR;
7776 
7777 typedef struct VkBindImageMemorySwapchainInfoKHR {
7778     VkStructureType    sType;
7779     const void*        pNext;
7780     VkSwapchainKHR     swapchain;
7781     uint32_t           imageIndex;
7782 } VkBindImageMemorySwapchainInfoKHR;
7783 
7784 typedef struct VkAcquireNextImageInfoKHR {
7785     VkStructureType    sType;
7786     const void*        pNext;
7787     VkSwapchainKHR     swapchain;
7788     uint64_t           timeout;
7789     VkSemaphore        semaphore;
7790     VkFence            fence;
7791     uint32_t           deviceMask;
7792 } VkAcquireNextImageInfoKHR;
7793 
7794 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
7795     VkStructureType                     sType;
7796     void*                               pNext;
7797     uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE];
7798     VkDeviceGroupPresentModeFlagsKHR    modes;
7799 } VkDeviceGroupPresentCapabilitiesKHR;
7800 
7801 typedef struct VkDeviceGroupPresentInfoKHR {
7802     VkStructureType                        sType;
7803     const void*                            pNext;
7804     uint32_t                               swapchainCount;
7805     const uint32_t*                        pDeviceMasks;
7806     VkDeviceGroupPresentModeFlagBitsKHR    mode;
7807 } VkDeviceGroupPresentInfoKHR;
7808 
7809 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
7810     VkStructureType                     sType;
7811     const void*                         pNext;
7812     VkDeviceGroupPresentModeFlagsKHR    modes;
7813 } VkDeviceGroupSwapchainCreateInfoKHR;
7814 
7815 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
7816 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
7817 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
7818 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
7819 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
7820 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
7821 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
7822 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
7823 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
7824 
7825 #ifndef VK_NO_PROTOTYPES
7826 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
7827     VkDevice                                    device,
7828     const VkSwapchainCreateInfoKHR*             pCreateInfo,
7829     const VkAllocationCallbacks*                pAllocator,
7830     VkSwapchainKHR*                             pSwapchain);
7831 
7832 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
7833     VkDevice                                    device,
7834     VkSwapchainKHR                              swapchain,
7835     const VkAllocationCallbacks*                pAllocator);
7836 
7837 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
7838     VkDevice                                    device,
7839     VkSwapchainKHR                              swapchain,
7840     uint32_t*                                   pSwapchainImageCount,
7841     VkImage*                                    pSwapchainImages);
7842 
7843 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
7844     VkDevice                                    device,
7845     VkSwapchainKHR                              swapchain,
7846     uint64_t                                    timeout,
7847     VkSemaphore                                 semaphore,
7848     VkFence                                     fence,
7849     uint32_t*                                   pImageIndex);
7850 
7851 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
7852     VkQueue                                     queue,
7853     const VkPresentInfoKHR*                     pPresentInfo);
7854 
7855 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
7856     VkDevice                                    device,
7857     VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
7858 
7859 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
7860     VkDevice                                    device,
7861     VkSurfaceKHR                                surface,
7862     VkDeviceGroupPresentModeFlagsKHR*           pModes);
7863 
7864 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
7865     VkPhysicalDevice                            physicalDevice,
7866     VkSurfaceKHR                                surface,
7867     uint32_t*                                   pRectCount,
7868     VkRect2D*                                   pRects);
7869 
7870 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
7871     VkDevice                                    device,
7872     const VkAcquireNextImageInfoKHR*            pAcquireInfo,
7873     uint32_t*                                   pImageIndex);
7874 #endif
7875 
7876 
7877 // VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
7878 #define VK_KHR_display 1
7879 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
7880 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
7881 #define VK_KHR_DISPLAY_SPEC_VERSION       23
7882 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
7883 typedef VkFlags VkDisplayModeCreateFlagsKHR;
7884 
7885 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
7886     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
7887     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
7888     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
7889     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
7890     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7891 } VkDisplayPlaneAlphaFlagBitsKHR;
7892 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
7893 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
7894 typedef struct VkDisplayModeParametersKHR {
7895     VkExtent2D    visibleRegion;
7896     uint32_t      refreshRate;
7897 } VkDisplayModeParametersKHR;
7898 
7899 typedef struct VkDisplayModeCreateInfoKHR {
7900     VkStructureType                sType;
7901     const void*                    pNext;
7902     VkDisplayModeCreateFlagsKHR    flags;
7903     VkDisplayModeParametersKHR     parameters;
7904 } VkDisplayModeCreateInfoKHR;
7905 
7906 typedef struct VkDisplayModePropertiesKHR {
7907     VkDisplayModeKHR              displayMode;
7908     VkDisplayModeParametersKHR    parameters;
7909 } VkDisplayModePropertiesKHR;
7910 
7911 typedef struct VkDisplayPlaneCapabilitiesKHR {
7912     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
7913     VkOffset2D                     minSrcPosition;
7914     VkOffset2D                     maxSrcPosition;
7915     VkExtent2D                     minSrcExtent;
7916     VkExtent2D                     maxSrcExtent;
7917     VkOffset2D                     minDstPosition;
7918     VkOffset2D                     maxDstPosition;
7919     VkExtent2D                     minDstExtent;
7920     VkExtent2D                     maxDstExtent;
7921 } VkDisplayPlaneCapabilitiesKHR;
7922 
7923 typedef struct VkDisplayPlanePropertiesKHR {
7924     VkDisplayKHR    currentDisplay;
7925     uint32_t        currentStackIndex;
7926 } VkDisplayPlanePropertiesKHR;
7927 
7928 typedef struct VkDisplayPropertiesKHR {
7929     VkDisplayKHR                  display;
7930     const char*                   displayName;
7931     VkExtent2D                    physicalDimensions;
7932     VkExtent2D                    physicalResolution;
7933     VkSurfaceTransformFlagsKHR    supportedTransforms;
7934     VkBool32                      planeReorderPossible;
7935     VkBool32                      persistentContent;
7936 } VkDisplayPropertiesKHR;
7937 
7938 typedef struct VkDisplaySurfaceCreateInfoKHR {
7939     VkStructureType                   sType;
7940     const void*                       pNext;
7941     VkDisplaySurfaceCreateFlagsKHR    flags;
7942     VkDisplayModeKHR                  displayMode;
7943     uint32_t                          planeIndex;
7944     uint32_t                          planeStackIndex;
7945     VkSurfaceTransformFlagBitsKHR     transform;
7946     float                             globalAlpha;
7947     VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
7948     VkExtent2D                        imageExtent;
7949 } VkDisplaySurfaceCreateInfoKHR;
7950 
7951 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
7952 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
7953 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
7954 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
7955 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
7956 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
7957 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
7958 
7959 #ifndef VK_NO_PROTOTYPES
7960 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
7961     VkPhysicalDevice                            physicalDevice,
7962     uint32_t*                                   pPropertyCount,
7963     VkDisplayPropertiesKHR*                     pProperties);
7964 
7965 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
7966     VkPhysicalDevice                            physicalDevice,
7967     uint32_t*                                   pPropertyCount,
7968     VkDisplayPlanePropertiesKHR*                pProperties);
7969 
7970 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
7971     VkPhysicalDevice                            physicalDevice,
7972     uint32_t                                    planeIndex,
7973     uint32_t*                                   pDisplayCount,
7974     VkDisplayKHR*                               pDisplays);
7975 
7976 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
7977     VkPhysicalDevice                            physicalDevice,
7978     VkDisplayKHR                                display,
7979     uint32_t*                                   pPropertyCount,
7980     VkDisplayModePropertiesKHR*                 pProperties);
7981 
7982 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
7983     VkPhysicalDevice                            physicalDevice,
7984     VkDisplayKHR                                display,
7985     const VkDisplayModeCreateInfoKHR*           pCreateInfo,
7986     const VkAllocationCallbacks*                pAllocator,
7987     VkDisplayModeKHR*                           pMode);
7988 
7989 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
7990     VkPhysicalDevice                            physicalDevice,
7991     VkDisplayModeKHR                            mode,
7992     uint32_t                                    planeIndex,
7993     VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
7994 
7995 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
7996     VkInstance                                  instance,
7997     const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
7998     const VkAllocationCallbacks*                pAllocator,
7999     VkSurfaceKHR*                               pSurface);
8000 #endif
8001 
8002 
8003 // VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
8004 #define VK_KHR_display_swapchain 1
8005 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
8006 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
8007 typedef struct VkDisplayPresentInfoKHR {
8008     VkStructureType    sType;
8009     const void*        pNext;
8010     VkRect2D           srcRect;
8011     VkRect2D           dstRect;
8012     VkBool32           persistent;
8013 } VkDisplayPresentInfoKHR;
8014 
8015 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
8016 
8017 #ifndef VK_NO_PROTOTYPES
8018 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
8019     VkDevice                                    device,
8020     uint32_t                                    swapchainCount,
8021     const VkSwapchainCreateInfoKHR*             pCreateInfos,
8022     const VkAllocationCallbacks*                pAllocator,
8023     VkSwapchainKHR*                             pSwapchains);
8024 #endif
8025 
8026 
8027 // VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
8028 #define VK_KHR_sampler_mirror_clamp_to_edge 1
8029 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
8030 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
8031 
8032 
8033 // VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
8034 #define VK_KHR_video_queue 1
8035 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
8036 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
8037 #define VK_KHR_VIDEO_QUEUE_SPEC_VERSION   8
8038 #define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
8039 
8040 typedef enum VkQueryResultStatusKHR {
8041     VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
8042     VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
8043     VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
8044     VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
8045     VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
8046 } VkQueryResultStatusKHR;
8047 
8048 typedef enum VkVideoCodecOperationFlagBitsKHR {
8049     VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
8050     VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
8051     VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
8052     VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
8053     VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
8054     VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
8055     VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8056 } VkVideoCodecOperationFlagBitsKHR;
8057 typedef VkFlags VkVideoCodecOperationFlagsKHR;
8058 
8059 typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
8060     VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
8061     VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
8062     VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
8063     VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
8064     VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
8065     VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8066 } VkVideoChromaSubsamplingFlagBitsKHR;
8067 typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
8068 
8069 typedef enum VkVideoComponentBitDepthFlagBitsKHR {
8070     VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
8071     VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
8072     VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
8073     VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
8074     VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8075 } VkVideoComponentBitDepthFlagBitsKHR;
8076 typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
8077 
8078 typedef enum VkVideoCapabilityFlagBitsKHR {
8079     VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
8080     VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
8081     VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8082 } VkVideoCapabilityFlagBitsKHR;
8083 typedef VkFlags VkVideoCapabilityFlagsKHR;
8084 
8085 typedef enum VkVideoSessionCreateFlagBitsKHR {
8086     VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
8087     VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
8088     VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
8089     VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8090 } VkVideoSessionCreateFlagBitsKHR;
8091 typedef VkFlags VkVideoSessionCreateFlagsKHR;
8092 typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
8093 typedef VkFlags VkVideoBeginCodingFlagsKHR;
8094 typedef VkFlags VkVideoEndCodingFlagsKHR;
8095 
8096 typedef enum VkVideoCodingControlFlagBitsKHR {
8097     VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
8098     VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
8099     VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
8100     VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8101 } VkVideoCodingControlFlagBitsKHR;
8102 typedef VkFlags VkVideoCodingControlFlagsKHR;
8103 typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
8104     VkStructureType    sType;
8105     void*              pNext;
8106     VkBool32           queryResultStatusSupport;
8107 } VkQueueFamilyQueryResultStatusPropertiesKHR;
8108 
8109 typedef struct VkQueueFamilyVideoPropertiesKHR {
8110     VkStructureType                  sType;
8111     void*                            pNext;
8112     VkVideoCodecOperationFlagsKHR    videoCodecOperations;
8113 } VkQueueFamilyVideoPropertiesKHR;
8114 
8115 typedef struct VkVideoProfileInfoKHR {
8116     VkStructureType                     sType;
8117     const void*                         pNext;
8118     VkVideoCodecOperationFlagBitsKHR    videoCodecOperation;
8119     VkVideoChromaSubsamplingFlagsKHR    chromaSubsampling;
8120     VkVideoComponentBitDepthFlagsKHR    lumaBitDepth;
8121     VkVideoComponentBitDepthFlagsKHR    chromaBitDepth;
8122 } VkVideoProfileInfoKHR;
8123 
8124 typedef struct VkVideoProfileListInfoKHR {
8125     VkStructureType                 sType;
8126     const void*                     pNext;
8127     uint32_t                        profileCount;
8128     const VkVideoProfileInfoKHR*    pProfiles;
8129 } VkVideoProfileListInfoKHR;
8130 
8131 typedef struct VkVideoCapabilitiesKHR {
8132     VkStructureType              sType;
8133     void*                        pNext;
8134     VkVideoCapabilityFlagsKHR    flags;
8135     VkDeviceSize                 minBitstreamBufferOffsetAlignment;
8136     VkDeviceSize                 minBitstreamBufferSizeAlignment;
8137     VkExtent2D                   pictureAccessGranularity;
8138     VkExtent2D                   minCodedExtent;
8139     VkExtent2D                   maxCodedExtent;
8140     uint32_t                     maxDpbSlots;
8141     uint32_t                     maxActiveReferencePictures;
8142     VkExtensionProperties        stdHeaderVersion;
8143 } VkVideoCapabilitiesKHR;
8144 
8145 typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
8146     VkStructureType      sType;
8147     const void*          pNext;
8148     VkImageUsageFlags    imageUsage;
8149 } VkPhysicalDeviceVideoFormatInfoKHR;
8150 
8151 typedef struct VkVideoFormatPropertiesKHR {
8152     VkStructureType       sType;
8153     void*                 pNext;
8154     VkFormat              format;
8155     VkComponentMapping    componentMapping;
8156     VkImageCreateFlags    imageCreateFlags;
8157     VkImageType           imageType;
8158     VkImageTiling         imageTiling;
8159     VkImageUsageFlags     imageUsageFlags;
8160 } VkVideoFormatPropertiesKHR;
8161 
8162 typedef struct VkVideoPictureResourceInfoKHR {
8163     VkStructureType    sType;
8164     const void*        pNext;
8165     VkOffset2D         codedOffset;
8166     VkExtent2D         codedExtent;
8167     uint32_t           baseArrayLayer;
8168     VkImageView        imageViewBinding;
8169 } VkVideoPictureResourceInfoKHR;
8170 
8171 typedef struct VkVideoReferenceSlotInfoKHR {
8172     VkStructureType                         sType;
8173     const void*                             pNext;
8174     int32_t                                 slotIndex;
8175     const VkVideoPictureResourceInfoKHR*    pPictureResource;
8176 } VkVideoReferenceSlotInfoKHR;
8177 
8178 typedef struct VkVideoSessionMemoryRequirementsKHR {
8179     VkStructureType         sType;
8180     void*                   pNext;
8181     uint32_t                memoryBindIndex;
8182     VkMemoryRequirements    memoryRequirements;
8183 } VkVideoSessionMemoryRequirementsKHR;
8184 
8185 typedef struct VkBindVideoSessionMemoryInfoKHR {
8186     VkStructureType    sType;
8187     const void*        pNext;
8188     uint32_t           memoryBindIndex;
8189     VkDeviceMemory     memory;
8190     VkDeviceSize       memoryOffset;
8191     VkDeviceSize       memorySize;
8192 } VkBindVideoSessionMemoryInfoKHR;
8193 
8194 typedef struct VkVideoSessionCreateInfoKHR {
8195     VkStructureType                 sType;
8196     const void*                     pNext;
8197     uint32_t                        queueFamilyIndex;
8198     VkVideoSessionCreateFlagsKHR    flags;
8199     const VkVideoProfileInfoKHR*    pVideoProfile;
8200     VkFormat                        pictureFormat;
8201     VkExtent2D                      maxCodedExtent;
8202     VkFormat                        referencePictureFormat;
8203     uint32_t                        maxDpbSlots;
8204     uint32_t                        maxActiveReferencePictures;
8205     const VkExtensionProperties*    pStdHeaderVersion;
8206 } VkVideoSessionCreateInfoKHR;
8207 
8208 typedef struct VkVideoSessionParametersCreateInfoKHR {
8209     VkStructureType                           sType;
8210     const void*                               pNext;
8211     VkVideoSessionParametersCreateFlagsKHR    flags;
8212     VkVideoSessionParametersKHR               videoSessionParametersTemplate;
8213     VkVideoSessionKHR                         videoSession;
8214 } VkVideoSessionParametersCreateInfoKHR;
8215 
8216 typedef struct VkVideoSessionParametersUpdateInfoKHR {
8217     VkStructureType    sType;
8218     const void*        pNext;
8219     uint32_t           updateSequenceCount;
8220 } VkVideoSessionParametersUpdateInfoKHR;
8221 
8222 typedef struct VkVideoBeginCodingInfoKHR {
8223     VkStructureType                       sType;
8224     const void*                           pNext;
8225     VkVideoBeginCodingFlagsKHR            flags;
8226     VkVideoSessionKHR                     videoSession;
8227     VkVideoSessionParametersKHR           videoSessionParameters;
8228     uint32_t                              referenceSlotCount;
8229     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
8230 } VkVideoBeginCodingInfoKHR;
8231 
8232 typedef struct VkVideoEndCodingInfoKHR {
8233     VkStructureType             sType;
8234     const void*                 pNext;
8235     VkVideoEndCodingFlagsKHR    flags;
8236 } VkVideoEndCodingInfoKHR;
8237 
8238 typedef struct VkVideoCodingControlInfoKHR {
8239     VkStructureType                 sType;
8240     const void*                     pNext;
8241     VkVideoCodingControlFlagsKHR    flags;
8242 } VkVideoCodingControlInfoKHR;
8243 
8244 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
8245 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
8246 typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
8247 typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
8248 typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
8249 typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
8250 typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
8251 typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
8252 typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
8253 typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
8254 typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
8255 typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
8256 
8257 #ifndef VK_NO_PROTOTYPES
8258 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
8259     VkPhysicalDevice                            physicalDevice,
8260     const VkVideoProfileInfoKHR*                pVideoProfile,
8261     VkVideoCapabilitiesKHR*                     pCapabilities);
8262 
8263 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
8264     VkPhysicalDevice                            physicalDevice,
8265     const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
8266     uint32_t*                                   pVideoFormatPropertyCount,
8267     VkVideoFormatPropertiesKHR*                 pVideoFormatProperties);
8268 
8269 VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
8270     VkDevice                                    device,
8271     const VkVideoSessionCreateInfoKHR*          pCreateInfo,
8272     const VkAllocationCallbacks*                pAllocator,
8273     VkVideoSessionKHR*                          pVideoSession);
8274 
8275 VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
8276     VkDevice                                    device,
8277     VkVideoSessionKHR                           videoSession,
8278     const VkAllocationCallbacks*                pAllocator);
8279 
8280 VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
8281     VkDevice                                    device,
8282     VkVideoSessionKHR                           videoSession,
8283     uint32_t*                                   pMemoryRequirementsCount,
8284     VkVideoSessionMemoryRequirementsKHR*        pMemoryRequirements);
8285 
8286 VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
8287     VkDevice                                    device,
8288     VkVideoSessionKHR                           videoSession,
8289     uint32_t                                    bindSessionMemoryInfoCount,
8290     const VkBindVideoSessionMemoryInfoKHR*      pBindSessionMemoryInfos);
8291 
8292 VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
8293     VkDevice                                    device,
8294     const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
8295     const VkAllocationCallbacks*                pAllocator,
8296     VkVideoSessionParametersKHR*                pVideoSessionParameters);
8297 
8298 VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
8299     VkDevice                                    device,
8300     VkVideoSessionParametersKHR                 videoSessionParameters,
8301     const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
8302 
8303 VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
8304     VkDevice                                    device,
8305     VkVideoSessionParametersKHR                 videoSessionParameters,
8306     const VkAllocationCallbacks*                pAllocator);
8307 
8308 VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
8309     VkCommandBuffer                             commandBuffer,
8310     const VkVideoBeginCodingInfoKHR*            pBeginInfo);
8311 
8312 VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
8313     VkCommandBuffer                             commandBuffer,
8314     const VkVideoEndCodingInfoKHR*              pEndCodingInfo);
8315 
8316 VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
8317     VkCommandBuffer                             commandBuffer,
8318     const VkVideoCodingControlInfoKHR*          pCodingControlInfo);
8319 #endif
8320 
8321 
8322 // VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
8323 #define VK_KHR_video_decode_queue 1
8324 #define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
8325 #define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
8326 
8327 typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
8328     VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
8329     VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
8330     VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8331 } VkVideoDecodeCapabilityFlagBitsKHR;
8332 typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
8333 
8334 typedef enum VkVideoDecodeUsageFlagBitsKHR {
8335     VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
8336     VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
8337     VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
8338     VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
8339     VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8340 } VkVideoDecodeUsageFlagBitsKHR;
8341 typedef VkFlags VkVideoDecodeUsageFlagsKHR;
8342 typedef VkFlags VkVideoDecodeFlagsKHR;
8343 typedef struct VkVideoDecodeCapabilitiesKHR {
8344     VkStructureType                    sType;
8345     void*                              pNext;
8346     VkVideoDecodeCapabilityFlagsKHR    flags;
8347 } VkVideoDecodeCapabilitiesKHR;
8348 
8349 typedef struct VkVideoDecodeUsageInfoKHR {
8350     VkStructureType               sType;
8351     const void*                   pNext;
8352     VkVideoDecodeUsageFlagsKHR    videoUsageHints;
8353 } VkVideoDecodeUsageInfoKHR;
8354 
8355 typedef struct VkVideoDecodeInfoKHR {
8356     VkStructureType                       sType;
8357     const void*                           pNext;
8358     VkVideoDecodeFlagsKHR                 flags;
8359     VkBuffer                              srcBuffer;
8360     VkDeviceSize                          srcBufferOffset;
8361     VkDeviceSize                          srcBufferRange;
8362     VkVideoPictureResourceInfoKHR         dstPictureResource;
8363     const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
8364     uint32_t                              referenceSlotCount;
8365     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
8366 } VkVideoDecodeInfoKHR;
8367 
8368 typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
8369 
8370 #ifndef VK_NO_PROTOTYPES
8371 VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
8372     VkCommandBuffer                             commandBuffer,
8373     const VkVideoDecodeInfoKHR*                 pDecodeInfo);
8374 #endif
8375 
8376 
8377 // VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
8378 #define VK_KHR_video_encode_h264 1
8379 #include "vk_video/vulkan_video_codec_h264std.h"
8380 #include "vk_video/vulkan_video_codec_h264std_encode.h"
8381 #define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
8382 #define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
8383 
8384 typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
8385     VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
8386     VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
8387     VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
8388     VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
8389     VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
8390     VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
8391     VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
8392     VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
8393     VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
8394     VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8395 } VkVideoEncodeH264CapabilityFlagBitsKHR;
8396 typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
8397 
8398 typedef enum VkVideoEncodeH264StdFlagBitsKHR {
8399     VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
8400     VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
8401     VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
8402     VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
8403     VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
8404     VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
8405     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
8406     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
8407     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
8408     VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
8409     VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
8410     VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
8411     VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
8412     VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
8413     VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
8414     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
8415     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
8416     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
8417     VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
8418     VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
8419     VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8420 } VkVideoEncodeH264StdFlagBitsKHR;
8421 typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
8422 
8423 typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
8424     VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
8425     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
8426     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
8427     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
8428     VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
8429     VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8430 } VkVideoEncodeH264RateControlFlagBitsKHR;
8431 typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
8432 typedef struct VkVideoEncodeH264CapabilitiesKHR {
8433     VkStructureType                        sType;
8434     void*                                  pNext;
8435     VkVideoEncodeH264CapabilityFlagsKHR    flags;
8436     StdVideoH264LevelIdc                   maxLevelIdc;
8437     uint32_t                               maxSliceCount;
8438     uint32_t                               maxPPictureL0ReferenceCount;
8439     uint32_t                               maxBPictureL0ReferenceCount;
8440     uint32_t                               maxL1ReferenceCount;
8441     uint32_t                               maxTemporalLayerCount;
8442     VkBool32                               expectDyadicTemporalLayerPattern;
8443     int32_t                                minQp;
8444     int32_t                                maxQp;
8445     VkBool32                               prefersGopRemainingFrames;
8446     VkBool32                               requiresGopRemainingFrames;
8447     VkVideoEncodeH264StdFlagsKHR           stdSyntaxFlags;
8448 } VkVideoEncodeH264CapabilitiesKHR;
8449 
8450 typedef struct VkVideoEncodeH264QpKHR {
8451     int32_t    qpI;
8452     int32_t    qpP;
8453     int32_t    qpB;
8454 } VkVideoEncodeH264QpKHR;
8455 
8456 typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
8457     VkStructureType                         sType;
8458     void*                                   pNext;
8459     VkVideoEncodeH264RateControlFlagsKHR    preferredRateControlFlags;
8460     uint32_t                                preferredGopFrameCount;
8461     uint32_t                                preferredIdrPeriod;
8462     uint32_t                                preferredConsecutiveBFrameCount;
8463     uint32_t                                preferredTemporalLayerCount;
8464     VkVideoEncodeH264QpKHR                  preferredConstantQp;
8465     uint32_t                                preferredMaxL0ReferenceCount;
8466     uint32_t                                preferredMaxL1ReferenceCount;
8467     VkBool32                                preferredStdEntropyCodingModeFlag;
8468 } VkVideoEncodeH264QualityLevelPropertiesKHR;
8469 
8470 typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
8471     VkStructureType         sType;
8472     const void*             pNext;
8473     VkBool32                useMaxLevelIdc;
8474     StdVideoH264LevelIdc    maxLevelIdc;
8475 } VkVideoEncodeH264SessionCreateInfoKHR;
8476 
8477 typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
8478     VkStructureType                            sType;
8479     const void*                                pNext;
8480     uint32_t                                   stdSPSCount;
8481     const StdVideoH264SequenceParameterSet*    pStdSPSs;
8482     uint32_t                                   stdPPSCount;
8483     const StdVideoH264PictureParameterSet*     pStdPPSs;
8484 } VkVideoEncodeH264SessionParametersAddInfoKHR;
8485 
8486 typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
8487     VkStructureType                                        sType;
8488     const void*                                            pNext;
8489     uint32_t                                               maxStdSPSCount;
8490     uint32_t                                               maxStdPPSCount;
8491     const VkVideoEncodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
8492 } VkVideoEncodeH264SessionParametersCreateInfoKHR;
8493 
8494 typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
8495     VkStructureType    sType;
8496     const void*        pNext;
8497     VkBool32           writeStdSPS;
8498     VkBool32           writeStdPPS;
8499     uint32_t           stdSPSId;
8500     uint32_t           stdPPSId;
8501 } VkVideoEncodeH264SessionParametersGetInfoKHR;
8502 
8503 typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
8504     VkStructureType    sType;
8505     void*              pNext;
8506     VkBool32           hasStdSPSOverrides;
8507     VkBool32           hasStdPPSOverrides;
8508 } VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
8509 
8510 typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
8511     VkStructureType                         sType;
8512     const void*                             pNext;
8513     int32_t                                 constantQp;
8514     const StdVideoEncodeH264SliceHeader*    pStdSliceHeader;
8515 } VkVideoEncodeH264NaluSliceInfoKHR;
8516 
8517 typedef struct VkVideoEncodeH264PictureInfoKHR {
8518     VkStructureType                             sType;
8519     const void*                                 pNext;
8520     uint32_t                                    naluSliceEntryCount;
8521     const VkVideoEncodeH264NaluSliceInfoKHR*    pNaluSliceEntries;
8522     const StdVideoEncodeH264PictureInfo*        pStdPictureInfo;
8523     VkBool32                                    generatePrefixNalu;
8524 } VkVideoEncodeH264PictureInfoKHR;
8525 
8526 typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
8527     VkStructureType                           sType;
8528     const void*                               pNext;
8529     const StdVideoEncodeH264ReferenceInfo*    pStdReferenceInfo;
8530 } VkVideoEncodeH264DpbSlotInfoKHR;
8531 
8532 typedef struct VkVideoEncodeH264ProfileInfoKHR {
8533     VkStructureType           sType;
8534     const void*               pNext;
8535     StdVideoH264ProfileIdc    stdProfileIdc;
8536 } VkVideoEncodeH264ProfileInfoKHR;
8537 
8538 typedef struct VkVideoEncodeH264RateControlInfoKHR {
8539     VkStructureType                         sType;
8540     const void*                             pNext;
8541     VkVideoEncodeH264RateControlFlagsKHR    flags;
8542     uint32_t                                gopFrameCount;
8543     uint32_t                                idrPeriod;
8544     uint32_t                                consecutiveBFrameCount;
8545     uint32_t                                temporalLayerCount;
8546 } VkVideoEncodeH264RateControlInfoKHR;
8547 
8548 typedef struct VkVideoEncodeH264FrameSizeKHR {
8549     uint32_t    frameISize;
8550     uint32_t    framePSize;
8551     uint32_t    frameBSize;
8552 } VkVideoEncodeH264FrameSizeKHR;
8553 
8554 typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
8555     VkStructureType                  sType;
8556     const void*                      pNext;
8557     VkBool32                         useMinQp;
8558     VkVideoEncodeH264QpKHR           minQp;
8559     VkBool32                         useMaxQp;
8560     VkVideoEncodeH264QpKHR           maxQp;
8561     VkBool32                         useMaxFrameSize;
8562     VkVideoEncodeH264FrameSizeKHR    maxFrameSize;
8563 } VkVideoEncodeH264RateControlLayerInfoKHR;
8564 
8565 typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
8566     VkStructureType    sType;
8567     const void*        pNext;
8568     VkBool32           useGopRemainingFrames;
8569     uint32_t           gopRemainingI;
8570     uint32_t           gopRemainingP;
8571     uint32_t           gopRemainingB;
8572 } VkVideoEncodeH264GopRemainingFrameInfoKHR;
8573 
8574 
8575 
8576 // VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
8577 #define VK_KHR_video_encode_h265 1
8578 #include "vk_video/vulkan_video_codec_h265std.h"
8579 #include "vk_video/vulkan_video_codec_h265std_encode.h"
8580 #define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
8581 #define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
8582 
8583 typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
8584     VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
8585     VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
8586     VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
8587     VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
8588     VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
8589     VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
8590     VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
8591     VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
8592     VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
8593     VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
8594     VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8595 } VkVideoEncodeH265CapabilityFlagBitsKHR;
8596 typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
8597 
8598 typedef enum VkVideoEncodeH265StdFlagBitsKHR {
8599     VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
8600     VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
8601     VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
8602     VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
8603     VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
8604     VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
8605     VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
8606     VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
8607     VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
8608     VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
8609     VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
8610     VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
8611     VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
8612     VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
8613     VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
8614     VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
8615     VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
8616     VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
8617     VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
8618     VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
8619     VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
8620     VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8621 } VkVideoEncodeH265StdFlagBitsKHR;
8622 typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
8623 
8624 typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
8625     VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
8626     VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
8627     VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
8628     VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8629 } VkVideoEncodeH265CtbSizeFlagBitsKHR;
8630 typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
8631 
8632 typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
8633     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
8634     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
8635     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
8636     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
8637     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8638 } VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
8639 typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
8640 
8641 typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
8642     VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
8643     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
8644     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
8645     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
8646     VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
8647     VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8648 } VkVideoEncodeH265RateControlFlagBitsKHR;
8649 typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
8650 typedef struct VkVideoEncodeH265CapabilitiesKHR {
8651     VkStructureType                                sType;
8652     void*                                          pNext;
8653     VkVideoEncodeH265CapabilityFlagsKHR            flags;
8654     StdVideoH265LevelIdc                           maxLevelIdc;
8655     uint32_t                                       maxSliceSegmentCount;
8656     VkExtent2D                                     maxTiles;
8657     VkVideoEncodeH265CtbSizeFlagsKHR               ctbSizes;
8658     VkVideoEncodeH265TransformBlockSizeFlagsKHR    transformBlockSizes;
8659     uint32_t                                       maxPPictureL0ReferenceCount;
8660     uint32_t                                       maxBPictureL0ReferenceCount;
8661     uint32_t                                       maxL1ReferenceCount;
8662     uint32_t                                       maxSubLayerCount;
8663     VkBool32                                       expectDyadicTemporalSubLayerPattern;
8664     int32_t                                        minQp;
8665     int32_t                                        maxQp;
8666     VkBool32                                       prefersGopRemainingFrames;
8667     VkBool32                                       requiresGopRemainingFrames;
8668     VkVideoEncodeH265StdFlagsKHR                   stdSyntaxFlags;
8669 } VkVideoEncodeH265CapabilitiesKHR;
8670 
8671 typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
8672     VkStructureType         sType;
8673     const void*             pNext;
8674     VkBool32                useMaxLevelIdc;
8675     StdVideoH265LevelIdc    maxLevelIdc;
8676 } VkVideoEncodeH265SessionCreateInfoKHR;
8677 
8678 typedef struct VkVideoEncodeH265QpKHR {
8679     int32_t    qpI;
8680     int32_t    qpP;
8681     int32_t    qpB;
8682 } VkVideoEncodeH265QpKHR;
8683 
8684 typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
8685     VkStructureType                         sType;
8686     void*                                   pNext;
8687     VkVideoEncodeH265RateControlFlagsKHR    preferredRateControlFlags;
8688     uint32_t                                preferredGopFrameCount;
8689     uint32_t                                preferredIdrPeriod;
8690     uint32_t                                preferredConsecutiveBFrameCount;
8691     uint32_t                                preferredSubLayerCount;
8692     VkVideoEncodeH265QpKHR                  preferredConstantQp;
8693     uint32_t                                preferredMaxL0ReferenceCount;
8694     uint32_t                                preferredMaxL1ReferenceCount;
8695 } VkVideoEncodeH265QualityLevelPropertiesKHR;
8696 
8697 typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
8698     VkStructureType                            sType;
8699     const void*                                pNext;
8700     uint32_t                                   stdVPSCount;
8701     const StdVideoH265VideoParameterSet*       pStdVPSs;
8702     uint32_t                                   stdSPSCount;
8703     const StdVideoH265SequenceParameterSet*    pStdSPSs;
8704     uint32_t                                   stdPPSCount;
8705     const StdVideoH265PictureParameterSet*     pStdPPSs;
8706 } VkVideoEncodeH265SessionParametersAddInfoKHR;
8707 
8708 typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
8709     VkStructureType                                        sType;
8710     const void*                                            pNext;
8711     uint32_t                                               maxStdVPSCount;
8712     uint32_t                                               maxStdSPSCount;
8713     uint32_t                                               maxStdPPSCount;
8714     const VkVideoEncodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
8715 } VkVideoEncodeH265SessionParametersCreateInfoKHR;
8716 
8717 typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
8718     VkStructureType    sType;
8719     const void*        pNext;
8720     VkBool32           writeStdVPS;
8721     VkBool32           writeStdSPS;
8722     VkBool32           writeStdPPS;
8723     uint32_t           stdVPSId;
8724     uint32_t           stdSPSId;
8725     uint32_t           stdPPSId;
8726 } VkVideoEncodeH265SessionParametersGetInfoKHR;
8727 
8728 typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
8729     VkStructureType    sType;
8730     void*              pNext;
8731     VkBool32           hasStdVPSOverrides;
8732     VkBool32           hasStdSPSOverrides;
8733     VkBool32           hasStdPPSOverrides;
8734 } VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
8735 
8736 typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
8737     VkStructureType                                sType;
8738     const void*                                    pNext;
8739     int32_t                                        constantQp;
8740     const StdVideoEncodeH265SliceSegmentHeader*    pStdSliceSegmentHeader;
8741 } VkVideoEncodeH265NaluSliceSegmentInfoKHR;
8742 
8743 typedef struct VkVideoEncodeH265PictureInfoKHR {
8744     VkStructureType                                    sType;
8745     const void*                                        pNext;
8746     uint32_t                                           naluSliceSegmentEntryCount;
8747     const VkVideoEncodeH265NaluSliceSegmentInfoKHR*    pNaluSliceSegmentEntries;
8748     const StdVideoEncodeH265PictureInfo*               pStdPictureInfo;
8749 } VkVideoEncodeH265PictureInfoKHR;
8750 
8751 typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
8752     VkStructureType                           sType;
8753     const void*                               pNext;
8754     const StdVideoEncodeH265ReferenceInfo*    pStdReferenceInfo;
8755 } VkVideoEncodeH265DpbSlotInfoKHR;
8756 
8757 typedef struct VkVideoEncodeH265ProfileInfoKHR {
8758     VkStructureType           sType;
8759     const void*               pNext;
8760     StdVideoH265ProfileIdc    stdProfileIdc;
8761 } VkVideoEncodeH265ProfileInfoKHR;
8762 
8763 typedef struct VkVideoEncodeH265RateControlInfoKHR {
8764     VkStructureType                         sType;
8765     const void*                             pNext;
8766     VkVideoEncodeH265RateControlFlagsKHR    flags;
8767     uint32_t                                gopFrameCount;
8768     uint32_t                                idrPeriod;
8769     uint32_t                                consecutiveBFrameCount;
8770     uint32_t                                subLayerCount;
8771 } VkVideoEncodeH265RateControlInfoKHR;
8772 
8773 typedef struct VkVideoEncodeH265FrameSizeKHR {
8774     uint32_t    frameISize;
8775     uint32_t    framePSize;
8776     uint32_t    frameBSize;
8777 } VkVideoEncodeH265FrameSizeKHR;
8778 
8779 typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
8780     VkStructureType                  sType;
8781     const void*                      pNext;
8782     VkBool32                         useMinQp;
8783     VkVideoEncodeH265QpKHR           minQp;
8784     VkBool32                         useMaxQp;
8785     VkVideoEncodeH265QpKHR           maxQp;
8786     VkBool32                         useMaxFrameSize;
8787     VkVideoEncodeH265FrameSizeKHR    maxFrameSize;
8788 } VkVideoEncodeH265RateControlLayerInfoKHR;
8789 
8790 typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
8791     VkStructureType    sType;
8792     const void*        pNext;
8793     VkBool32           useGopRemainingFrames;
8794     uint32_t           gopRemainingI;
8795     uint32_t           gopRemainingP;
8796     uint32_t           gopRemainingB;
8797 } VkVideoEncodeH265GopRemainingFrameInfoKHR;
8798 
8799 
8800 
8801 // VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
8802 #define VK_KHR_video_decode_h264 1
8803 #include "vk_video/vulkan_video_codec_h264std_decode.h"
8804 #define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
8805 #define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
8806 
8807 typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
8808     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
8809     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
8810     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
8811     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8812 } VkVideoDecodeH264PictureLayoutFlagBitsKHR;
8813 typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
8814 typedef struct VkVideoDecodeH264ProfileInfoKHR {
8815     VkStructureType                              sType;
8816     const void*                                  pNext;
8817     StdVideoH264ProfileIdc                       stdProfileIdc;
8818     VkVideoDecodeH264PictureLayoutFlagBitsKHR    pictureLayout;
8819 } VkVideoDecodeH264ProfileInfoKHR;
8820 
8821 typedef struct VkVideoDecodeH264CapabilitiesKHR {
8822     VkStructureType         sType;
8823     void*                   pNext;
8824     StdVideoH264LevelIdc    maxLevelIdc;
8825     VkOffset2D              fieldOffsetGranularity;
8826 } VkVideoDecodeH264CapabilitiesKHR;
8827 
8828 typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
8829     VkStructureType                            sType;
8830     const void*                                pNext;
8831     uint32_t                                   stdSPSCount;
8832     const StdVideoH264SequenceParameterSet*    pStdSPSs;
8833     uint32_t                                   stdPPSCount;
8834     const StdVideoH264PictureParameterSet*     pStdPPSs;
8835 } VkVideoDecodeH264SessionParametersAddInfoKHR;
8836 
8837 typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
8838     VkStructureType                                        sType;
8839     const void*                                            pNext;
8840     uint32_t                                               maxStdSPSCount;
8841     uint32_t                                               maxStdPPSCount;
8842     const VkVideoDecodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
8843 } VkVideoDecodeH264SessionParametersCreateInfoKHR;
8844 
8845 typedef struct VkVideoDecodeH264PictureInfoKHR {
8846     VkStructureType                         sType;
8847     const void*                             pNext;
8848     const StdVideoDecodeH264PictureInfo*    pStdPictureInfo;
8849     uint32_t                                sliceCount;
8850     const uint32_t*                         pSliceOffsets;
8851 } VkVideoDecodeH264PictureInfoKHR;
8852 
8853 typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
8854     VkStructureType                           sType;
8855     const void*                               pNext;
8856     const StdVideoDecodeH264ReferenceInfo*    pStdReferenceInfo;
8857 } VkVideoDecodeH264DpbSlotInfoKHR;
8858 
8859 
8860 
8861 // VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
8862 #define VK_KHR_dynamic_rendering 1
8863 #define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
8864 #define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
8865 typedef VkRenderingFlags VkRenderingFlagsKHR;
8866 
8867 typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
8868 
8869 typedef VkRenderingInfo VkRenderingInfoKHR;
8870 
8871 typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
8872 
8873 typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
8874 
8875 typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
8876 
8877 typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
8878 
8879 typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
8880     VkStructureType    sType;
8881     const void*        pNext;
8882     VkImageView        imageView;
8883     VkImageLayout      imageLayout;
8884     VkExtent2D         shadingRateAttachmentTexelSize;
8885 } VkRenderingFragmentShadingRateAttachmentInfoKHR;
8886 
8887 typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
8888     VkStructureType    sType;
8889     const void*        pNext;
8890     VkImageView        imageView;
8891     VkImageLayout      imageLayout;
8892 } VkRenderingFragmentDensityMapAttachmentInfoEXT;
8893 
8894 typedef struct VkAttachmentSampleCountInfoAMD {
8895     VkStructureType                 sType;
8896     const void*                     pNext;
8897     uint32_t                        colorAttachmentCount;
8898     const VkSampleCountFlagBits*    pColorAttachmentSamples;
8899     VkSampleCountFlagBits           depthStencilAttachmentSamples;
8900 } VkAttachmentSampleCountInfoAMD;
8901 
8902 typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
8903 
8904 typedef struct VkMultiviewPerViewAttributesInfoNVX {
8905     VkStructureType    sType;
8906     const void*        pNext;
8907     VkBool32           perViewAttributes;
8908     VkBool32           perViewAttributesPositionXOnly;
8909 } VkMultiviewPerViewAttributesInfoNVX;
8910 
8911 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
8912 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer                   commandBuffer);
8913 
8914 #ifndef VK_NO_PROTOTYPES
8915 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
8916     VkCommandBuffer                             commandBuffer,
8917     const VkRenderingInfo*                      pRenderingInfo);
8918 
8919 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
8920     VkCommandBuffer                             commandBuffer);
8921 #endif
8922 
8923 
8924 // VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
8925 #define VK_KHR_multiview 1
8926 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
8927 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
8928 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
8929 
8930 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
8931 
8932 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
8933 
8934 
8935 
8936 // VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
8937 #define VK_KHR_get_physical_device_properties2 1
8938 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
8939 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
8940 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
8941 
8942 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
8943 
8944 typedef VkFormatProperties2 VkFormatProperties2KHR;
8945 
8946 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
8947 
8948 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
8949 
8950 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
8951 
8952 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
8953 
8954 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
8955 
8956 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
8957 
8958 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
8959 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
8960 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
8961 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
8962 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
8963 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
8964 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
8965 
8966 #ifndef VK_NO_PROTOTYPES
8967 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
8968     VkPhysicalDevice                            physicalDevice,
8969     VkPhysicalDeviceFeatures2*                  pFeatures);
8970 
8971 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
8972     VkPhysicalDevice                            physicalDevice,
8973     VkPhysicalDeviceProperties2*                pProperties);
8974 
8975 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
8976     VkPhysicalDevice                            physicalDevice,
8977     VkFormat                                    format,
8978     VkFormatProperties2*                        pFormatProperties);
8979 
8980 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
8981     VkPhysicalDevice                            physicalDevice,
8982     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
8983     VkImageFormatProperties2*                   pImageFormatProperties);
8984 
8985 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
8986     VkPhysicalDevice                            physicalDevice,
8987     uint32_t*                                   pQueueFamilyPropertyCount,
8988     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
8989 
8990 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
8991     VkPhysicalDevice                            physicalDevice,
8992     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
8993 
8994 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
8995     VkPhysicalDevice                            physicalDevice,
8996     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
8997     uint32_t*                                   pPropertyCount,
8998     VkSparseImageFormatProperties2*             pProperties);
8999 #endif
9000 
9001 
9002 // VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
9003 #define VK_KHR_device_group 1
9004 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  4
9005 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
9006 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
9007 
9008 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
9009 
9010 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
9011 
9012 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
9013 
9014 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
9015 
9016 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
9017 
9018 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
9019 
9020 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
9021 
9022 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
9023 
9024 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
9025 
9026 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
9027 
9028 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
9029 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
9030 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);
9031 
9032 #ifndef VK_NO_PROTOTYPES
9033 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
9034     VkDevice                                    device,
9035     uint32_t                                    heapIndex,
9036     uint32_t                                    localDeviceIndex,
9037     uint32_t                                    remoteDeviceIndex,
9038     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
9039 
9040 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
9041     VkCommandBuffer                             commandBuffer,
9042     uint32_t                                    deviceMask);
9043 
9044 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
9045     VkCommandBuffer                             commandBuffer,
9046     uint32_t                                    baseGroupX,
9047     uint32_t                                    baseGroupY,
9048     uint32_t                                    baseGroupZ,
9049     uint32_t                                    groupCountX,
9050     uint32_t                                    groupCountY,
9051     uint32_t                                    groupCountZ);
9052 #endif
9053 
9054 
9055 // VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
9056 #define VK_KHR_shader_draw_parameters 1
9057 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
9058 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
9059 
9060 
9061 // VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
9062 #define VK_KHR_maintenance1 1
9063 #define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
9064 #define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
9065 // VK_KHR_MAINTENANCE1_SPEC_VERSION is a deprecated alias
9066 #define VK_KHR_MAINTENANCE1_SPEC_VERSION  VK_KHR_MAINTENANCE_1_SPEC_VERSION
9067 // VK_KHR_MAINTENANCE1_EXTENSION_NAME is a deprecated alias
9068 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
9069 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
9070 
9071 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
9072 
9073 #ifndef VK_NO_PROTOTYPES
9074 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
9075     VkDevice                                    device,
9076     VkCommandPool                               commandPool,
9077     VkCommandPoolTrimFlags                      flags);
9078 #endif
9079 
9080 
9081 // VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
9082 #define VK_KHR_device_group_creation 1
9083 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
9084 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
9085 #define VK_MAX_DEVICE_GROUP_SIZE_KHR      VK_MAX_DEVICE_GROUP_SIZE
9086 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
9087 
9088 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
9089 
9090 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
9091 
9092 #ifndef VK_NO_PROTOTYPES
9093 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
9094     VkInstance                                  instance,
9095     uint32_t*                                   pPhysicalDeviceGroupCount,
9096     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
9097 #endif
9098 
9099 
9100 // VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
9101 #define VK_KHR_external_memory_capabilities 1
9102 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
9103 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
9104 #define VK_LUID_SIZE_KHR                  VK_LUID_SIZE
9105 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
9106 
9107 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
9108 
9109 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
9110 
9111 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
9112 
9113 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
9114 
9115 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
9116 
9117 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
9118 
9119 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
9120 
9121 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
9122 
9123 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
9124 
9125 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
9126 
9127 #ifndef VK_NO_PROTOTYPES
9128 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
9129     VkPhysicalDevice                            physicalDevice,
9130     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
9131     VkExternalBufferProperties*                 pExternalBufferProperties);
9132 #endif
9133 
9134 
9135 // VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
9136 #define VK_KHR_external_memory 1
9137 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
9138 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
9139 #define VK_QUEUE_FAMILY_EXTERNAL_KHR      VK_QUEUE_FAMILY_EXTERNAL
9140 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
9141 
9142 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
9143 
9144 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
9145 
9146 
9147 
9148 // VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
9149 #define VK_KHR_external_memory_fd 1
9150 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
9151 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
9152 typedef struct VkImportMemoryFdInfoKHR {
9153     VkStructureType                       sType;
9154     const void*                           pNext;
9155     VkExternalMemoryHandleTypeFlagBits    handleType;
9156     int                                   fd;
9157 } VkImportMemoryFdInfoKHR;
9158 
9159 typedef struct VkMemoryFdPropertiesKHR {
9160     VkStructureType    sType;
9161     void*              pNext;
9162     uint32_t           memoryTypeBits;
9163 } VkMemoryFdPropertiesKHR;
9164 
9165 typedef struct VkMemoryGetFdInfoKHR {
9166     VkStructureType                       sType;
9167     const void*                           pNext;
9168     VkDeviceMemory                        memory;
9169     VkExternalMemoryHandleTypeFlagBits    handleType;
9170 } VkMemoryGetFdInfoKHR;
9171 
9172 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
9173 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
9174 
9175 #ifndef VK_NO_PROTOTYPES
9176 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
9177     VkDevice                                    device,
9178     const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
9179     int*                                        pFd);
9180 
9181 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
9182     VkDevice                                    device,
9183     VkExternalMemoryHandleTypeFlagBits          handleType,
9184     int                                         fd,
9185     VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
9186 #endif
9187 
9188 
9189 // VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
9190 #define VK_KHR_external_semaphore_capabilities 1
9191 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
9192 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
9193 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
9194 
9195 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
9196 
9197 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
9198 
9199 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
9200 
9201 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
9202 
9203 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
9204 
9205 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
9206 
9207 #ifndef VK_NO_PROTOTYPES
9208 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
9209     VkPhysicalDevice                            physicalDevice,
9210     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
9211     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
9212 #endif
9213 
9214 
9215 // VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
9216 #define VK_KHR_external_semaphore 1
9217 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
9218 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
9219 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
9220 
9221 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
9222 
9223 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
9224 
9225 
9226 
9227 // VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
9228 #define VK_KHR_external_semaphore_fd 1
9229 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
9230 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
9231 typedef struct VkImportSemaphoreFdInfoKHR {
9232     VkStructureType                          sType;
9233     const void*                              pNext;
9234     VkSemaphore                              semaphore;
9235     VkSemaphoreImportFlags                   flags;
9236     VkExternalSemaphoreHandleTypeFlagBits    handleType;
9237     int                                      fd;
9238 } VkImportSemaphoreFdInfoKHR;
9239 
9240 typedef struct VkSemaphoreGetFdInfoKHR {
9241     VkStructureType                          sType;
9242     const void*                              pNext;
9243     VkSemaphore                              semaphore;
9244     VkExternalSemaphoreHandleTypeFlagBits    handleType;
9245 } VkSemaphoreGetFdInfoKHR;
9246 
9247 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
9248 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
9249 
9250 #ifndef VK_NO_PROTOTYPES
9251 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
9252     VkDevice                                    device,
9253     const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
9254 
9255 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
9256     VkDevice                                    device,
9257     const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
9258     int*                                        pFd);
9259 #endif
9260 
9261 
9262 // VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
9263 #define VK_KHR_push_descriptor 1
9264 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
9265 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
9266 typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
9267     VkStructureType    sType;
9268     void*              pNext;
9269     uint32_t           maxPushDescriptors;
9270 } VkPhysicalDevicePushDescriptorPropertiesKHR;
9271 
9272 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
9273 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
9274 
9275 #ifndef VK_NO_PROTOTYPES
9276 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
9277     VkCommandBuffer                             commandBuffer,
9278     VkPipelineBindPoint                         pipelineBindPoint,
9279     VkPipelineLayout                            layout,
9280     uint32_t                                    set,
9281     uint32_t                                    descriptorWriteCount,
9282     const VkWriteDescriptorSet*                 pDescriptorWrites);
9283 
9284 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
9285     VkCommandBuffer                             commandBuffer,
9286     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
9287     VkPipelineLayout                            layout,
9288     uint32_t                                    set,
9289     const void*                                 pData);
9290 #endif
9291 
9292 
9293 // VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
9294 #define VK_KHR_shader_float16_int8 1
9295 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
9296 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
9297 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
9298 
9299 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
9300 
9301 
9302 
9303 // VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
9304 #define VK_KHR_16bit_storage 1
9305 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
9306 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
9307 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
9308 
9309 
9310 
9311 // VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
9312 #define VK_KHR_incremental_present 1
9313 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
9314 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
9315 typedef struct VkRectLayerKHR {
9316     VkOffset2D    offset;
9317     VkExtent2D    extent;
9318     uint32_t      layer;
9319 } VkRectLayerKHR;
9320 
9321 typedef struct VkPresentRegionKHR {
9322     uint32_t                 rectangleCount;
9323     const VkRectLayerKHR*    pRectangles;
9324 } VkPresentRegionKHR;
9325 
9326 typedef struct VkPresentRegionsKHR {
9327     VkStructureType              sType;
9328     const void*                  pNext;
9329     uint32_t                     swapchainCount;
9330     const VkPresentRegionKHR*    pRegions;
9331 } VkPresentRegionsKHR;
9332 
9333 
9334 
9335 // VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
9336 #define VK_KHR_descriptor_update_template 1
9337 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
9338 
9339 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
9340 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
9341 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
9342 
9343 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
9344 
9345 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
9346 
9347 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
9348 
9349 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
9350 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
9351 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
9352 
9353 #ifndef VK_NO_PROTOTYPES
9354 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
9355     VkDevice                                    device,
9356     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
9357     const VkAllocationCallbacks*                pAllocator,
9358     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
9359 
9360 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
9361     VkDevice                                    device,
9362     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
9363     const VkAllocationCallbacks*                pAllocator);
9364 
9365 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
9366     VkDevice                                    device,
9367     VkDescriptorSet                             descriptorSet,
9368     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
9369     const void*                                 pData);
9370 #endif
9371 
9372 
9373 // VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
9374 #define VK_KHR_imageless_framebuffer 1
9375 #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
9376 #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
9377 typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
9378 
9379 typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
9380 
9381 typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
9382 
9383 typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
9384 
9385 
9386 
9387 // VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
9388 #define VK_KHR_create_renderpass2 1
9389 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
9390 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
9391 typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
9392 
9393 typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
9394 
9395 typedef VkAttachmentReference2 VkAttachmentReference2KHR;
9396 
9397 typedef VkSubpassDescription2 VkSubpassDescription2KHR;
9398 
9399 typedef VkSubpassDependency2 VkSubpassDependency2KHR;
9400 
9401 typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
9402 
9403 typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
9404 
9405 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
9406 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
9407 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
9408 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
9409 
9410 #ifndef VK_NO_PROTOTYPES
9411 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
9412     VkDevice                                    device,
9413     const VkRenderPassCreateInfo2*              pCreateInfo,
9414     const VkAllocationCallbacks*                pAllocator,
9415     VkRenderPass*                               pRenderPass);
9416 
9417 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
9418     VkCommandBuffer                             commandBuffer,
9419     const VkRenderPassBeginInfo*                pRenderPassBegin,
9420     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
9421 
9422 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
9423     VkCommandBuffer                             commandBuffer,
9424     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
9425     const VkSubpassEndInfo*                     pSubpassEndInfo);
9426 
9427 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
9428     VkCommandBuffer                             commandBuffer,
9429     const VkSubpassEndInfo*                     pSubpassEndInfo);
9430 #endif
9431 
9432 
9433 // VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
9434 #define VK_KHR_shared_presentable_image 1
9435 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
9436 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
9437 typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
9438     VkStructureType      sType;
9439     void*                pNext;
9440     VkImageUsageFlags    sharedPresentSupportedUsageFlags;
9441 } VkSharedPresentSurfaceCapabilitiesKHR;
9442 
9443 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
9444 
9445 #ifndef VK_NO_PROTOTYPES
9446 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
9447     VkDevice                                    device,
9448     VkSwapchainKHR                              swapchain);
9449 #endif
9450 
9451 
9452 // VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
9453 #define VK_KHR_external_fence_capabilities 1
9454 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
9455 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
9456 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
9457 
9458 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
9459 
9460 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
9461 
9462 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
9463 
9464 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
9465 
9466 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
9467 
9468 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
9469 
9470 #ifndef VK_NO_PROTOTYPES
9471 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
9472     VkPhysicalDevice                            physicalDevice,
9473     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
9474     VkExternalFenceProperties*                  pExternalFenceProperties);
9475 #endif
9476 
9477 
9478 // VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
9479 #define VK_KHR_external_fence 1
9480 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
9481 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
9482 typedef VkFenceImportFlags VkFenceImportFlagsKHR;
9483 
9484 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
9485 
9486 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
9487 
9488 
9489 
9490 // VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
9491 #define VK_KHR_external_fence_fd 1
9492 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
9493 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
9494 typedef struct VkImportFenceFdInfoKHR {
9495     VkStructureType                      sType;
9496     const void*                          pNext;
9497     VkFence                              fence;
9498     VkFenceImportFlags                   flags;
9499     VkExternalFenceHandleTypeFlagBits    handleType;
9500     int                                  fd;
9501 } VkImportFenceFdInfoKHR;
9502 
9503 typedef struct VkFenceGetFdInfoKHR {
9504     VkStructureType                      sType;
9505     const void*                          pNext;
9506     VkFence                              fence;
9507     VkExternalFenceHandleTypeFlagBits    handleType;
9508 } VkFenceGetFdInfoKHR;
9509 
9510 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
9511 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
9512 
9513 #ifndef VK_NO_PROTOTYPES
9514 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
9515     VkDevice                                    device,
9516     const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
9517 
9518 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
9519     VkDevice                                    device,
9520     const VkFenceGetFdInfoKHR*                  pGetFdInfo,
9521     int*                                        pFd);
9522 #endif
9523 
9524 
9525 // VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
9526 #define VK_KHR_performance_query 1
9527 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
9528 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
9529 
9530 typedef enum VkPerformanceCounterUnitKHR {
9531     VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
9532     VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
9533     VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
9534     VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
9535     VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
9536     VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
9537     VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
9538     VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
9539     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
9540     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
9541     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
9542     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
9543 } VkPerformanceCounterUnitKHR;
9544 
9545 typedef enum VkPerformanceCounterScopeKHR {
9546     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
9547     VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
9548     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
9549   // VK_QUERY_SCOPE_COMMAND_BUFFER_KHR is a deprecated alias
9550     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
9551   // VK_QUERY_SCOPE_RENDER_PASS_KHR is a deprecated alias
9552     VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
9553   // VK_QUERY_SCOPE_COMMAND_KHR is a deprecated alias
9554     VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
9555     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
9556 } VkPerformanceCounterScopeKHR;
9557 
9558 typedef enum VkPerformanceCounterStorageKHR {
9559     VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
9560     VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
9561     VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
9562     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
9563     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
9564     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
9565     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
9566 } VkPerformanceCounterStorageKHR;
9567 
9568 typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
9569     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
9570     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
9571   // VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR is a deprecated alias
9572     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
9573   // VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR is a deprecated alias
9574     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
9575     VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9576 } VkPerformanceCounterDescriptionFlagBitsKHR;
9577 typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
9578 
9579 typedef enum VkAcquireProfilingLockFlagBitsKHR {
9580     VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9581 } VkAcquireProfilingLockFlagBitsKHR;
9582 typedef VkFlags VkAcquireProfilingLockFlagsKHR;
9583 typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
9584     VkStructureType    sType;
9585     void*              pNext;
9586     VkBool32           performanceCounterQueryPools;
9587     VkBool32           performanceCounterMultipleQueryPools;
9588 } VkPhysicalDevicePerformanceQueryFeaturesKHR;
9589 
9590 typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
9591     VkStructureType    sType;
9592     void*              pNext;
9593     VkBool32           allowCommandBufferQueryCopies;
9594 } VkPhysicalDevicePerformanceQueryPropertiesKHR;
9595 
9596 typedef struct VkPerformanceCounterKHR {
9597     VkStructureType                   sType;
9598     void*                             pNext;
9599     VkPerformanceCounterUnitKHR       unit;
9600     VkPerformanceCounterScopeKHR      scope;
9601     VkPerformanceCounterStorageKHR    storage;
9602     uint8_t                           uuid[VK_UUID_SIZE];
9603 } VkPerformanceCounterKHR;
9604 
9605 typedef struct VkPerformanceCounterDescriptionKHR {
9606     VkStructureType                            sType;
9607     void*                                      pNext;
9608     VkPerformanceCounterDescriptionFlagsKHR    flags;
9609     char                                       name[VK_MAX_DESCRIPTION_SIZE];
9610     char                                       category[VK_MAX_DESCRIPTION_SIZE];
9611     char                                       description[VK_MAX_DESCRIPTION_SIZE];
9612 } VkPerformanceCounterDescriptionKHR;
9613 
9614 typedef struct VkQueryPoolPerformanceCreateInfoKHR {
9615     VkStructureType    sType;
9616     const void*        pNext;
9617     uint32_t           queueFamilyIndex;
9618     uint32_t           counterIndexCount;
9619     const uint32_t*    pCounterIndices;
9620 } VkQueryPoolPerformanceCreateInfoKHR;
9621 
9622 typedef union VkPerformanceCounterResultKHR {
9623     int32_t     int32;
9624     int64_t     int64;
9625     uint32_t    uint32;
9626     uint64_t    uint64;
9627     float       float32;
9628     double      float64;
9629 } VkPerformanceCounterResultKHR;
9630 
9631 typedef struct VkAcquireProfilingLockInfoKHR {
9632     VkStructureType                   sType;
9633     const void*                       pNext;
9634     VkAcquireProfilingLockFlagsKHR    flags;
9635     uint64_t                          timeout;
9636 } VkAcquireProfilingLockInfoKHR;
9637 
9638 typedef struct VkPerformanceQuerySubmitInfoKHR {
9639     VkStructureType    sType;
9640     const void*        pNext;
9641     uint32_t           counterPassIndex;
9642 } VkPerformanceQuerySubmitInfoKHR;
9643 
9644 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
9645 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
9646 typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
9647 typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
9648 
9649 #ifndef VK_NO_PROTOTYPES
9650 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
9651     VkPhysicalDevice                            physicalDevice,
9652     uint32_t                                    queueFamilyIndex,
9653     uint32_t*                                   pCounterCount,
9654     VkPerformanceCounterKHR*                    pCounters,
9655     VkPerformanceCounterDescriptionKHR*         pCounterDescriptions);
9656 
9657 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
9658     VkPhysicalDevice                            physicalDevice,
9659     const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
9660     uint32_t*                                   pNumPasses);
9661 
9662 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
9663     VkDevice                                    device,
9664     const VkAcquireProfilingLockInfoKHR*        pInfo);
9665 
9666 VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
9667     VkDevice                                    device);
9668 #endif
9669 
9670 
9671 // VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
9672 #define VK_KHR_maintenance2 1
9673 #define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
9674 #define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
9675 // VK_KHR_MAINTENANCE2_SPEC_VERSION is a deprecated alias
9676 #define VK_KHR_MAINTENANCE2_SPEC_VERSION  VK_KHR_MAINTENANCE_2_SPEC_VERSION
9677 // VK_KHR_MAINTENANCE2_EXTENSION_NAME is a deprecated alias
9678 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
9679 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
9680 
9681 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
9682 
9683 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
9684 
9685 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
9686 
9687 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
9688 
9689 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
9690 
9691 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
9692 
9693 
9694 
9695 // VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
9696 #define VK_KHR_get_surface_capabilities2 1
9697 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
9698 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
9699 typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
9700     VkStructureType    sType;
9701     const void*        pNext;
9702     VkSurfaceKHR       surface;
9703 } VkPhysicalDeviceSurfaceInfo2KHR;
9704 
9705 typedef struct VkSurfaceCapabilities2KHR {
9706     VkStructureType             sType;
9707     void*                       pNext;
9708     VkSurfaceCapabilitiesKHR    surfaceCapabilities;
9709 } VkSurfaceCapabilities2KHR;
9710 
9711 typedef struct VkSurfaceFormat2KHR {
9712     VkStructureType       sType;
9713     void*                 pNext;
9714     VkSurfaceFormatKHR    surfaceFormat;
9715 } VkSurfaceFormat2KHR;
9716 
9717 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
9718 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
9719 
9720 #ifndef VK_NO_PROTOTYPES
9721 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
9722     VkPhysicalDevice                            physicalDevice,
9723     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
9724     VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
9725 
9726 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
9727     VkPhysicalDevice                            physicalDevice,
9728     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
9729     uint32_t*                                   pSurfaceFormatCount,
9730     VkSurfaceFormat2KHR*                        pSurfaceFormats);
9731 #endif
9732 
9733 
9734 // VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
9735 #define VK_KHR_variable_pointers 1
9736 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
9737 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
9738 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
9739 
9740 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
9741 
9742 
9743 
9744 // VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
9745 #define VK_KHR_get_display_properties2 1
9746 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
9747 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
9748 typedef struct VkDisplayProperties2KHR {
9749     VkStructureType           sType;
9750     void*                     pNext;
9751     VkDisplayPropertiesKHR    displayProperties;
9752 } VkDisplayProperties2KHR;
9753 
9754 typedef struct VkDisplayPlaneProperties2KHR {
9755     VkStructureType                sType;
9756     void*                          pNext;
9757     VkDisplayPlanePropertiesKHR    displayPlaneProperties;
9758 } VkDisplayPlaneProperties2KHR;
9759 
9760 typedef struct VkDisplayModeProperties2KHR {
9761     VkStructureType               sType;
9762     void*                         pNext;
9763     VkDisplayModePropertiesKHR    displayModeProperties;
9764 } VkDisplayModeProperties2KHR;
9765 
9766 typedef struct VkDisplayPlaneInfo2KHR {
9767     VkStructureType     sType;
9768     const void*         pNext;
9769     VkDisplayModeKHR    mode;
9770     uint32_t            planeIndex;
9771 } VkDisplayPlaneInfo2KHR;
9772 
9773 typedef struct VkDisplayPlaneCapabilities2KHR {
9774     VkStructureType                  sType;
9775     void*                            pNext;
9776     VkDisplayPlaneCapabilitiesKHR    capabilities;
9777 } VkDisplayPlaneCapabilities2KHR;
9778 
9779 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
9780 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
9781 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
9782 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
9783 
9784 #ifndef VK_NO_PROTOTYPES
9785 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
9786     VkPhysicalDevice                            physicalDevice,
9787     uint32_t*                                   pPropertyCount,
9788     VkDisplayProperties2KHR*                    pProperties);
9789 
9790 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
9791     VkPhysicalDevice                            physicalDevice,
9792     uint32_t*                                   pPropertyCount,
9793     VkDisplayPlaneProperties2KHR*               pProperties);
9794 
9795 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
9796     VkPhysicalDevice                            physicalDevice,
9797     VkDisplayKHR                                display,
9798     uint32_t*                                   pPropertyCount,
9799     VkDisplayModeProperties2KHR*                pProperties);
9800 
9801 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
9802     VkPhysicalDevice                            physicalDevice,
9803     const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
9804     VkDisplayPlaneCapabilities2KHR*             pCapabilities);
9805 #endif
9806 
9807 
9808 // VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
9809 #define VK_KHR_dedicated_allocation 1
9810 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
9811 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
9812 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
9813 
9814 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
9815 
9816 
9817 
9818 // VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
9819 #define VK_KHR_storage_buffer_storage_class 1
9820 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
9821 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
9822 
9823 
9824 // VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
9825 #define VK_KHR_relaxed_block_layout 1
9826 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
9827 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
9828 
9829 
9830 // VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
9831 #define VK_KHR_get_memory_requirements2 1
9832 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
9833 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
9834 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
9835 
9836 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
9837 
9838 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
9839 
9840 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
9841 
9842 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
9843 
9844 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
9845 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
9846 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
9847 
9848 #ifndef VK_NO_PROTOTYPES
9849 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
9850     VkDevice                                    device,
9851     const VkImageMemoryRequirementsInfo2*       pInfo,
9852     VkMemoryRequirements2*                      pMemoryRequirements);
9853 
9854 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
9855     VkDevice                                    device,
9856     const VkBufferMemoryRequirementsInfo2*      pInfo,
9857     VkMemoryRequirements2*                      pMemoryRequirements);
9858 
9859 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
9860     VkDevice                                    device,
9861     const VkImageSparseMemoryRequirementsInfo2* pInfo,
9862     uint32_t*                                   pSparseMemoryRequirementCount,
9863     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
9864 #endif
9865 
9866 
9867 // VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
9868 #define VK_KHR_image_format_list 1
9869 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
9870 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
9871 typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
9872 
9873 
9874 
9875 // VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
9876 #define VK_KHR_sampler_ycbcr_conversion 1
9877 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
9878 
9879 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
9880 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
9881 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
9882 
9883 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
9884 
9885 typedef VkChromaLocation VkChromaLocationKHR;
9886 
9887 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
9888 
9889 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
9890 
9891 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
9892 
9893 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
9894 
9895 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
9896 
9897 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
9898 
9899 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
9900 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
9901 
9902 #ifndef VK_NO_PROTOTYPES
9903 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
9904     VkDevice                                    device,
9905     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
9906     const VkAllocationCallbacks*                pAllocator,
9907     VkSamplerYcbcrConversion*                   pYcbcrConversion);
9908 
9909 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
9910     VkDevice                                    device,
9911     VkSamplerYcbcrConversion                    ycbcrConversion,
9912     const VkAllocationCallbacks*                pAllocator);
9913 #endif
9914 
9915 
9916 // VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
9917 #define VK_KHR_bind_memory2 1
9918 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
9919 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
9920 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
9921 
9922 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
9923 
9924 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
9925 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
9926 
9927 #ifndef VK_NO_PROTOTYPES
9928 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
9929     VkDevice                                    device,
9930     uint32_t                                    bindInfoCount,
9931     const VkBindBufferMemoryInfo*               pBindInfos);
9932 
9933 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
9934     VkDevice                                    device,
9935     uint32_t                                    bindInfoCount,
9936     const VkBindImageMemoryInfo*                pBindInfos);
9937 #endif
9938 
9939 
9940 // VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
9941 #define VK_KHR_maintenance3 1
9942 #define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
9943 #define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
9944 // VK_KHR_MAINTENANCE3_SPEC_VERSION is a deprecated alias
9945 #define VK_KHR_MAINTENANCE3_SPEC_VERSION  VK_KHR_MAINTENANCE_3_SPEC_VERSION
9946 // VK_KHR_MAINTENANCE3_EXTENSION_NAME is a deprecated alias
9947 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
9948 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
9949 
9950 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
9951 
9952 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
9953 
9954 #ifndef VK_NO_PROTOTYPES
9955 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
9956     VkDevice                                    device,
9957     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
9958     VkDescriptorSetLayoutSupport*               pSupport);
9959 #endif
9960 
9961 
9962 // VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
9963 #define VK_KHR_draw_indirect_count 1
9964 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
9965 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
9966 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
9967 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
9968 
9969 #ifndef VK_NO_PROTOTYPES
9970 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
9971     VkCommandBuffer                             commandBuffer,
9972     VkBuffer                                    buffer,
9973     VkDeviceSize                                offset,
9974     VkBuffer                                    countBuffer,
9975     VkDeviceSize                                countBufferOffset,
9976     uint32_t                                    maxDrawCount,
9977     uint32_t                                    stride);
9978 
9979 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
9980     VkCommandBuffer                             commandBuffer,
9981     VkBuffer                                    buffer,
9982     VkDeviceSize                                offset,
9983     VkBuffer                                    countBuffer,
9984     VkDeviceSize                                countBufferOffset,
9985     uint32_t                                    maxDrawCount,
9986     uint32_t                                    stride);
9987 #endif
9988 
9989 
9990 // VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
9991 #define VK_KHR_shader_subgroup_extended_types 1
9992 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
9993 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
9994 typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
9995 
9996 
9997 
9998 // VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
9999 #define VK_KHR_8bit_storage 1
10000 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1
10001 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
10002 typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
10003 
10004 
10005 
10006 // VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
10007 #define VK_KHR_shader_atomic_int64 1
10008 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
10009 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
10010 typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
10011 
10012 
10013 
10014 // VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
10015 #define VK_KHR_shader_clock 1
10016 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION  1
10017 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
10018 typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
10019     VkStructureType    sType;
10020     void*              pNext;
10021     VkBool32           shaderSubgroupClock;
10022     VkBool32           shaderDeviceClock;
10023 } VkPhysicalDeviceShaderClockFeaturesKHR;
10024 
10025 
10026 
10027 // VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
10028 #define VK_KHR_video_decode_h265 1
10029 #include "vk_video/vulkan_video_codec_h265std_decode.h"
10030 #define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
10031 #define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
10032 typedef struct VkVideoDecodeH265ProfileInfoKHR {
10033     VkStructureType           sType;
10034     const void*               pNext;
10035     StdVideoH265ProfileIdc    stdProfileIdc;
10036 } VkVideoDecodeH265ProfileInfoKHR;
10037 
10038 typedef struct VkVideoDecodeH265CapabilitiesKHR {
10039     VkStructureType         sType;
10040     void*                   pNext;
10041     StdVideoH265LevelIdc    maxLevelIdc;
10042 } VkVideoDecodeH265CapabilitiesKHR;
10043 
10044 typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
10045     VkStructureType                            sType;
10046     const void*                                pNext;
10047     uint32_t                                   stdVPSCount;
10048     const StdVideoH265VideoParameterSet*       pStdVPSs;
10049     uint32_t                                   stdSPSCount;
10050     const StdVideoH265SequenceParameterSet*    pStdSPSs;
10051     uint32_t                                   stdPPSCount;
10052     const StdVideoH265PictureParameterSet*     pStdPPSs;
10053 } VkVideoDecodeH265SessionParametersAddInfoKHR;
10054 
10055 typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
10056     VkStructureType                                        sType;
10057     const void*                                            pNext;
10058     uint32_t                                               maxStdVPSCount;
10059     uint32_t                                               maxStdSPSCount;
10060     uint32_t                                               maxStdPPSCount;
10061     const VkVideoDecodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
10062 } VkVideoDecodeH265SessionParametersCreateInfoKHR;
10063 
10064 typedef struct VkVideoDecodeH265PictureInfoKHR {
10065     VkStructureType                         sType;
10066     const void*                             pNext;
10067     const StdVideoDecodeH265PictureInfo*    pStdPictureInfo;
10068     uint32_t                                sliceSegmentCount;
10069     const uint32_t*                         pSliceSegmentOffsets;
10070 } VkVideoDecodeH265PictureInfoKHR;
10071 
10072 typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
10073     VkStructureType                           sType;
10074     const void*                               pNext;
10075     const StdVideoDecodeH265ReferenceInfo*    pStdReferenceInfo;
10076 } VkVideoDecodeH265DpbSlotInfoKHR;
10077 
10078 
10079 
10080 // VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
10081 #define VK_KHR_global_priority 1
10082 #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR   16U
10083 #define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
10084 #define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
10085 
10086 typedef enum VkQueueGlobalPriorityKHR {
10087     VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128,
10088     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256,
10089     VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512,
10090     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024,
10091     VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
10092     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
10093     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
10094     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR,
10095     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 0x7FFFFFFF
10096 } VkQueueGlobalPriorityKHR;
10097 typedef struct VkDeviceQueueGlobalPriorityCreateInfoKHR {
10098     VkStructureType             sType;
10099     const void*                 pNext;
10100     VkQueueGlobalPriorityKHR    globalPriority;
10101 } VkDeviceQueueGlobalPriorityCreateInfoKHR;
10102 
10103 typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR {
10104     VkStructureType    sType;
10105     void*              pNext;
10106     VkBool32           globalPriorityQuery;
10107 } VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
10108 
10109 typedef struct VkQueueFamilyGlobalPriorityPropertiesKHR {
10110     VkStructureType             sType;
10111     void*                       pNext;
10112     uint32_t                    priorityCount;
10113     VkQueueGlobalPriorityKHR    priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR];
10114 } VkQueueFamilyGlobalPriorityPropertiesKHR;
10115 
10116 
10117 
10118 // VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
10119 #define VK_KHR_driver_properties 1
10120 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
10121 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
10122 #define VK_MAX_DRIVER_NAME_SIZE_KHR       VK_MAX_DRIVER_NAME_SIZE
10123 #define VK_MAX_DRIVER_INFO_SIZE_KHR       VK_MAX_DRIVER_INFO_SIZE
10124 typedef VkDriverId VkDriverIdKHR;
10125 
10126 typedef VkConformanceVersion VkConformanceVersionKHR;
10127 
10128 typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
10129 
10130 
10131 
10132 // VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
10133 #define VK_KHR_shader_float_controls 1
10134 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
10135 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
10136 typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
10137 
10138 typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
10139 
10140 
10141 
10142 // VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
10143 #define VK_KHR_depth_stencil_resolve 1
10144 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
10145 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
10146 typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
10147 
10148 typedef VkResolveModeFlags VkResolveModeFlagsKHR;
10149 
10150 typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
10151 
10152 typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
10153 
10154 
10155 
10156 // VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
10157 #define VK_KHR_swapchain_mutable_format 1
10158 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
10159 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
10160 
10161 
10162 // VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
10163 #define VK_KHR_timeline_semaphore 1
10164 #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
10165 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
10166 typedef VkSemaphoreType VkSemaphoreTypeKHR;
10167 
10168 typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
10169 
10170 typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
10171 
10172 typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
10173 
10174 typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
10175 
10176 typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
10177 
10178 typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
10179 
10180 typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
10181 
10182 typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
10183 
10184 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
10185 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
10186 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
10187 
10188 #ifndef VK_NO_PROTOTYPES
10189 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
10190     VkDevice                                    device,
10191     VkSemaphore                                 semaphore,
10192     uint64_t*                                   pValue);
10193 
10194 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
10195     VkDevice                                    device,
10196     const VkSemaphoreWaitInfo*                  pWaitInfo,
10197     uint64_t                                    timeout);
10198 
10199 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
10200     VkDevice                                    device,
10201     const VkSemaphoreSignalInfo*                pSignalInfo);
10202 #endif
10203 
10204 
10205 // VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
10206 #define VK_KHR_vulkan_memory_model 1
10207 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
10208 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
10209 typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
10210 
10211 
10212 
10213 // VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
10214 #define VK_KHR_shader_terminate_invocation 1
10215 #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
10216 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
10217 typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
10218 
10219 
10220 
10221 // VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
10222 #define VK_KHR_fragment_shading_rate 1
10223 #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
10224 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
10225 
10226 typedef enum VkFragmentShadingRateCombinerOpKHR {
10227     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
10228     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
10229     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
10230     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
10231     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
10232     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
10233 } VkFragmentShadingRateCombinerOpKHR;
10234 typedef struct VkFragmentShadingRateAttachmentInfoKHR {
10235     VkStructureType                  sType;
10236     const void*                      pNext;
10237     const VkAttachmentReference2*    pFragmentShadingRateAttachment;
10238     VkExtent2D                       shadingRateAttachmentTexelSize;
10239 } VkFragmentShadingRateAttachmentInfoKHR;
10240 
10241 typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
10242     VkStructureType                       sType;
10243     const void*                           pNext;
10244     VkExtent2D                            fragmentSize;
10245     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
10246 } VkPipelineFragmentShadingRateStateCreateInfoKHR;
10247 
10248 typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
10249     VkStructureType    sType;
10250     void*              pNext;
10251     VkBool32           pipelineFragmentShadingRate;
10252     VkBool32           primitiveFragmentShadingRate;
10253     VkBool32           attachmentFragmentShadingRate;
10254 } VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
10255 
10256 typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
10257     VkStructureType          sType;
10258     void*                    pNext;
10259     VkExtent2D               minFragmentShadingRateAttachmentTexelSize;
10260     VkExtent2D               maxFragmentShadingRateAttachmentTexelSize;
10261     uint32_t                 maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
10262     VkBool32                 primitiveFragmentShadingRateWithMultipleViewports;
10263     VkBool32                 layeredShadingRateAttachments;
10264     VkBool32                 fragmentShadingRateNonTrivialCombinerOps;
10265     VkExtent2D               maxFragmentSize;
10266     uint32_t                 maxFragmentSizeAspectRatio;
10267     uint32_t                 maxFragmentShadingRateCoverageSamples;
10268     VkSampleCountFlagBits    maxFragmentShadingRateRasterizationSamples;
10269     VkBool32                 fragmentShadingRateWithShaderDepthStencilWrites;
10270     VkBool32                 fragmentShadingRateWithSampleMask;
10271     VkBool32                 fragmentShadingRateWithShaderSampleMask;
10272     VkBool32                 fragmentShadingRateWithConservativeRasterization;
10273     VkBool32                 fragmentShadingRateWithFragmentShaderInterlock;
10274     VkBool32                 fragmentShadingRateWithCustomSampleLocations;
10275     VkBool32                 fragmentShadingRateStrictMultiplyCombiner;
10276 } VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
10277 
10278 typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
10279     VkStructureType       sType;
10280     void*                 pNext;
10281     VkSampleCountFlags    sampleCounts;
10282     VkExtent2D            fragmentSize;
10283 } VkPhysicalDeviceFragmentShadingRateKHR;
10284 
10285 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
10286 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer           commandBuffer, const VkExtent2D*                           pFragmentSize, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
10287 
10288 #ifndef VK_NO_PROTOTYPES
10289 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
10290     VkPhysicalDevice                            physicalDevice,
10291     uint32_t*                                   pFragmentShadingRateCount,
10292     VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates);
10293 
10294 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
10295     VkCommandBuffer                             commandBuffer,
10296     const VkExtent2D*                           pFragmentSize,
10297     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
10298 #endif
10299 
10300 
10301 // VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
10302 #define VK_KHR_dynamic_rendering_local_read 1
10303 #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
10304 #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
10305 typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR {
10306     VkStructureType    sType;
10307     void*              pNext;
10308     VkBool32           dynamicRenderingLocalRead;
10309 } VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
10310 
10311 typedef struct VkRenderingAttachmentLocationInfoKHR {
10312     VkStructureType    sType;
10313     const void*        pNext;
10314     uint32_t           colorAttachmentCount;
10315     const uint32_t*    pColorAttachmentLocations;
10316 } VkRenderingAttachmentLocationInfoKHR;
10317 
10318 typedef struct VkRenderingInputAttachmentIndexInfoKHR {
10319     VkStructureType    sType;
10320     const void*        pNext;
10321     uint32_t           colorAttachmentCount;
10322     const uint32_t*    pColorAttachmentInputIndices;
10323     const uint32_t*    pDepthInputAttachmentIndex;
10324     const uint32_t*    pStencilInputAttachmentIndex;
10325 } VkRenderingInputAttachmentIndexInfoKHR;
10326 
10327 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfoKHR* pLocationInfo);
10328 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfoKHR* pInputAttachmentIndexInfo);
10329 
10330 #ifndef VK_NO_PROTOTYPES
10331 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
10332     VkCommandBuffer                             commandBuffer,
10333     const VkRenderingAttachmentLocationInfoKHR* pLocationInfo);
10334 
10335 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
10336     VkCommandBuffer                             commandBuffer,
10337     const VkRenderingInputAttachmentIndexInfoKHR* pInputAttachmentIndexInfo);
10338 #endif
10339 
10340 
10341 // VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
10342 #define VK_KHR_shader_quad_control 1
10343 #define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
10344 #define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
10345 typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
10346     VkStructureType    sType;
10347     void*              pNext;
10348     VkBool32           shaderQuadControl;
10349 } VkPhysicalDeviceShaderQuadControlFeaturesKHR;
10350 
10351 
10352 
10353 // VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
10354 #define VK_KHR_spirv_1_4 1
10355 #define VK_KHR_SPIRV_1_4_SPEC_VERSION     1
10356 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME   "VK_KHR_spirv_1_4"
10357 
10358 
10359 // VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
10360 #define VK_KHR_surface_protected_capabilities 1
10361 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
10362 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
10363 typedef struct VkSurfaceProtectedCapabilitiesKHR {
10364     VkStructureType    sType;
10365     const void*        pNext;
10366     VkBool32           supportsProtected;
10367 } VkSurfaceProtectedCapabilitiesKHR;
10368 
10369 
10370 
10371 // VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
10372 #define VK_KHR_separate_depth_stencil_layouts 1
10373 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
10374 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
10375 typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
10376 
10377 typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
10378 
10379 typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
10380 
10381 
10382 
10383 // VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
10384 #define VK_KHR_present_wait 1
10385 #define VK_KHR_PRESENT_WAIT_SPEC_VERSION  1
10386 #define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
10387 typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
10388     VkStructureType    sType;
10389     void*              pNext;
10390     VkBool32           presentWait;
10391 } VkPhysicalDevicePresentWaitFeaturesKHR;
10392 
10393 typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
10394 
10395 #ifndef VK_NO_PROTOTYPES
10396 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
10397     VkDevice                                    device,
10398     VkSwapchainKHR                              swapchain,
10399     uint64_t                                    presentId,
10400     uint64_t                                    timeout);
10401 #endif
10402 
10403 
10404 // VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
10405 #define VK_KHR_uniform_buffer_standard_layout 1
10406 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
10407 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
10408 typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
10409 
10410 
10411 
10412 // VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
10413 #define VK_KHR_buffer_device_address 1
10414 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
10415 #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
10416 typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
10417 
10418 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
10419 
10420 typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
10421 
10422 typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
10423 
10424 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
10425 
10426 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
10427 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
10428 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
10429 
10430 #ifndef VK_NO_PROTOTYPES
10431 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
10432     VkDevice                                    device,
10433     const VkBufferDeviceAddressInfo*            pInfo);
10434 
10435 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
10436     VkDevice                                    device,
10437     const VkBufferDeviceAddressInfo*            pInfo);
10438 
10439 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
10440     VkDevice                                    device,
10441     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
10442 #endif
10443 
10444 
10445 // VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
10446 #define VK_KHR_deferred_host_operations 1
10447 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
10448 #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
10449 #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
10450 typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
10451 typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
10452 typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
10453 typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
10454 typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
10455 
10456 #ifndef VK_NO_PROTOTYPES
10457 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
10458     VkDevice                                    device,
10459     const VkAllocationCallbacks*                pAllocator,
10460     VkDeferredOperationKHR*                     pDeferredOperation);
10461 
10462 VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
10463     VkDevice                                    device,
10464     VkDeferredOperationKHR                      operation,
10465     const VkAllocationCallbacks*                pAllocator);
10466 
10467 VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
10468     VkDevice                                    device,
10469     VkDeferredOperationKHR                      operation);
10470 
10471 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
10472     VkDevice                                    device,
10473     VkDeferredOperationKHR                      operation);
10474 
10475 VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
10476     VkDevice                                    device,
10477     VkDeferredOperationKHR                      operation);
10478 #endif
10479 
10480 
10481 // VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
10482 #define VK_KHR_pipeline_executable_properties 1
10483 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
10484 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
10485 
10486 typedef enum VkPipelineExecutableStatisticFormatKHR {
10487     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
10488     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
10489     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
10490     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
10491     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
10492 } VkPipelineExecutableStatisticFormatKHR;
10493 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
10494     VkStructureType    sType;
10495     void*              pNext;
10496     VkBool32           pipelineExecutableInfo;
10497 } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
10498 
10499 typedef struct VkPipelineInfoKHR {
10500     VkStructureType    sType;
10501     const void*        pNext;
10502     VkPipeline         pipeline;
10503 } VkPipelineInfoKHR;
10504 
10505 typedef struct VkPipelineExecutablePropertiesKHR {
10506     VkStructureType       sType;
10507     void*                 pNext;
10508     VkShaderStageFlags    stages;
10509     char                  name[VK_MAX_DESCRIPTION_SIZE];
10510     char                  description[VK_MAX_DESCRIPTION_SIZE];
10511     uint32_t              subgroupSize;
10512 } VkPipelineExecutablePropertiesKHR;
10513 
10514 typedef struct VkPipelineExecutableInfoKHR {
10515     VkStructureType    sType;
10516     const void*        pNext;
10517     VkPipeline         pipeline;
10518     uint32_t           executableIndex;
10519 } VkPipelineExecutableInfoKHR;
10520 
10521 typedef union VkPipelineExecutableStatisticValueKHR {
10522     VkBool32    b32;
10523     int64_t     i64;
10524     uint64_t    u64;
10525     double      f64;
10526 } VkPipelineExecutableStatisticValueKHR;
10527 
10528 typedef struct VkPipelineExecutableStatisticKHR {
10529     VkStructureType                           sType;
10530     void*                                     pNext;
10531     char                                      name[VK_MAX_DESCRIPTION_SIZE];
10532     char                                      description[VK_MAX_DESCRIPTION_SIZE];
10533     VkPipelineExecutableStatisticFormatKHR    format;
10534     VkPipelineExecutableStatisticValueKHR     value;
10535 } VkPipelineExecutableStatisticKHR;
10536 
10537 typedef struct VkPipelineExecutableInternalRepresentationKHR {
10538     VkStructureType    sType;
10539     void*              pNext;
10540     char               name[VK_MAX_DESCRIPTION_SIZE];
10541     char               description[VK_MAX_DESCRIPTION_SIZE];
10542     VkBool32           isText;
10543     size_t             dataSize;
10544     void*              pData;
10545 } VkPipelineExecutableInternalRepresentationKHR;
10546 
10547 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice                        device, const VkPipelineInfoKHR*        pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
10548 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
10549 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
10550 
10551 #ifndef VK_NO_PROTOTYPES
10552 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
10553     VkDevice                                    device,
10554     const VkPipelineInfoKHR*                    pPipelineInfo,
10555     uint32_t*                                   pExecutableCount,
10556     VkPipelineExecutablePropertiesKHR*          pProperties);
10557 
10558 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
10559     VkDevice                                    device,
10560     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
10561     uint32_t*                                   pStatisticCount,
10562     VkPipelineExecutableStatisticKHR*           pStatistics);
10563 
10564 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
10565     VkDevice                                    device,
10566     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
10567     uint32_t*                                   pInternalRepresentationCount,
10568     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
10569 #endif
10570 
10571 
10572 // VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
10573 #define VK_KHR_map_memory2 1
10574 #define VK_KHR_MAP_MEMORY_2_SPEC_VERSION  1
10575 #define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
10576 
10577 typedef enum VkMemoryUnmapFlagBitsKHR {
10578     VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
10579     VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10580 } VkMemoryUnmapFlagBitsKHR;
10581 typedef VkFlags VkMemoryUnmapFlagsKHR;
10582 typedef struct VkMemoryMapInfoKHR {
10583     VkStructureType     sType;
10584     const void*         pNext;
10585     VkMemoryMapFlags    flags;
10586     VkDeviceMemory      memory;
10587     VkDeviceSize        offset;
10588     VkDeviceSize        size;
10589 } VkMemoryMapInfoKHR;
10590 
10591 typedef struct VkMemoryUnmapInfoKHR {
10592     VkStructureType          sType;
10593     const void*              pNext;
10594     VkMemoryUnmapFlagsKHR    flags;
10595     VkDeviceMemory           memory;
10596 } VkMemoryUnmapInfoKHR;
10597 
10598 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfoKHR* pMemoryMapInfo, void** ppData);
10599 typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo);
10600 
10601 #ifndef VK_NO_PROTOTYPES
10602 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
10603     VkDevice                                    device,
10604     const VkMemoryMapInfoKHR*                   pMemoryMapInfo,
10605     void**                                      ppData);
10606 
10607 VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
10608     VkDevice                                    device,
10609     const VkMemoryUnmapInfoKHR*                 pMemoryUnmapInfo);
10610 #endif
10611 
10612 
10613 // VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
10614 #define VK_KHR_shader_integer_dot_product 1
10615 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
10616 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
10617 typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
10618 
10619 typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
10620 
10621 
10622 
10623 // VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
10624 #define VK_KHR_pipeline_library 1
10625 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
10626 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
10627 typedef struct VkPipelineLibraryCreateInfoKHR {
10628     VkStructureType      sType;
10629     const void*          pNext;
10630     uint32_t             libraryCount;
10631     const VkPipeline*    pLibraries;
10632 } VkPipelineLibraryCreateInfoKHR;
10633 
10634 
10635 
10636 // VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
10637 #define VK_KHR_shader_non_semantic_info 1
10638 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
10639 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
10640 
10641 
10642 // VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
10643 #define VK_KHR_present_id 1
10644 #define VK_KHR_PRESENT_ID_SPEC_VERSION    1
10645 #define VK_KHR_PRESENT_ID_EXTENSION_NAME  "VK_KHR_present_id"
10646 typedef struct VkPresentIdKHR {
10647     VkStructureType    sType;
10648     const void*        pNext;
10649     uint32_t           swapchainCount;
10650     const uint64_t*    pPresentIds;
10651 } VkPresentIdKHR;
10652 
10653 typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
10654     VkStructureType    sType;
10655     void*              pNext;
10656     VkBool32           presentId;
10657 } VkPhysicalDevicePresentIdFeaturesKHR;
10658 
10659 
10660 
10661 // VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
10662 #define VK_KHR_video_encode_queue 1
10663 #define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
10664 #define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
10665 
10666 typedef enum VkVideoEncodeTuningModeKHR {
10667     VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
10668     VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
10669     VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
10670     VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
10671     VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
10672     VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
10673 } VkVideoEncodeTuningModeKHR;
10674 typedef VkFlags VkVideoEncodeFlagsKHR;
10675 
10676 typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
10677     VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
10678     VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
10679     VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10680 } VkVideoEncodeCapabilityFlagBitsKHR;
10681 typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
10682 
10683 typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
10684     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
10685     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
10686     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
10687     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
10688     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10689 } VkVideoEncodeRateControlModeFlagBitsKHR;
10690 typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
10691 
10692 typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
10693     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
10694     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
10695     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
10696     VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10697 } VkVideoEncodeFeedbackFlagBitsKHR;
10698 typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
10699 
10700 typedef enum VkVideoEncodeUsageFlagBitsKHR {
10701     VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
10702     VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
10703     VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
10704     VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
10705     VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
10706     VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10707 } VkVideoEncodeUsageFlagBitsKHR;
10708 typedef VkFlags VkVideoEncodeUsageFlagsKHR;
10709 
10710 typedef enum VkVideoEncodeContentFlagBitsKHR {
10711     VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
10712     VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
10713     VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
10714     VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
10715     VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10716 } VkVideoEncodeContentFlagBitsKHR;
10717 typedef VkFlags VkVideoEncodeContentFlagsKHR;
10718 typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
10719 typedef struct VkVideoEncodeInfoKHR {
10720     VkStructureType                       sType;
10721     const void*                           pNext;
10722     VkVideoEncodeFlagsKHR                 flags;
10723     VkBuffer                              dstBuffer;
10724     VkDeviceSize                          dstBufferOffset;
10725     VkDeviceSize                          dstBufferRange;
10726     VkVideoPictureResourceInfoKHR         srcPictureResource;
10727     const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
10728     uint32_t                              referenceSlotCount;
10729     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
10730     uint32_t                              precedingExternallyEncodedBytes;
10731 } VkVideoEncodeInfoKHR;
10732 
10733 typedef struct VkVideoEncodeCapabilitiesKHR {
10734     VkStructureType                         sType;
10735     void*                                   pNext;
10736     VkVideoEncodeCapabilityFlagsKHR         flags;
10737     VkVideoEncodeRateControlModeFlagsKHR    rateControlModes;
10738     uint32_t                                maxRateControlLayers;
10739     uint64_t                                maxBitrate;
10740     uint32_t                                maxQualityLevels;
10741     VkExtent2D                              encodeInputPictureGranularity;
10742     VkVideoEncodeFeedbackFlagsKHR           supportedEncodeFeedbackFlags;
10743 } VkVideoEncodeCapabilitiesKHR;
10744 
10745 typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
10746     VkStructureType                  sType;
10747     const void*                      pNext;
10748     VkVideoEncodeFeedbackFlagsKHR    encodeFeedbackFlags;
10749 } VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
10750 
10751 typedef struct VkVideoEncodeUsageInfoKHR {
10752     VkStructureType                 sType;
10753     const void*                     pNext;
10754     VkVideoEncodeUsageFlagsKHR      videoUsageHints;
10755     VkVideoEncodeContentFlagsKHR    videoContentHints;
10756     VkVideoEncodeTuningModeKHR      tuningMode;
10757 } VkVideoEncodeUsageInfoKHR;
10758 
10759 typedef struct VkVideoEncodeRateControlLayerInfoKHR {
10760     VkStructureType    sType;
10761     const void*        pNext;
10762     uint64_t           averageBitrate;
10763     uint64_t           maxBitrate;
10764     uint32_t           frameRateNumerator;
10765     uint32_t           frameRateDenominator;
10766 } VkVideoEncodeRateControlLayerInfoKHR;
10767 
10768 typedef struct VkVideoEncodeRateControlInfoKHR {
10769     VkStructureType                                sType;
10770     const void*                                    pNext;
10771     VkVideoEncodeRateControlFlagsKHR               flags;
10772     VkVideoEncodeRateControlModeFlagBitsKHR        rateControlMode;
10773     uint32_t                                       layerCount;
10774     const VkVideoEncodeRateControlLayerInfoKHR*    pLayers;
10775     uint32_t                                       virtualBufferSizeInMs;
10776     uint32_t                                       initialVirtualBufferSizeInMs;
10777 } VkVideoEncodeRateControlInfoKHR;
10778 
10779 typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
10780     VkStructureType                 sType;
10781     const void*                     pNext;
10782     const VkVideoProfileInfoKHR*    pVideoProfile;
10783     uint32_t                        qualityLevel;
10784 } VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
10785 
10786 typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
10787     VkStructureType                            sType;
10788     void*                                      pNext;
10789     VkVideoEncodeRateControlModeFlagBitsKHR    preferredRateControlMode;
10790     uint32_t                                   preferredRateControlLayerCount;
10791 } VkVideoEncodeQualityLevelPropertiesKHR;
10792 
10793 typedef struct VkVideoEncodeQualityLevelInfoKHR {
10794     VkStructureType    sType;
10795     const void*        pNext;
10796     uint32_t           qualityLevel;
10797 } VkVideoEncodeQualityLevelInfoKHR;
10798 
10799 typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
10800     VkStructureType                sType;
10801     const void*                    pNext;
10802     VkVideoSessionParametersKHR    videoSessionParameters;
10803 } VkVideoEncodeSessionParametersGetInfoKHR;
10804 
10805 typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
10806     VkStructureType    sType;
10807     void*              pNext;
10808     VkBool32           hasOverrides;
10809 } VkVideoEncodeSessionParametersFeedbackInfoKHR;
10810 
10811 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
10812 typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
10813 typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
10814 
10815 #ifndef VK_NO_PROTOTYPES
10816 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
10817     VkPhysicalDevice                            physicalDevice,
10818     const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
10819     VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties);
10820 
10821 VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
10822     VkDevice                                    device,
10823     const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
10824     VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
10825     size_t*                                     pDataSize,
10826     void*                                       pData);
10827 
10828 VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
10829     VkCommandBuffer                             commandBuffer,
10830     const VkVideoEncodeInfoKHR*                 pEncodeInfo);
10831 #endif
10832 
10833 
10834 // VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
10835 #define VK_KHR_synchronization2 1
10836 #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
10837 #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
10838 typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
10839 
10840 typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
10841 
10842 typedef VkAccessFlags2 VkAccessFlags2KHR;
10843 
10844 typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
10845 
10846 typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
10847 
10848 typedef VkSubmitFlags VkSubmitFlagsKHR;
10849 
10850 typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
10851 
10852 typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
10853 
10854 typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
10855 
10856 typedef VkDependencyInfo VkDependencyInfoKHR;
10857 
10858 typedef VkSubmitInfo2 VkSubmitInfo2KHR;
10859 
10860 typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
10861 
10862 typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
10863 
10864 typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
10865 
10866 typedef struct VkQueueFamilyCheckpointProperties2NV {
10867     VkStructureType          sType;
10868     void*                    pNext;
10869     VkPipelineStageFlags2    checkpointExecutionStageMask;
10870 } VkQueueFamilyCheckpointProperties2NV;
10871 
10872 typedef struct VkCheckpointData2NV {
10873     VkStructureType          sType;
10874     void*                    pNext;
10875     VkPipelineStageFlags2    stage;
10876     void*                    pCheckpointMarker;
10877 } VkCheckpointData2NV;
10878 
10879 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
10880 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
10881 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
10882 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
10883 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
10884 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
10885 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkBuffer                                            dstBuffer, VkDeviceSize                                        dstOffset, uint32_t                                            marker);
10886 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
10887 
10888 #ifndef VK_NO_PROTOTYPES
10889 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
10890     VkCommandBuffer                             commandBuffer,
10891     VkEvent                                     event,
10892     const VkDependencyInfo*                     pDependencyInfo);
10893 
10894 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
10895     VkCommandBuffer                             commandBuffer,
10896     VkEvent                                     event,
10897     VkPipelineStageFlags2                       stageMask);
10898 
10899 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
10900     VkCommandBuffer                             commandBuffer,
10901     uint32_t                                    eventCount,
10902     const VkEvent*                              pEvents,
10903     const VkDependencyInfo*                     pDependencyInfos);
10904 
10905 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
10906     VkCommandBuffer                             commandBuffer,
10907     const VkDependencyInfo*                     pDependencyInfo);
10908 
10909 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
10910     VkCommandBuffer                             commandBuffer,
10911     VkPipelineStageFlags2                       stage,
10912     VkQueryPool                                 queryPool,
10913     uint32_t                                    query);
10914 
10915 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
10916     VkQueue                                     queue,
10917     uint32_t                                    submitCount,
10918     const VkSubmitInfo2*                        pSubmits,
10919     VkFence                                     fence);
10920 
10921 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
10922     VkCommandBuffer                             commandBuffer,
10923     VkPipelineStageFlags2                       stage,
10924     VkBuffer                                    dstBuffer,
10925     VkDeviceSize                                dstOffset,
10926     uint32_t                                    marker);
10927 
10928 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
10929     VkQueue                                     queue,
10930     uint32_t*                                   pCheckpointDataCount,
10931     VkCheckpointData2NV*                        pCheckpointData);
10932 #endif
10933 
10934 
10935 // VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
10936 #define VK_KHR_fragment_shader_barycentric 1
10937 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
10938 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
10939 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
10940     VkStructureType    sType;
10941     void*              pNext;
10942     VkBool32           fragmentShaderBarycentric;
10943 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
10944 
10945 typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
10946     VkStructureType    sType;
10947     void*              pNext;
10948     VkBool32           triStripVertexOrderIndependentOfProvokingVertex;
10949 } VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
10950 
10951 
10952 
10953 // VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
10954 #define VK_KHR_shader_subgroup_uniform_control_flow 1
10955 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
10956 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
10957 typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
10958     VkStructureType    sType;
10959     void*              pNext;
10960     VkBool32           shaderSubgroupUniformControlFlow;
10961 } VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
10962 
10963 
10964 
10965 // VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
10966 #define VK_KHR_zero_initialize_workgroup_memory 1
10967 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
10968 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
10969 typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
10970 
10971 
10972 
10973 // VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
10974 #define VK_KHR_workgroup_memory_explicit_layout 1
10975 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
10976 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
10977 typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
10978     VkStructureType    sType;
10979     void*              pNext;
10980     VkBool32           workgroupMemoryExplicitLayout;
10981     VkBool32           workgroupMemoryExplicitLayoutScalarBlockLayout;
10982     VkBool32           workgroupMemoryExplicitLayout8BitAccess;
10983     VkBool32           workgroupMemoryExplicitLayout16BitAccess;
10984 } VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
10985 
10986 
10987 
10988 // VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
10989 #define VK_KHR_copy_commands2 1
10990 #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
10991 #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
10992 typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
10993 
10994 typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
10995 
10996 typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
10997 
10998 typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
10999 
11000 typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
11001 
11002 typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
11003 
11004 typedef VkBufferCopy2 VkBufferCopy2KHR;
11005 
11006 typedef VkImageCopy2 VkImageCopy2KHR;
11007 
11008 typedef VkImageBlit2 VkImageBlit2KHR;
11009 
11010 typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
11011 
11012 typedef VkImageResolve2 VkImageResolve2KHR;
11013 
11014 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
11015 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
11016 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
11017 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
11018 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
11019 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
11020 
11021 #ifndef VK_NO_PROTOTYPES
11022 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
11023     VkCommandBuffer                             commandBuffer,
11024     const VkCopyBufferInfo2*                    pCopyBufferInfo);
11025 
11026 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
11027     VkCommandBuffer                             commandBuffer,
11028     const VkCopyImageInfo2*                     pCopyImageInfo);
11029 
11030 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
11031     VkCommandBuffer                             commandBuffer,
11032     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
11033 
11034 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
11035     VkCommandBuffer                             commandBuffer,
11036     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
11037 
11038 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
11039     VkCommandBuffer                             commandBuffer,
11040     const VkBlitImageInfo2*                     pBlitImageInfo);
11041 
11042 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
11043     VkCommandBuffer                             commandBuffer,
11044     const VkResolveImageInfo2*                  pResolveImageInfo);
11045 #endif
11046 
11047 
11048 // VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
11049 #define VK_KHR_format_feature_flags2 1
11050 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
11051 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
11052 typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
11053 
11054 typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
11055 
11056 typedef VkFormatProperties3 VkFormatProperties3KHR;
11057 
11058 
11059 
11060 // VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
11061 #define VK_KHR_ray_tracing_maintenance1 1
11062 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
11063 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
11064 typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
11065     VkStructureType    sType;
11066     void*              pNext;
11067     VkBool32           rayTracingMaintenance1;
11068     VkBool32           rayTracingPipelineTraceRaysIndirect2;
11069 } VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
11070 
11071 typedef struct VkTraceRaysIndirectCommand2KHR {
11072     VkDeviceAddress    raygenShaderRecordAddress;
11073     VkDeviceSize       raygenShaderRecordSize;
11074     VkDeviceAddress    missShaderBindingTableAddress;
11075     VkDeviceSize       missShaderBindingTableSize;
11076     VkDeviceSize       missShaderBindingTableStride;
11077     VkDeviceAddress    hitShaderBindingTableAddress;
11078     VkDeviceSize       hitShaderBindingTableSize;
11079     VkDeviceSize       hitShaderBindingTableStride;
11080     VkDeviceAddress    callableShaderBindingTableAddress;
11081     VkDeviceSize       callableShaderBindingTableSize;
11082     VkDeviceSize       callableShaderBindingTableStride;
11083     uint32_t           width;
11084     uint32_t           height;
11085     uint32_t           depth;
11086 } VkTraceRaysIndirectCommand2KHR;
11087 
11088 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
11089 
11090 #ifndef VK_NO_PROTOTYPES
11091 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
11092     VkCommandBuffer                             commandBuffer,
11093     VkDeviceAddress                             indirectDeviceAddress);
11094 #endif
11095 
11096 
11097 // VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
11098 #define VK_KHR_portability_enumeration 1
11099 #define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
11100 #define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
11101 
11102 
11103 // VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
11104 #define VK_KHR_maintenance4 1
11105 #define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
11106 #define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
11107 typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
11108 
11109 typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
11110 
11111 typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
11112 
11113 typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
11114 
11115 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11116 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11117 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11118 
11119 #ifndef VK_NO_PROTOTYPES
11120 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
11121     VkDevice                                    device,
11122     const VkDeviceBufferMemoryRequirements*     pInfo,
11123     VkMemoryRequirements2*                      pMemoryRequirements);
11124 
11125 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
11126     VkDevice                                    device,
11127     const VkDeviceImageMemoryRequirements*      pInfo,
11128     VkMemoryRequirements2*                      pMemoryRequirements);
11129 
11130 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
11131     VkDevice                                    device,
11132     const VkDeviceImageMemoryRequirements*      pInfo,
11133     uint32_t*                                   pSparseMemoryRequirementCount,
11134     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
11135 #endif
11136 
11137 
11138 // VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
11139 #define VK_KHR_shader_subgroup_rotate 1
11140 #define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
11141 #define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
11142 typedef struct VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR {
11143     VkStructureType    sType;
11144     void*              pNext;
11145     VkBool32           shaderSubgroupRotate;
11146     VkBool32           shaderSubgroupRotateClustered;
11147 } VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
11148 
11149 
11150 
11151 // VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
11152 #define VK_KHR_shader_maximal_reconvergence 1
11153 #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
11154 #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
11155 typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
11156     VkStructureType    sType;
11157     void*              pNext;
11158     VkBool32           shaderMaximalReconvergence;
11159 } VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
11160 
11161 
11162 
11163 // VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
11164 #define VK_KHR_maintenance5 1
11165 #define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
11166 #define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
11167 typedef VkFlags64 VkPipelineCreateFlags2KHR;
11168 
11169 // Flag bits for VkPipelineCreateFlagBits2KHR
11170 typedef VkFlags64 VkPipelineCreateFlagBits2KHR;
11171 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
11172 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
11173 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
11174 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL;
11175 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
11176 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
11177 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
11178 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
11179 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
11180 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
11181 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
11182 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
11183 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
11184 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
11185 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
11186 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
11187 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
11188 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
11189 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
11190 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
11191 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
11192 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
11193 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
11194 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
11195 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
11196 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
11197 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
11198 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
11199 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
11200 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
11201 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
11202 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
11203 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
11204 
11205 typedef VkFlags64 VkBufferUsageFlags2KHR;
11206 
11207 // Flag bits for VkBufferUsageFlagBits2KHR
11208 typedef VkFlags64 VkBufferUsageFlagBits2KHR;
11209 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
11210 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
11211 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
11212 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
11213 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
11214 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
11215 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
11216 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
11217 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
11218 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
11219 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
11220 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
11221 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
11222 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
11223 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
11224 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
11225 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
11226 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
11227 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
11228 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
11229 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
11230 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
11231 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
11232 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
11233 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
11234 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
11235 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
11236 
11237 typedef struct VkPhysicalDeviceMaintenance5FeaturesKHR {
11238     VkStructureType    sType;
11239     void*              pNext;
11240     VkBool32           maintenance5;
11241 } VkPhysicalDeviceMaintenance5FeaturesKHR;
11242 
11243 typedef struct VkPhysicalDeviceMaintenance5PropertiesKHR {
11244     VkStructureType    sType;
11245     void*              pNext;
11246     VkBool32           earlyFragmentMultisampleCoverageAfterSampleCounting;
11247     VkBool32           earlyFragmentSampleMaskTestBeforeSampleCounting;
11248     VkBool32           depthStencilSwizzleOneSupport;
11249     VkBool32           polygonModePointSize;
11250     VkBool32           nonStrictSinglePixelWideLinesUseParallelogram;
11251     VkBool32           nonStrictWideLinesUseParallelogram;
11252 } VkPhysicalDeviceMaintenance5PropertiesKHR;
11253 
11254 typedef struct VkRenderingAreaInfoKHR {
11255     VkStructureType    sType;
11256     const void*        pNext;
11257     uint32_t           viewMask;
11258     uint32_t           colorAttachmentCount;
11259     const VkFormat*    pColorAttachmentFormats;
11260     VkFormat           depthAttachmentFormat;
11261     VkFormat           stencilAttachmentFormat;
11262 } VkRenderingAreaInfoKHR;
11263 
11264 typedef struct VkImageSubresource2KHR {
11265     VkStructureType       sType;
11266     void*                 pNext;
11267     VkImageSubresource    imageSubresource;
11268 } VkImageSubresource2KHR;
11269 
11270 typedef struct VkDeviceImageSubresourceInfoKHR {
11271     VkStructureType                  sType;
11272     const void*                      pNext;
11273     const VkImageCreateInfo*         pCreateInfo;
11274     const VkImageSubresource2KHR*    pSubresource;
11275 } VkDeviceImageSubresourceInfoKHR;
11276 
11277 typedef struct VkSubresourceLayout2KHR {
11278     VkStructureType        sType;
11279     void*                  pNext;
11280     VkSubresourceLayout    subresourceLayout;
11281 } VkSubresourceLayout2KHR;
11282 
11283 typedef struct VkPipelineCreateFlags2CreateInfoKHR {
11284     VkStructureType              sType;
11285     const void*                  pNext;
11286     VkPipelineCreateFlags2KHR    flags;
11287 } VkPipelineCreateFlags2CreateInfoKHR;
11288 
11289 typedef struct VkBufferUsageFlags2CreateInfoKHR {
11290     VkStructureType           sType;
11291     const void*               pNext;
11292     VkBufferUsageFlags2KHR    usage;
11293 } VkBufferUsageFlags2CreateInfoKHR;
11294 
11295 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
11296 typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfoKHR* pRenderingAreaInfo, VkExtent2D* pGranularity);
11297 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfoKHR* pInfo, VkSubresourceLayout2KHR* pLayout);
11298 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout);
11299 
11300 #ifndef VK_NO_PROTOTYPES
11301 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
11302     VkCommandBuffer                             commandBuffer,
11303     VkBuffer                                    buffer,
11304     VkDeviceSize                                offset,
11305     VkDeviceSize                                size,
11306     VkIndexType                                 indexType);
11307 
11308 VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
11309     VkDevice                                    device,
11310     const VkRenderingAreaInfoKHR*               pRenderingAreaInfo,
11311     VkExtent2D*                                 pGranularity);
11312 
11313 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
11314     VkDevice                                    device,
11315     const VkDeviceImageSubresourceInfoKHR*      pInfo,
11316     VkSubresourceLayout2KHR*                    pLayout);
11317 
11318 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
11319     VkDevice                                    device,
11320     VkImage                                     image,
11321     const VkImageSubresource2KHR*               pSubresource,
11322     VkSubresourceLayout2KHR*                    pLayout);
11323 #endif
11324 
11325 
11326 // VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
11327 #define VK_KHR_ray_tracing_position_fetch 1
11328 #define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
11329 #define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
11330 typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
11331     VkStructureType    sType;
11332     void*              pNext;
11333     VkBool32           rayTracingPositionFetch;
11334 } VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
11335 
11336 
11337 
11338 // VK_KHR_pipeline_binary is a preprocessor guard. Do not pass it to API calls.
11339 #define VK_KHR_pipeline_binary 1
11340 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineBinaryKHR)
11341 #define VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR 32U
11342 #define VK_KHR_PIPELINE_BINARY_SPEC_VERSION 1
11343 #define VK_KHR_PIPELINE_BINARY_EXTENSION_NAME "VK_KHR_pipeline_binary"
11344 typedef struct VkPhysicalDevicePipelineBinaryFeaturesKHR {
11345     VkStructureType    sType;
11346     void*              pNext;
11347     VkBool32           pipelineBinaries;
11348 } VkPhysicalDevicePipelineBinaryFeaturesKHR;
11349 
11350 typedef struct VkPhysicalDevicePipelineBinaryPropertiesKHR {
11351     VkStructureType    sType;
11352     void*              pNext;
11353     VkBool32           pipelineBinaryInternalCache;
11354     VkBool32           pipelineBinaryInternalCacheControl;
11355     VkBool32           pipelineBinaryPrefersInternalCache;
11356     VkBool32           pipelineBinaryPrecompiledInternalCache;
11357     VkBool32           pipelineBinaryCompressedData;
11358 } VkPhysicalDevicePipelineBinaryPropertiesKHR;
11359 
11360 typedef struct VkDevicePipelineBinaryInternalCacheControlKHR {
11361     VkStructureType    sType;
11362     const void*        pNext;
11363     VkBool32           disableInternalCache;
11364 } VkDevicePipelineBinaryInternalCacheControlKHR;
11365 
11366 typedef struct VkPipelineBinaryKeyKHR {
11367     VkStructureType    sType;
11368     void*              pNext;
11369     uint32_t           keySize;
11370     uint8_t            key[VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR];
11371 } VkPipelineBinaryKeyKHR;
11372 
11373 typedef struct VkPipelineBinaryDataKHR {
11374     size_t    dataSize;
11375     void*     pData;
11376 } VkPipelineBinaryDataKHR;
11377 
11378 typedef struct VkPipelineBinaryKeysAndDataKHR {
11379     uint32_t                          binaryCount;
11380     const VkPipelineBinaryKeyKHR*     pPipelineBinaryKeys;
11381     const VkPipelineBinaryDataKHR*    pPipelineBinaryData;
11382 } VkPipelineBinaryKeysAndDataKHR;
11383 
11384 typedef struct VkPipelineCreateInfoKHR {
11385     VkStructureType    sType;
11386     void*              pNext;
11387 } VkPipelineCreateInfoKHR;
11388 
11389 typedef struct VkPipelineBinaryCreateInfoKHR {
11390     VkStructureType                          sType;
11391     const void*                              pNext;
11392     const VkPipelineBinaryKeysAndDataKHR*    pKeysAndDataInfo;
11393     VkPipeline                               pipeline;
11394     const VkPipelineCreateInfoKHR*           pPipelineCreateInfo;
11395 } VkPipelineBinaryCreateInfoKHR;
11396 
11397 typedef struct VkPipelineBinaryInfoKHR {
11398     VkStructureType               sType;
11399     const void*                   pNext;
11400     uint32_t                      binaryCount;
11401     const VkPipelineBinaryKHR*    pPipelineBinaries;
11402 } VkPipelineBinaryInfoKHR;
11403 
11404 typedef struct VkReleaseCapturedPipelineDataInfoKHR {
11405     VkStructureType    sType;
11406     void*              pNext;
11407     VkPipeline         pipeline;
11408 } VkReleaseCapturedPipelineDataInfoKHR;
11409 
11410 typedef struct VkPipelineBinaryDataInfoKHR {
11411     VkStructureType        sType;
11412     void*                  pNext;
11413     VkPipelineBinaryKHR    pipelineBinary;
11414 } VkPipelineBinaryDataInfoKHR;
11415 
11416 typedef struct VkPipelineBinaryHandlesInfoKHR {
11417     VkStructureType         sType;
11418     const void*             pNext;
11419     uint32_t                pipelineBinaryCount;
11420     VkPipelineBinaryKHR*    pPipelineBinaries;
11421 } VkPipelineBinaryHandlesInfoKHR;
11422 
11423 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineBinariesKHR)(VkDevice device, const VkPipelineBinaryCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineBinaryHandlesInfoKHR* pBinaries);
11424 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineBinaryKHR)(VkDevice device, VkPipelineBinaryKHR pipelineBinary, const VkAllocationCallbacks* pAllocator);
11425 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineKeyKHR)(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey);
11426 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineBinaryDataKHR)(VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData);
11427 typedef VkResult (VKAPI_PTR *PFN_vkReleaseCapturedPipelineDataKHR)(VkDevice device, const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator);
11428 
11429 #ifndef VK_NO_PROTOTYPES
11430 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineBinariesKHR(
11431     VkDevice                                    device,
11432     const VkPipelineBinaryCreateInfoKHR*        pCreateInfo,
11433     const VkAllocationCallbacks*                pAllocator,
11434     VkPipelineBinaryHandlesInfoKHR*             pBinaries);
11435 
11436 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineBinaryKHR(
11437     VkDevice                                    device,
11438     VkPipelineBinaryKHR                         pipelineBinary,
11439     const VkAllocationCallbacks*                pAllocator);
11440 
11441 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineKeyKHR(
11442     VkDevice                                    device,
11443     const VkPipelineCreateInfoKHR*              pPipelineCreateInfo,
11444     VkPipelineBinaryKeyKHR*                     pPipelineKey);
11445 
11446 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineBinaryDataKHR(
11447     VkDevice                                    device,
11448     const VkPipelineBinaryDataInfoKHR*          pInfo,
11449     VkPipelineBinaryKeyKHR*                     pPipelineBinaryKey,
11450     size_t*                                     pPipelineBinaryDataSize,
11451     void*                                       pPipelineBinaryData);
11452 
11453 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseCapturedPipelineDataKHR(
11454     VkDevice                                    device,
11455     const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
11456     const VkAllocationCallbacks*                pAllocator);
11457 #endif
11458 
11459 
11460 // VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
11461 #define VK_KHR_cooperative_matrix 1
11462 #define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
11463 #define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
11464 
11465 typedef enum VkComponentTypeKHR {
11466     VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
11467     VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
11468     VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
11469     VK_COMPONENT_TYPE_SINT8_KHR = 3,
11470     VK_COMPONENT_TYPE_SINT16_KHR = 4,
11471     VK_COMPONENT_TYPE_SINT32_KHR = 5,
11472     VK_COMPONENT_TYPE_SINT64_KHR = 6,
11473     VK_COMPONENT_TYPE_UINT8_KHR = 7,
11474     VK_COMPONENT_TYPE_UINT16_KHR = 8,
11475     VK_COMPONENT_TYPE_UINT32_KHR = 9,
11476     VK_COMPONENT_TYPE_UINT64_KHR = 10,
11477     VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
11478     VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
11479     VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
11480     VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
11481     VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
11482     VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
11483     VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
11484     VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
11485     VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
11486     VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
11487     VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
11488     VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
11489 } VkComponentTypeKHR;
11490 
11491 typedef enum VkScopeKHR {
11492     VK_SCOPE_DEVICE_KHR = 1,
11493     VK_SCOPE_WORKGROUP_KHR = 2,
11494     VK_SCOPE_SUBGROUP_KHR = 3,
11495     VK_SCOPE_QUEUE_FAMILY_KHR = 5,
11496     VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
11497     VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
11498     VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
11499     VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
11500     VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
11501 } VkScopeKHR;
11502 typedef struct VkCooperativeMatrixPropertiesKHR {
11503     VkStructureType       sType;
11504     void*                 pNext;
11505     uint32_t              MSize;
11506     uint32_t              NSize;
11507     uint32_t              KSize;
11508     VkComponentTypeKHR    AType;
11509     VkComponentTypeKHR    BType;
11510     VkComponentTypeKHR    CType;
11511     VkComponentTypeKHR    ResultType;
11512     VkBool32              saturatingAccumulation;
11513     VkScopeKHR            scope;
11514 } VkCooperativeMatrixPropertiesKHR;
11515 
11516 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
11517     VkStructureType    sType;
11518     void*              pNext;
11519     VkBool32           cooperativeMatrix;
11520     VkBool32           cooperativeMatrixRobustBufferAccess;
11521 } VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
11522 
11523 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
11524     VkStructureType       sType;
11525     void*                 pNext;
11526     VkShaderStageFlags    cooperativeMatrixSupportedStages;
11527 } VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
11528 
11529 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
11530 
11531 #ifndef VK_NO_PROTOTYPES
11532 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
11533     VkPhysicalDevice                            physicalDevice,
11534     uint32_t*                                   pPropertyCount,
11535     VkCooperativeMatrixPropertiesKHR*           pProperties);
11536 #endif
11537 
11538 
11539 // VK_KHR_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
11540 #define VK_KHR_compute_shader_derivatives 1
11541 #define VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
11542 #define VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_KHR_compute_shader_derivatives"
11543 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR {
11544     VkStructureType    sType;
11545     void*              pNext;
11546     VkBool32           computeDerivativeGroupQuads;
11547     VkBool32           computeDerivativeGroupLinear;
11548 } VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR;
11549 
11550 typedef struct VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR {
11551     VkStructureType    sType;
11552     void*              pNext;
11553     VkBool32           meshAndTaskShaderDerivatives;
11554 } VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR;
11555 
11556 
11557 
11558 // VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
11559 #define VK_KHR_video_decode_av1 1
11560 #include "vk_video/vulkan_video_codec_av1std.h"
11561 #include "vk_video/vulkan_video_codec_av1std_decode.h"
11562 #define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
11563 #define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
11564 #define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
11565 typedef struct VkVideoDecodeAV1ProfileInfoKHR {
11566     VkStructureType       sType;
11567     const void*           pNext;
11568     StdVideoAV1Profile    stdProfile;
11569     VkBool32              filmGrainSupport;
11570 } VkVideoDecodeAV1ProfileInfoKHR;
11571 
11572 typedef struct VkVideoDecodeAV1CapabilitiesKHR {
11573     VkStructureType     sType;
11574     void*               pNext;
11575     StdVideoAV1Level    maxLevel;
11576 } VkVideoDecodeAV1CapabilitiesKHR;
11577 
11578 typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
11579     VkStructureType                     sType;
11580     const void*                         pNext;
11581     const StdVideoAV1SequenceHeader*    pStdSequenceHeader;
11582 } VkVideoDecodeAV1SessionParametersCreateInfoKHR;
11583 
11584 typedef struct VkVideoDecodeAV1PictureInfoKHR {
11585     VkStructureType                        sType;
11586     const void*                            pNext;
11587     const StdVideoDecodeAV1PictureInfo*    pStdPictureInfo;
11588     int32_t                                referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
11589     uint32_t                               frameHeaderOffset;
11590     uint32_t                               tileCount;
11591     const uint32_t*                        pTileOffsets;
11592     const uint32_t*                        pTileSizes;
11593 } VkVideoDecodeAV1PictureInfoKHR;
11594 
11595 typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
11596     VkStructureType                          sType;
11597     const void*                              pNext;
11598     const StdVideoDecodeAV1ReferenceInfo*    pStdReferenceInfo;
11599 } VkVideoDecodeAV1DpbSlotInfoKHR;
11600 
11601 
11602 
11603 // VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
11604 #define VK_KHR_video_maintenance1 1
11605 #define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
11606 #define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
11607 typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
11608     VkStructureType    sType;
11609     void*              pNext;
11610     VkBool32           videoMaintenance1;
11611 } VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
11612 
11613 typedef struct VkVideoInlineQueryInfoKHR {
11614     VkStructureType    sType;
11615     const void*        pNext;
11616     VkQueryPool        queryPool;
11617     uint32_t           firstQuery;
11618     uint32_t           queryCount;
11619 } VkVideoInlineQueryInfoKHR;
11620 
11621 
11622 
11623 // VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
11624 #define VK_KHR_vertex_attribute_divisor 1
11625 #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
11626 #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
11627 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR {
11628     VkStructureType    sType;
11629     void*              pNext;
11630     uint32_t           maxVertexAttribDivisor;
11631     VkBool32           supportsNonZeroFirstInstance;
11632 } VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
11633 
11634 typedef struct VkVertexInputBindingDivisorDescriptionKHR {
11635     uint32_t    binding;
11636     uint32_t    divisor;
11637 } VkVertexInputBindingDivisorDescriptionKHR;
11638 
11639 typedef struct VkPipelineVertexInputDivisorStateCreateInfoKHR {
11640     VkStructureType                                     sType;
11641     const void*                                         pNext;
11642     uint32_t                                            vertexBindingDivisorCount;
11643     const VkVertexInputBindingDivisorDescriptionKHR*    pVertexBindingDivisors;
11644 } VkPipelineVertexInputDivisorStateCreateInfoKHR;
11645 
11646 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR {
11647     VkStructureType    sType;
11648     void*              pNext;
11649     VkBool32           vertexAttributeInstanceRateDivisor;
11650     VkBool32           vertexAttributeInstanceRateZeroDivisor;
11651 } VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
11652 
11653 
11654 
11655 // VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
11656 #define VK_KHR_load_store_op_none 1
11657 #define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
11658 #define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
11659 
11660 
11661 // VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
11662 #define VK_KHR_shader_float_controls2 1
11663 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
11664 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
11665 typedef struct VkPhysicalDeviceShaderFloatControls2FeaturesKHR {
11666     VkStructureType    sType;
11667     void*              pNext;
11668     VkBool32           shaderFloatControls2;
11669 } VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
11670 
11671 
11672 
11673 // VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
11674 #define VK_KHR_index_type_uint8 1
11675 #define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
11676 #define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
11677 typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesKHR {
11678     VkStructureType    sType;
11679     void*              pNext;
11680     VkBool32           indexTypeUint8;
11681 } VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
11682 
11683 
11684 
11685 // VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
11686 #define VK_KHR_line_rasterization 1
11687 #define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
11688 #define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
11689 
11690 typedef enum VkLineRasterizationModeKHR {
11691     VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = 0,
11692     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = 1,
11693     VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = 2,
11694     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = 3,
11695     VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR,
11696     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR,
11697     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR,
11698     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR,
11699     VK_LINE_RASTERIZATION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
11700 } VkLineRasterizationModeKHR;
11701 typedef struct VkPhysicalDeviceLineRasterizationFeaturesKHR {
11702     VkStructureType    sType;
11703     void*              pNext;
11704     VkBool32           rectangularLines;
11705     VkBool32           bresenhamLines;
11706     VkBool32           smoothLines;
11707     VkBool32           stippledRectangularLines;
11708     VkBool32           stippledBresenhamLines;
11709     VkBool32           stippledSmoothLines;
11710 } VkPhysicalDeviceLineRasterizationFeaturesKHR;
11711 
11712 typedef struct VkPhysicalDeviceLineRasterizationPropertiesKHR {
11713     VkStructureType    sType;
11714     void*              pNext;
11715     uint32_t           lineSubPixelPrecisionBits;
11716 } VkPhysicalDeviceLineRasterizationPropertiesKHR;
11717 
11718 typedef struct VkPipelineRasterizationLineStateCreateInfoKHR {
11719     VkStructureType               sType;
11720     const void*                   pNext;
11721     VkLineRasterizationModeKHR    lineRasterizationMode;
11722     VkBool32                      stippledLineEnable;
11723     uint32_t                      lineStippleFactor;
11724     uint16_t                      lineStipplePattern;
11725 } VkPipelineRasterizationLineStateCreateInfoKHR;
11726 
11727 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
11728 
11729 #ifndef VK_NO_PROTOTYPES
11730 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
11731     VkCommandBuffer                             commandBuffer,
11732     uint32_t                                    lineStippleFactor,
11733     uint16_t                                    lineStipplePattern);
11734 #endif
11735 
11736 
11737 // VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
11738 #define VK_KHR_calibrated_timestamps 1
11739 #define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
11740 #define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
11741 
11742 typedef enum VkTimeDomainKHR {
11743     VK_TIME_DOMAIN_DEVICE_KHR = 0,
11744     VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
11745     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
11746     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
11747     VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
11748     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
11749     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
11750     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
11751     VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
11752 } VkTimeDomainKHR;
11753 typedef struct VkCalibratedTimestampInfoKHR {
11754     VkStructureType    sType;
11755     const void*        pNext;
11756     VkTimeDomainKHR    timeDomain;
11757 } VkCalibratedTimestampInfoKHR;
11758 
11759 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
11760 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
11761 
11762 #ifndef VK_NO_PROTOTYPES
11763 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
11764     VkPhysicalDevice                            physicalDevice,
11765     uint32_t*                                   pTimeDomainCount,
11766     VkTimeDomainKHR*                            pTimeDomains);
11767 
11768 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
11769     VkDevice                                    device,
11770     uint32_t                                    timestampCount,
11771     const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
11772     uint64_t*                                   pTimestamps,
11773     uint64_t*                                   pMaxDeviation);
11774 #endif
11775 
11776 
11777 // VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
11778 #define VK_KHR_shader_expect_assume 1
11779 #define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
11780 #define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
11781 typedef struct VkPhysicalDeviceShaderExpectAssumeFeaturesKHR {
11782     VkStructureType    sType;
11783     void*              pNext;
11784     VkBool32           shaderExpectAssume;
11785 } VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
11786 
11787 
11788 
11789 // VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
11790 #define VK_KHR_maintenance6 1
11791 #define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
11792 #define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
11793 typedef struct VkPhysicalDeviceMaintenance6FeaturesKHR {
11794     VkStructureType    sType;
11795     void*              pNext;
11796     VkBool32           maintenance6;
11797 } VkPhysicalDeviceMaintenance6FeaturesKHR;
11798 
11799 typedef struct VkPhysicalDeviceMaintenance6PropertiesKHR {
11800     VkStructureType    sType;
11801     void*              pNext;
11802     VkBool32           blockTexelViewCompatibleMultipleLayers;
11803     uint32_t           maxCombinedImageSamplerDescriptorCount;
11804     VkBool32           fragmentShadingRateClampCombinerInputs;
11805 } VkPhysicalDeviceMaintenance6PropertiesKHR;
11806 
11807 typedef struct VkBindMemoryStatusKHR {
11808     VkStructureType    sType;
11809     const void*        pNext;
11810     VkResult*          pResult;
11811 } VkBindMemoryStatusKHR;
11812 
11813 typedef struct VkBindDescriptorSetsInfoKHR {
11814     VkStructureType           sType;
11815     const void*               pNext;
11816     VkShaderStageFlags        stageFlags;
11817     VkPipelineLayout          layout;
11818     uint32_t                  firstSet;
11819     uint32_t                  descriptorSetCount;
11820     const VkDescriptorSet*    pDescriptorSets;
11821     uint32_t                  dynamicOffsetCount;
11822     const uint32_t*           pDynamicOffsets;
11823 } VkBindDescriptorSetsInfoKHR;
11824 
11825 typedef struct VkPushConstantsInfoKHR {
11826     VkStructureType       sType;
11827     const void*           pNext;
11828     VkPipelineLayout      layout;
11829     VkShaderStageFlags    stageFlags;
11830     uint32_t              offset;
11831     uint32_t              size;
11832     const void*           pValues;
11833 } VkPushConstantsInfoKHR;
11834 
11835 typedef struct VkPushDescriptorSetInfoKHR {
11836     VkStructureType                sType;
11837     const void*                    pNext;
11838     VkShaderStageFlags             stageFlags;
11839     VkPipelineLayout               layout;
11840     uint32_t                       set;
11841     uint32_t                       descriptorWriteCount;
11842     const VkWriteDescriptorSet*    pDescriptorWrites;
11843 } VkPushDescriptorSetInfoKHR;
11844 
11845 typedef struct VkPushDescriptorSetWithTemplateInfoKHR {
11846     VkStructureType               sType;
11847     const void*                   pNext;
11848     VkDescriptorUpdateTemplate    descriptorUpdateTemplate;
11849     VkPipelineLayout              layout;
11850     uint32_t                      set;
11851     const void*                   pData;
11852 } VkPushDescriptorSetWithTemplateInfoKHR;
11853 
11854 typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
11855     VkStructureType        sType;
11856     const void*            pNext;
11857     VkShaderStageFlags     stageFlags;
11858     VkPipelineLayout       layout;
11859     uint32_t               firstSet;
11860     uint32_t               setCount;
11861     const uint32_t*        pBufferIndices;
11862     const VkDeviceSize*    pOffsets;
11863 } VkSetDescriptorBufferOffsetsInfoEXT;
11864 
11865 typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
11866     VkStructureType       sType;
11867     const void*           pNext;
11868     VkShaderStageFlags    stageFlags;
11869     VkPipelineLayout      layout;
11870     uint32_t              set;
11871 } VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
11872 
11873 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfoKHR* pBindDescriptorSetsInfo);
11874 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfoKHR* pPushConstantsInfo);
11875 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfoKHR* pPushDescriptorSetInfo);
11876 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo);
11877 typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
11878 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
11879 
11880 #ifndef VK_NO_PROTOTYPES
11881 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
11882     VkCommandBuffer                             commandBuffer,
11883     const VkBindDescriptorSetsInfoKHR*          pBindDescriptorSetsInfo);
11884 
11885 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
11886     VkCommandBuffer                             commandBuffer,
11887     const VkPushConstantsInfoKHR*               pPushConstantsInfo);
11888 
11889 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
11890     VkCommandBuffer                             commandBuffer,
11891     const VkPushDescriptorSetInfoKHR*           pPushDescriptorSetInfo);
11892 
11893 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
11894     VkCommandBuffer                             commandBuffer,
11895     const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo);
11896 
11897 VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
11898     VkCommandBuffer                             commandBuffer,
11899     const VkSetDescriptorBufferOffsetsInfoEXT*  pSetDescriptorBufferOffsetsInfo);
11900 
11901 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
11902     VkCommandBuffer                             commandBuffer,
11903     const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
11904 #endif
11905 
11906 
11907 // VK_KHR_shader_relaxed_extended_instruction is a preprocessor guard. Do not pass it to API calls.
11908 #define VK_KHR_shader_relaxed_extended_instruction 1
11909 #define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION 1
11910 #define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME "VK_KHR_shader_relaxed_extended_instruction"
11911 typedef struct VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
11912     VkStructureType    sType;
11913     void*              pNext;
11914     VkBool32           shaderRelaxedExtendedInstruction;
11915 } VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR;
11916 
11917 
11918 
11919 // VK_KHR_maintenance7 is a preprocessor guard. Do not pass it to API calls.
11920 #define VK_KHR_maintenance7 1
11921 #define VK_KHR_MAINTENANCE_7_SPEC_VERSION 1
11922 #define VK_KHR_MAINTENANCE_7_EXTENSION_NAME "VK_KHR_maintenance7"
11923 
11924 typedef enum VkPhysicalDeviceLayeredApiKHR {
11925     VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = 0,
11926     VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = 1,
11927     VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = 2,
11928     VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = 3,
11929     VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = 4,
11930     VK_PHYSICAL_DEVICE_LAYERED_API_MAX_ENUM_KHR = 0x7FFFFFFF
11931 } VkPhysicalDeviceLayeredApiKHR;
11932 typedef struct VkPhysicalDeviceMaintenance7FeaturesKHR {
11933     VkStructureType    sType;
11934     void*              pNext;
11935     VkBool32           maintenance7;
11936 } VkPhysicalDeviceMaintenance7FeaturesKHR;
11937 
11938 typedef struct VkPhysicalDeviceMaintenance7PropertiesKHR {
11939     VkStructureType    sType;
11940     void*              pNext;
11941     VkBool32           robustFragmentShadingRateAttachmentAccess;
11942     VkBool32           separateDepthStencilAttachmentAccess;
11943     uint32_t           maxDescriptorSetTotalUniformBuffersDynamic;
11944     uint32_t           maxDescriptorSetTotalStorageBuffersDynamic;
11945     uint32_t           maxDescriptorSetTotalBuffersDynamic;
11946     uint32_t           maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic;
11947     uint32_t           maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic;
11948     uint32_t           maxDescriptorSetUpdateAfterBindTotalBuffersDynamic;
11949 } VkPhysicalDeviceMaintenance7PropertiesKHR;
11950 
11951 typedef struct VkPhysicalDeviceLayeredApiPropertiesKHR {
11952     VkStructureType                  sType;
11953     void*                            pNext;
11954     uint32_t                         vendorID;
11955     uint32_t                         deviceID;
11956     VkPhysicalDeviceLayeredApiKHR    layeredAPI;
11957     char                             deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
11958 } VkPhysicalDeviceLayeredApiPropertiesKHR;
11959 
11960 typedef struct VkPhysicalDeviceLayeredApiPropertiesListKHR {
11961     VkStructureType                             sType;
11962     void*                                       pNext;
11963     uint32_t                                    layeredApiCount;
11964     VkPhysicalDeviceLayeredApiPropertiesKHR*    pLayeredApis;
11965 } VkPhysicalDeviceLayeredApiPropertiesListKHR;
11966 
11967 typedef struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR {
11968     VkStructureType                sType;
11969     void*                          pNext;
11970     VkPhysicalDeviceProperties2    properties;
11971 } VkPhysicalDeviceLayeredApiVulkanPropertiesKHR;
11972 
11973 
11974 
11975 // VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
11976 #define VK_EXT_debug_report 1
11977 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
11978 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  10
11979 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
11980 
11981 typedef enum VkDebugReportObjectTypeEXT {
11982     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
11983     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
11984     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
11985     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
11986     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
11987     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
11988     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
11989     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
11990     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
11991     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
11992     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
11993     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
11994     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
11995     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
11996     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
11997     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
11998     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
11999     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
12000     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
12001     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
12002     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
12003     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
12004     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
12005     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
12006     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
12007     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
12008     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
12009     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
12010     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
12011     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
12012     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
12013     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
12014     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
12015     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
12016     VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
12017     VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
12018     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
12019     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
12020     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
12021     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
12022     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
12023   // VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT is a deprecated alias
12024     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
12025   // VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT is a deprecated alias
12026     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
12027     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
12028     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
12029     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
12030 } VkDebugReportObjectTypeEXT;
12031 
12032 typedef enum VkDebugReportFlagBitsEXT {
12033     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
12034     VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
12035     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
12036     VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
12037     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
12038     VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12039 } VkDebugReportFlagBitsEXT;
12040 typedef VkFlags VkDebugReportFlagsEXT;
12041 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
12042     VkDebugReportFlagsEXT                       flags,
12043     VkDebugReportObjectTypeEXT                  objectType,
12044     uint64_t                                    object,
12045     size_t                                      location,
12046     int32_t                                     messageCode,
12047     const char*                                 pLayerPrefix,
12048     const char*                                 pMessage,
12049     void*                                       pUserData);
12050 
12051 typedef struct VkDebugReportCallbackCreateInfoEXT {
12052     VkStructureType                 sType;
12053     const void*                     pNext;
12054     VkDebugReportFlagsEXT           flags;
12055     PFN_vkDebugReportCallbackEXT    pfnCallback;
12056     void*                           pUserData;
12057 } VkDebugReportCallbackCreateInfoEXT;
12058 
12059 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
12060 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
12061 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);
12062 
12063 #ifndef VK_NO_PROTOTYPES
12064 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
12065     VkInstance                                  instance,
12066     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
12067     const VkAllocationCallbacks*                pAllocator,
12068     VkDebugReportCallbackEXT*                   pCallback);
12069 
12070 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
12071     VkInstance                                  instance,
12072     VkDebugReportCallbackEXT                    callback,
12073     const VkAllocationCallbacks*                pAllocator);
12074 
12075 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
12076     VkInstance                                  instance,
12077     VkDebugReportFlagsEXT                       flags,
12078     VkDebugReportObjectTypeEXT                  objectType,
12079     uint64_t                                    object,
12080     size_t                                      location,
12081     int32_t                                     messageCode,
12082     const char*                                 pLayerPrefix,
12083     const char*                                 pMessage);
12084 #endif
12085 
12086 
12087 // VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
12088 #define VK_NV_glsl_shader 1
12089 #define VK_NV_GLSL_SHADER_SPEC_VERSION    1
12090 #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
12091 
12092 
12093 // VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
12094 #define VK_EXT_depth_range_unrestricted 1
12095 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
12096 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
12097 
12098 
12099 // VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
12100 #define VK_IMG_filter_cubic 1
12101 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
12102 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
12103 
12104 
12105 // VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
12106 #define VK_AMD_rasterization_order 1
12107 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
12108 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
12109 
12110 typedef enum VkRasterizationOrderAMD {
12111     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
12112     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
12113     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
12114 } VkRasterizationOrderAMD;
12115 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
12116     VkStructureType            sType;
12117     const void*                pNext;
12118     VkRasterizationOrderAMD    rasterizationOrder;
12119 } VkPipelineRasterizationStateRasterizationOrderAMD;
12120 
12121 
12122 
12123 // VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
12124 #define VK_AMD_shader_trinary_minmax 1
12125 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
12126 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
12127 
12128 
12129 // VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
12130 #define VK_AMD_shader_explicit_vertex_parameter 1
12131 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
12132 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
12133 
12134 
12135 // VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
12136 #define VK_EXT_debug_marker 1
12137 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
12138 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
12139 typedef struct VkDebugMarkerObjectNameInfoEXT {
12140     VkStructureType               sType;
12141     const void*                   pNext;
12142     VkDebugReportObjectTypeEXT    objectType;
12143     uint64_t                      object;
12144     const char*                   pObjectName;
12145 } VkDebugMarkerObjectNameInfoEXT;
12146 
12147 typedef struct VkDebugMarkerObjectTagInfoEXT {
12148     VkStructureType               sType;
12149     const void*                   pNext;
12150     VkDebugReportObjectTypeEXT    objectType;
12151     uint64_t                      object;
12152     uint64_t                      tagName;
12153     size_t                        tagSize;
12154     const void*                   pTag;
12155 } VkDebugMarkerObjectTagInfoEXT;
12156 
12157 typedef struct VkDebugMarkerMarkerInfoEXT {
12158     VkStructureType    sType;
12159     const void*        pNext;
12160     const char*        pMarkerName;
12161     float              color[4];
12162 } VkDebugMarkerMarkerInfoEXT;
12163 
12164 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
12165 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
12166 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
12167 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
12168 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
12169 
12170 #ifndef VK_NO_PROTOTYPES
12171 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
12172     VkDevice                                    device,
12173     const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
12174 
12175 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
12176     VkDevice                                    device,
12177     const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
12178 
12179 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
12180     VkCommandBuffer                             commandBuffer,
12181     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
12182 
12183 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
12184     VkCommandBuffer                             commandBuffer);
12185 
12186 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
12187     VkCommandBuffer                             commandBuffer,
12188     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
12189 #endif
12190 
12191 
12192 // VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
12193 #define VK_AMD_gcn_shader 1
12194 #define VK_AMD_GCN_SHADER_SPEC_VERSION    1
12195 #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
12196 
12197 
12198 // VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
12199 #define VK_NV_dedicated_allocation 1
12200 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
12201 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
12202 typedef struct VkDedicatedAllocationImageCreateInfoNV {
12203     VkStructureType    sType;
12204     const void*        pNext;
12205     VkBool32           dedicatedAllocation;
12206 } VkDedicatedAllocationImageCreateInfoNV;
12207 
12208 typedef struct VkDedicatedAllocationBufferCreateInfoNV {
12209     VkStructureType    sType;
12210     const void*        pNext;
12211     VkBool32           dedicatedAllocation;
12212 } VkDedicatedAllocationBufferCreateInfoNV;
12213 
12214 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
12215     VkStructureType    sType;
12216     const void*        pNext;
12217     VkImage            image;
12218     VkBuffer           buffer;
12219 } VkDedicatedAllocationMemoryAllocateInfoNV;
12220 
12221 
12222 
12223 // VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
12224 #define VK_EXT_transform_feedback 1
12225 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
12226 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
12227 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
12228 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
12229     VkStructureType    sType;
12230     void*              pNext;
12231     VkBool32           transformFeedback;
12232     VkBool32           geometryStreams;
12233 } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
12234 
12235 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
12236     VkStructureType    sType;
12237     void*              pNext;
12238     uint32_t           maxTransformFeedbackStreams;
12239     uint32_t           maxTransformFeedbackBuffers;
12240     VkDeviceSize       maxTransformFeedbackBufferSize;
12241     uint32_t           maxTransformFeedbackStreamDataSize;
12242     uint32_t           maxTransformFeedbackBufferDataSize;
12243     uint32_t           maxTransformFeedbackBufferDataStride;
12244     VkBool32           transformFeedbackQueries;
12245     VkBool32           transformFeedbackStreamsLinesTriangles;
12246     VkBool32           transformFeedbackRasterizationStreamSelect;
12247     VkBool32           transformFeedbackDraw;
12248 } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
12249 
12250 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
12251     VkStructureType                                     sType;
12252     const void*                                         pNext;
12253     VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
12254     uint32_t                                            rasterizationStream;
12255 } VkPipelineRasterizationStateStreamCreateInfoEXT;
12256 
12257 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
12258 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
12259 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
12260 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
12261 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
12262 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
12263 
12264 #ifndef VK_NO_PROTOTYPES
12265 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
12266     VkCommandBuffer                             commandBuffer,
12267     uint32_t                                    firstBinding,
12268     uint32_t                                    bindingCount,
12269     const VkBuffer*                             pBuffers,
12270     const VkDeviceSize*                         pOffsets,
12271     const VkDeviceSize*                         pSizes);
12272 
12273 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
12274     VkCommandBuffer                             commandBuffer,
12275     uint32_t                                    firstCounterBuffer,
12276     uint32_t                                    counterBufferCount,
12277     const VkBuffer*                             pCounterBuffers,
12278     const VkDeviceSize*                         pCounterBufferOffsets);
12279 
12280 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
12281     VkCommandBuffer                             commandBuffer,
12282     uint32_t                                    firstCounterBuffer,
12283     uint32_t                                    counterBufferCount,
12284     const VkBuffer*                             pCounterBuffers,
12285     const VkDeviceSize*                         pCounterBufferOffsets);
12286 
12287 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
12288     VkCommandBuffer                             commandBuffer,
12289     VkQueryPool                                 queryPool,
12290     uint32_t                                    query,
12291     VkQueryControlFlags                         flags,
12292     uint32_t                                    index);
12293 
12294 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
12295     VkCommandBuffer                             commandBuffer,
12296     VkQueryPool                                 queryPool,
12297     uint32_t                                    query,
12298     uint32_t                                    index);
12299 
12300 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
12301     VkCommandBuffer                             commandBuffer,
12302     uint32_t                                    instanceCount,
12303     uint32_t                                    firstInstance,
12304     VkBuffer                                    counterBuffer,
12305     VkDeviceSize                                counterBufferOffset,
12306     uint32_t                                    counterOffset,
12307     uint32_t                                    vertexStride);
12308 #endif
12309 
12310 
12311 // VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
12312 #define VK_NVX_binary_import 1
12313 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
12314 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
12315 #define VK_NVX_BINARY_IMPORT_SPEC_VERSION 1
12316 #define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
12317 typedef struct VkCuModuleCreateInfoNVX {
12318     VkStructureType    sType;
12319     const void*        pNext;
12320     size_t             dataSize;
12321     const void*        pData;
12322 } VkCuModuleCreateInfoNVX;
12323 
12324 typedef struct VkCuFunctionCreateInfoNVX {
12325     VkStructureType    sType;
12326     const void*        pNext;
12327     VkCuModuleNVX      module;
12328     const char*        pName;
12329 } VkCuFunctionCreateInfoNVX;
12330 
12331 typedef struct VkCuLaunchInfoNVX {
12332     VkStructureType        sType;
12333     const void*            pNext;
12334     VkCuFunctionNVX        function;
12335     uint32_t               gridDimX;
12336     uint32_t               gridDimY;
12337     uint32_t               gridDimZ;
12338     uint32_t               blockDimX;
12339     uint32_t               blockDimY;
12340     uint32_t               blockDimZ;
12341     uint32_t               sharedMemBytes;
12342     size_t                 paramCount;
12343     const void* const *    pParams;
12344     size_t                 extraCount;
12345     const void* const *    pExtras;
12346 } VkCuLaunchInfoNVX;
12347 
12348 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
12349 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
12350 typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
12351 typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
12352 typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
12353 
12354 #ifndef VK_NO_PROTOTYPES
12355 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
12356     VkDevice                                    device,
12357     const VkCuModuleCreateInfoNVX*              pCreateInfo,
12358     const VkAllocationCallbacks*                pAllocator,
12359     VkCuModuleNVX*                              pModule);
12360 
12361 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
12362     VkDevice                                    device,
12363     const VkCuFunctionCreateInfoNVX*            pCreateInfo,
12364     const VkAllocationCallbacks*                pAllocator,
12365     VkCuFunctionNVX*                            pFunction);
12366 
12367 VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
12368     VkDevice                                    device,
12369     VkCuModuleNVX                               module,
12370     const VkAllocationCallbacks*                pAllocator);
12371 
12372 VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
12373     VkDevice                                    device,
12374     VkCuFunctionNVX                             function,
12375     const VkAllocationCallbacks*                pAllocator);
12376 
12377 VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
12378     VkCommandBuffer                             commandBuffer,
12379     const VkCuLaunchInfoNVX*                    pLaunchInfo);
12380 #endif
12381 
12382 
12383 // VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
12384 #define VK_NVX_image_view_handle 1
12385 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
12386 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
12387 typedef struct VkImageViewHandleInfoNVX {
12388     VkStructureType     sType;
12389     const void*         pNext;
12390     VkImageView         imageView;
12391     VkDescriptorType    descriptorType;
12392     VkSampler           sampler;
12393 } VkImageViewHandleInfoNVX;
12394 
12395 typedef struct VkImageViewAddressPropertiesNVX {
12396     VkStructureType    sType;
12397     void*              pNext;
12398     VkDeviceAddress    deviceAddress;
12399     VkDeviceSize       size;
12400 } VkImageViewAddressPropertiesNVX;
12401 
12402 typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
12403 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
12404 
12405 #ifndef VK_NO_PROTOTYPES
12406 VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
12407     VkDevice                                    device,
12408     const VkImageViewHandleInfoNVX*             pInfo);
12409 
12410 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
12411     VkDevice                                    device,
12412     VkImageView                                 imageView,
12413     VkImageViewAddressPropertiesNVX*            pProperties);
12414 #endif
12415 
12416 
12417 // VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
12418 #define VK_AMD_draw_indirect_count 1
12419 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
12420 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
12421 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
12422 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
12423 
12424 #ifndef VK_NO_PROTOTYPES
12425 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
12426     VkCommandBuffer                             commandBuffer,
12427     VkBuffer                                    buffer,
12428     VkDeviceSize                                offset,
12429     VkBuffer                                    countBuffer,
12430     VkDeviceSize                                countBufferOffset,
12431     uint32_t                                    maxDrawCount,
12432     uint32_t                                    stride);
12433 
12434 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
12435     VkCommandBuffer                             commandBuffer,
12436     VkBuffer                                    buffer,
12437     VkDeviceSize                                offset,
12438     VkBuffer                                    countBuffer,
12439     VkDeviceSize                                countBufferOffset,
12440     uint32_t                                    maxDrawCount,
12441     uint32_t                                    stride);
12442 #endif
12443 
12444 
12445 // VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
12446 #define VK_AMD_negative_viewport_height 1
12447 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
12448 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
12449 
12450 
12451 // VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
12452 #define VK_AMD_gpu_shader_half_float 1
12453 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
12454 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
12455 
12456 
12457 // VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
12458 #define VK_AMD_shader_ballot 1
12459 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
12460 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
12461 
12462 
12463 // VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
12464 #define VK_AMD_texture_gather_bias_lod 1
12465 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
12466 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
12467 typedef struct VkTextureLODGatherFormatPropertiesAMD {
12468     VkStructureType    sType;
12469     void*              pNext;
12470     VkBool32           supportsTextureGatherLODBiasAMD;
12471 } VkTextureLODGatherFormatPropertiesAMD;
12472 
12473 
12474 
12475 // VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
12476 #define VK_AMD_shader_info 1
12477 #define VK_AMD_SHADER_INFO_SPEC_VERSION   1
12478 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
12479 
12480 typedef enum VkShaderInfoTypeAMD {
12481     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
12482     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
12483     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
12484     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
12485 } VkShaderInfoTypeAMD;
12486 typedef struct VkShaderResourceUsageAMD {
12487     uint32_t    numUsedVgprs;
12488     uint32_t    numUsedSgprs;
12489     uint32_t    ldsSizePerLocalWorkGroup;
12490     size_t      ldsUsageSizeInBytes;
12491     size_t      scratchMemUsageInBytes;
12492 } VkShaderResourceUsageAMD;
12493 
12494 typedef struct VkShaderStatisticsInfoAMD {
12495     VkShaderStageFlags          shaderStageMask;
12496     VkShaderResourceUsageAMD    resourceUsage;
12497     uint32_t                    numPhysicalVgprs;
12498     uint32_t                    numPhysicalSgprs;
12499     uint32_t                    numAvailableVgprs;
12500     uint32_t                    numAvailableSgprs;
12501     uint32_t                    computeWorkGroupSize[3];
12502 } VkShaderStatisticsInfoAMD;
12503 
12504 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
12505 
12506 #ifndef VK_NO_PROTOTYPES
12507 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
12508     VkDevice                                    device,
12509     VkPipeline                                  pipeline,
12510     VkShaderStageFlagBits                       shaderStage,
12511     VkShaderInfoTypeAMD                         infoType,
12512     size_t*                                     pInfoSize,
12513     void*                                       pInfo);
12514 #endif
12515 
12516 
12517 // VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
12518 #define VK_AMD_shader_image_load_store_lod 1
12519 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
12520 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
12521 
12522 
12523 // VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
12524 #define VK_NV_corner_sampled_image 1
12525 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
12526 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
12527 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
12528     VkStructureType    sType;
12529     void*              pNext;
12530     VkBool32           cornerSampledImage;
12531 } VkPhysicalDeviceCornerSampledImageFeaturesNV;
12532 
12533 
12534 
12535 // VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
12536 #define VK_IMG_format_pvrtc 1
12537 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
12538 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
12539 
12540 
12541 // VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
12542 #define VK_NV_external_memory_capabilities 1
12543 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
12544 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
12545 
12546 typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
12547     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
12548     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
12549     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
12550     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
12551     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
12552 } VkExternalMemoryHandleTypeFlagBitsNV;
12553 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
12554 
12555 typedef enum VkExternalMemoryFeatureFlagBitsNV {
12556     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
12557     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
12558     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
12559     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
12560 } VkExternalMemoryFeatureFlagBitsNV;
12561 typedef VkFlags VkExternalMemoryFeatureFlagsNV;
12562 typedef struct VkExternalImageFormatPropertiesNV {
12563     VkImageFormatProperties              imageFormatProperties;
12564     VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
12565     VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
12566     VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
12567 } VkExternalImageFormatPropertiesNV;
12568 
12569 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
12570 
12571 #ifndef VK_NO_PROTOTYPES
12572 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
12573     VkPhysicalDevice                            physicalDevice,
12574     VkFormat                                    format,
12575     VkImageType                                 type,
12576     VkImageTiling                               tiling,
12577     VkImageUsageFlags                           usage,
12578     VkImageCreateFlags                          flags,
12579     VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
12580     VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
12581 #endif
12582 
12583 
12584 // VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
12585 #define VK_NV_external_memory 1
12586 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
12587 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
12588 typedef struct VkExternalMemoryImageCreateInfoNV {
12589     VkStructureType                      sType;
12590     const void*                          pNext;
12591     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
12592 } VkExternalMemoryImageCreateInfoNV;
12593 
12594 typedef struct VkExportMemoryAllocateInfoNV {
12595     VkStructureType                      sType;
12596     const void*                          pNext;
12597     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
12598 } VkExportMemoryAllocateInfoNV;
12599 
12600 
12601 
12602 // VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
12603 #define VK_EXT_validation_flags 1
12604 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
12605 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
12606 
12607 typedef enum VkValidationCheckEXT {
12608     VK_VALIDATION_CHECK_ALL_EXT = 0,
12609     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
12610     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
12611 } VkValidationCheckEXT;
12612 typedef struct VkValidationFlagsEXT {
12613     VkStructureType                sType;
12614     const void*                    pNext;
12615     uint32_t                       disabledValidationCheckCount;
12616     const VkValidationCheckEXT*    pDisabledValidationChecks;
12617 } VkValidationFlagsEXT;
12618 
12619 
12620 
12621 // VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
12622 #define VK_EXT_shader_subgroup_ballot 1
12623 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
12624 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
12625 
12626 
12627 // VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
12628 #define VK_EXT_shader_subgroup_vote 1
12629 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
12630 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
12631 
12632 
12633 // VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
12634 #define VK_EXT_texture_compression_astc_hdr 1
12635 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
12636 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
12637 typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
12638 
12639 
12640 
12641 // VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
12642 #define VK_EXT_astc_decode_mode 1
12643 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
12644 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
12645 typedef struct VkImageViewASTCDecodeModeEXT {
12646     VkStructureType    sType;
12647     const void*        pNext;
12648     VkFormat           decodeMode;
12649 } VkImageViewASTCDecodeModeEXT;
12650 
12651 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
12652     VkStructureType    sType;
12653     void*              pNext;
12654     VkBool32           decodeModeSharedExponent;
12655 } VkPhysicalDeviceASTCDecodeFeaturesEXT;
12656 
12657 
12658 
12659 // VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
12660 #define VK_EXT_pipeline_robustness 1
12661 #define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
12662 #define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
12663 
12664 typedef enum VkPipelineRobustnessBufferBehaviorEXT {
12665     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0,
12666     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1,
12667     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2,
12668     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3,
12669     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 0x7FFFFFFF
12670 } VkPipelineRobustnessBufferBehaviorEXT;
12671 
12672 typedef enum VkPipelineRobustnessImageBehaviorEXT {
12673     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0,
12674     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1,
12675     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2,
12676     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3,
12677     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 0x7FFFFFFF
12678 } VkPipelineRobustnessImageBehaviorEXT;
12679 typedef struct VkPhysicalDevicePipelineRobustnessFeaturesEXT {
12680     VkStructureType    sType;
12681     void*              pNext;
12682     VkBool32           pipelineRobustness;
12683 } VkPhysicalDevicePipelineRobustnessFeaturesEXT;
12684 
12685 typedef struct VkPhysicalDevicePipelineRobustnessPropertiesEXT {
12686     VkStructureType                          sType;
12687     void*                                    pNext;
12688     VkPipelineRobustnessBufferBehaviorEXT    defaultRobustnessStorageBuffers;
12689     VkPipelineRobustnessBufferBehaviorEXT    defaultRobustnessUniformBuffers;
12690     VkPipelineRobustnessBufferBehaviorEXT    defaultRobustnessVertexInputs;
12691     VkPipelineRobustnessImageBehaviorEXT     defaultRobustnessImages;
12692 } VkPhysicalDevicePipelineRobustnessPropertiesEXT;
12693 
12694 typedef struct VkPipelineRobustnessCreateInfoEXT {
12695     VkStructureType                          sType;
12696     const void*                              pNext;
12697     VkPipelineRobustnessBufferBehaviorEXT    storageBuffers;
12698     VkPipelineRobustnessBufferBehaviorEXT    uniformBuffers;
12699     VkPipelineRobustnessBufferBehaviorEXT    vertexInputs;
12700     VkPipelineRobustnessImageBehaviorEXT     images;
12701 } VkPipelineRobustnessCreateInfoEXT;
12702 
12703 
12704 
12705 // VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
12706 #define VK_EXT_conditional_rendering 1
12707 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
12708 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
12709 
12710 typedef enum VkConditionalRenderingFlagBitsEXT {
12711     VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
12712     VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12713 } VkConditionalRenderingFlagBitsEXT;
12714 typedef VkFlags VkConditionalRenderingFlagsEXT;
12715 typedef struct VkConditionalRenderingBeginInfoEXT {
12716     VkStructureType                   sType;
12717     const void*                       pNext;
12718     VkBuffer                          buffer;
12719     VkDeviceSize                      offset;
12720     VkConditionalRenderingFlagsEXT    flags;
12721 } VkConditionalRenderingBeginInfoEXT;
12722 
12723 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
12724     VkStructureType    sType;
12725     void*              pNext;
12726     VkBool32           conditionalRendering;
12727     VkBool32           inheritedConditionalRendering;
12728 } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
12729 
12730 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
12731     VkStructureType    sType;
12732     const void*        pNext;
12733     VkBool32           conditionalRenderingEnable;
12734 } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
12735 
12736 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
12737 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
12738 
12739 #ifndef VK_NO_PROTOTYPES
12740 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
12741     VkCommandBuffer                             commandBuffer,
12742     const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin);
12743 
12744 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
12745     VkCommandBuffer                             commandBuffer);
12746 #endif
12747 
12748 
12749 // VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
12750 #define VK_NV_clip_space_w_scaling 1
12751 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
12752 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
12753 typedef struct VkViewportWScalingNV {
12754     float    xcoeff;
12755     float    ycoeff;
12756 } VkViewportWScalingNV;
12757 
12758 typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
12759     VkStructureType                sType;
12760     const void*                    pNext;
12761     VkBool32                       viewportWScalingEnable;
12762     uint32_t                       viewportCount;
12763     const VkViewportWScalingNV*    pViewportWScalings;
12764 } VkPipelineViewportWScalingStateCreateInfoNV;
12765 
12766 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
12767 
12768 #ifndef VK_NO_PROTOTYPES
12769 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
12770     VkCommandBuffer                             commandBuffer,
12771     uint32_t                                    firstViewport,
12772     uint32_t                                    viewportCount,
12773     const VkViewportWScalingNV*                 pViewportWScalings);
12774 #endif
12775 
12776 
12777 // VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
12778 #define VK_EXT_direct_mode_display 1
12779 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
12780 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
12781 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
12782 
12783 #ifndef VK_NO_PROTOTYPES
12784 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
12785     VkPhysicalDevice                            physicalDevice,
12786     VkDisplayKHR                                display);
12787 #endif
12788 
12789 
12790 // VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
12791 #define VK_EXT_display_surface_counter 1
12792 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
12793 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
12794 
12795 typedef enum VkSurfaceCounterFlagBitsEXT {
12796     VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
12797   // VK_SURFACE_COUNTER_VBLANK_EXT is a deprecated alias
12798     VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
12799     VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12800 } VkSurfaceCounterFlagBitsEXT;
12801 typedef VkFlags VkSurfaceCounterFlagsEXT;
12802 typedef struct VkSurfaceCapabilities2EXT {
12803     VkStructureType                  sType;
12804     void*                            pNext;
12805     uint32_t                         minImageCount;
12806     uint32_t                         maxImageCount;
12807     VkExtent2D                       currentExtent;
12808     VkExtent2D                       minImageExtent;
12809     VkExtent2D                       maxImageExtent;
12810     uint32_t                         maxImageArrayLayers;
12811     VkSurfaceTransformFlagsKHR       supportedTransforms;
12812     VkSurfaceTransformFlagBitsKHR    currentTransform;
12813     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
12814     VkImageUsageFlags                supportedUsageFlags;
12815     VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
12816 } VkSurfaceCapabilities2EXT;
12817 
12818 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
12819 
12820 #ifndef VK_NO_PROTOTYPES
12821 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
12822     VkPhysicalDevice                            physicalDevice,
12823     VkSurfaceKHR                                surface,
12824     VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
12825 #endif
12826 
12827 
12828 // VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
12829 #define VK_EXT_display_control 1
12830 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
12831 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
12832 
12833 typedef enum VkDisplayPowerStateEXT {
12834     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
12835     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
12836     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
12837     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
12838 } VkDisplayPowerStateEXT;
12839 
12840 typedef enum VkDeviceEventTypeEXT {
12841     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
12842     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
12843 } VkDeviceEventTypeEXT;
12844 
12845 typedef enum VkDisplayEventTypeEXT {
12846     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
12847     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
12848 } VkDisplayEventTypeEXT;
12849 typedef struct VkDisplayPowerInfoEXT {
12850     VkStructureType           sType;
12851     const void*               pNext;
12852     VkDisplayPowerStateEXT    powerState;
12853 } VkDisplayPowerInfoEXT;
12854 
12855 typedef struct VkDeviceEventInfoEXT {
12856     VkStructureType         sType;
12857     const void*             pNext;
12858     VkDeviceEventTypeEXT    deviceEvent;
12859 } VkDeviceEventInfoEXT;
12860 
12861 typedef struct VkDisplayEventInfoEXT {
12862     VkStructureType          sType;
12863     const void*              pNext;
12864     VkDisplayEventTypeEXT    displayEvent;
12865 } VkDisplayEventInfoEXT;
12866 
12867 typedef struct VkSwapchainCounterCreateInfoEXT {
12868     VkStructureType             sType;
12869     const void*                 pNext;
12870     VkSurfaceCounterFlagsEXT    surfaceCounters;
12871 } VkSwapchainCounterCreateInfoEXT;
12872 
12873 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
12874 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
12875 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
12876 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
12877 
12878 #ifndef VK_NO_PROTOTYPES
12879 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
12880     VkDevice                                    device,
12881     VkDisplayKHR                                display,
12882     const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
12883 
12884 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
12885     VkDevice                                    device,
12886     const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
12887     const VkAllocationCallbacks*                pAllocator,
12888     VkFence*                                    pFence);
12889 
12890 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
12891     VkDevice                                    device,
12892     VkDisplayKHR                                display,
12893     const VkDisplayEventInfoEXT*                pDisplayEventInfo,
12894     const VkAllocationCallbacks*                pAllocator,
12895     VkFence*                                    pFence);
12896 
12897 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
12898     VkDevice                                    device,
12899     VkSwapchainKHR                              swapchain,
12900     VkSurfaceCounterFlagBitsEXT                 counter,
12901     uint64_t*                                   pCounterValue);
12902 #endif
12903 
12904 
12905 // VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
12906 #define VK_GOOGLE_display_timing 1
12907 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
12908 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
12909 typedef struct VkRefreshCycleDurationGOOGLE {
12910     uint64_t    refreshDuration;
12911 } VkRefreshCycleDurationGOOGLE;
12912 
12913 typedef struct VkPastPresentationTimingGOOGLE {
12914     uint32_t    presentID;
12915     uint64_t    desiredPresentTime;
12916     uint64_t    actualPresentTime;
12917     uint64_t    earliestPresentTime;
12918     uint64_t    presentMargin;
12919 } VkPastPresentationTimingGOOGLE;
12920 
12921 typedef struct VkPresentTimeGOOGLE {
12922     uint32_t    presentID;
12923     uint64_t    desiredPresentTime;
12924 } VkPresentTimeGOOGLE;
12925 
12926 typedef struct VkPresentTimesInfoGOOGLE {
12927     VkStructureType               sType;
12928     const void*                   pNext;
12929     uint32_t                      swapchainCount;
12930     const VkPresentTimeGOOGLE*    pTimes;
12931 } VkPresentTimesInfoGOOGLE;
12932 
12933 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
12934 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
12935 
12936 #ifndef VK_NO_PROTOTYPES
12937 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
12938     VkDevice                                    device,
12939     VkSwapchainKHR                              swapchain,
12940     VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
12941 
12942 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
12943     VkDevice                                    device,
12944     VkSwapchainKHR                              swapchain,
12945     uint32_t*                                   pPresentationTimingCount,
12946     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
12947 #endif
12948 
12949 
12950 // VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
12951 #define VK_NV_sample_mask_override_coverage 1
12952 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
12953 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
12954 
12955 
12956 // VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
12957 #define VK_NV_geometry_shader_passthrough 1
12958 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
12959 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
12960 
12961 
12962 // VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
12963 #define VK_NV_viewport_array2 1
12964 #define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
12965 #define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
12966 // VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION is a deprecated alias
12967 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
12968 // VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME is a deprecated alias
12969 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
12970 
12971 
12972 // VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
12973 #define VK_NVX_multiview_per_view_attributes 1
12974 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
12975 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
12976 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
12977     VkStructureType    sType;
12978     void*              pNext;
12979     VkBool32           perViewPositionAllComponents;
12980 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
12981 
12982 
12983 
12984 // VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
12985 #define VK_NV_viewport_swizzle 1
12986 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
12987 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
12988 
12989 typedef enum VkViewportCoordinateSwizzleNV {
12990     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
12991     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
12992     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
12993     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
12994     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
12995     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
12996     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
12997     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
12998     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
12999 } VkViewportCoordinateSwizzleNV;
13000 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
13001 typedef struct VkViewportSwizzleNV {
13002     VkViewportCoordinateSwizzleNV    x;
13003     VkViewportCoordinateSwizzleNV    y;
13004     VkViewportCoordinateSwizzleNV    z;
13005     VkViewportCoordinateSwizzleNV    w;
13006 } VkViewportSwizzleNV;
13007 
13008 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
13009     VkStructureType                                sType;
13010     const void*                                    pNext;
13011     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
13012     uint32_t                                       viewportCount;
13013     const VkViewportSwizzleNV*                     pViewportSwizzles;
13014 } VkPipelineViewportSwizzleStateCreateInfoNV;
13015 
13016 
13017 
13018 // VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
13019 #define VK_EXT_discard_rectangles 1
13020 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
13021 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
13022 
13023 typedef enum VkDiscardRectangleModeEXT {
13024     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
13025     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
13026     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
13027 } VkDiscardRectangleModeEXT;
13028 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
13029 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
13030     VkStructureType    sType;
13031     void*              pNext;
13032     uint32_t           maxDiscardRectangles;
13033 } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
13034 
13035 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
13036     VkStructureType                                  sType;
13037     const void*                                      pNext;
13038     VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
13039     VkDiscardRectangleModeEXT                        discardRectangleMode;
13040     uint32_t                                         discardRectangleCount;
13041     const VkRect2D*                                  pDiscardRectangles;
13042 } VkPipelineDiscardRectangleStateCreateInfoEXT;
13043 
13044 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
13045 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
13046 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
13047 
13048 #ifndef VK_NO_PROTOTYPES
13049 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
13050     VkCommandBuffer                             commandBuffer,
13051     uint32_t                                    firstDiscardRectangle,
13052     uint32_t                                    discardRectangleCount,
13053     const VkRect2D*                             pDiscardRectangles);
13054 
13055 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
13056     VkCommandBuffer                             commandBuffer,
13057     VkBool32                                    discardRectangleEnable);
13058 
13059 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
13060     VkCommandBuffer                             commandBuffer,
13061     VkDiscardRectangleModeEXT                   discardRectangleMode);
13062 #endif
13063 
13064 
13065 // VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
13066 #define VK_EXT_conservative_rasterization 1
13067 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
13068 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
13069 
13070 typedef enum VkConservativeRasterizationModeEXT {
13071     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
13072     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
13073     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
13074     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
13075 } VkConservativeRasterizationModeEXT;
13076 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
13077 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
13078     VkStructureType    sType;
13079     void*              pNext;
13080     float              primitiveOverestimationSize;
13081     float              maxExtraPrimitiveOverestimationSize;
13082     float              extraPrimitiveOverestimationSizeGranularity;
13083     VkBool32           primitiveUnderestimation;
13084     VkBool32           conservativePointAndLineRasterization;
13085     VkBool32           degenerateTrianglesRasterized;
13086     VkBool32           degenerateLinesRasterized;
13087     VkBool32           fullyCoveredFragmentShaderInputVariable;
13088     VkBool32           conservativeRasterizationPostDepthCoverage;
13089 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
13090 
13091 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
13092     VkStructureType                                           sType;
13093     const void*                                               pNext;
13094     VkPipelineRasterizationConservativeStateCreateFlagsEXT    flags;
13095     VkConservativeRasterizationModeEXT                        conservativeRasterizationMode;
13096     float                                                     extraPrimitiveOverestimationSize;
13097 } VkPipelineRasterizationConservativeStateCreateInfoEXT;
13098 
13099 
13100 
13101 // VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
13102 #define VK_EXT_depth_clip_enable 1
13103 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
13104 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
13105 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
13106 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
13107     VkStructureType    sType;
13108     void*              pNext;
13109     VkBool32           depthClipEnable;
13110 } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
13111 
13112 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
13113     VkStructureType                                        sType;
13114     const void*                                            pNext;
13115     VkPipelineRasterizationDepthClipStateCreateFlagsEXT    flags;
13116     VkBool32                                               depthClipEnable;
13117 } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
13118 
13119 
13120 
13121 // VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
13122 #define VK_EXT_swapchain_colorspace 1
13123 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 5
13124 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
13125 
13126 
13127 // VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
13128 #define VK_EXT_hdr_metadata 1
13129 #define VK_EXT_HDR_METADATA_SPEC_VERSION  3
13130 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
13131 typedef struct VkXYColorEXT {
13132     float    x;
13133     float    y;
13134 } VkXYColorEXT;
13135 
13136 typedef struct VkHdrMetadataEXT {
13137     VkStructureType    sType;
13138     const void*        pNext;
13139     VkXYColorEXT       displayPrimaryRed;
13140     VkXYColorEXT       displayPrimaryGreen;
13141     VkXYColorEXT       displayPrimaryBlue;
13142     VkXYColorEXT       whitePoint;
13143     float              maxLuminance;
13144     float              minLuminance;
13145     float              maxContentLightLevel;
13146     float              maxFrameAverageLightLevel;
13147 } VkHdrMetadataEXT;
13148 
13149 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
13150 
13151 #ifndef VK_NO_PROTOTYPES
13152 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
13153     VkDevice                                    device,
13154     uint32_t                                    swapchainCount,
13155     const VkSwapchainKHR*                       pSwapchains,
13156     const VkHdrMetadataEXT*                     pMetadata);
13157 #endif
13158 
13159 
13160 // VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
13161 #define VK_IMG_relaxed_line_rasterization 1
13162 #define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
13163 #define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
13164 typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
13165     VkStructureType    sType;
13166     void*              pNext;
13167     VkBool32           relaxedLineRasterization;
13168 } VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
13169 
13170 
13171 
13172 // VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
13173 #define VK_EXT_external_memory_dma_buf 1
13174 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
13175 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
13176 
13177 
13178 // VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
13179 #define VK_EXT_queue_family_foreign 1
13180 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
13181 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
13182 #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~2U)
13183 
13184 
13185 // VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
13186 #define VK_EXT_debug_utils 1
13187 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
13188 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   2
13189 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
13190 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
13191 
13192 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
13193     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
13194     VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
13195     VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
13196     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
13197     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13198 } VkDebugUtilsMessageSeverityFlagBitsEXT;
13199 
13200 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
13201     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
13202     VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
13203     VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
13204     VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
13205     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13206 } VkDebugUtilsMessageTypeFlagBitsEXT;
13207 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
13208 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
13209 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
13210 typedef struct VkDebugUtilsLabelEXT {
13211     VkStructureType    sType;
13212     const void*        pNext;
13213     const char*        pLabelName;
13214     float              color[4];
13215 } VkDebugUtilsLabelEXT;
13216 
13217 typedef struct VkDebugUtilsObjectNameInfoEXT {
13218     VkStructureType    sType;
13219     const void*        pNext;
13220     VkObjectType       objectType;
13221     uint64_t           objectHandle;
13222     const char*        pObjectName;
13223 } VkDebugUtilsObjectNameInfoEXT;
13224 
13225 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
13226     VkStructureType                              sType;
13227     const void*                                  pNext;
13228     VkDebugUtilsMessengerCallbackDataFlagsEXT    flags;
13229     const char*                                  pMessageIdName;
13230     int32_t                                      messageIdNumber;
13231     const char*                                  pMessage;
13232     uint32_t                                     queueLabelCount;
13233     const VkDebugUtilsLabelEXT*                  pQueueLabels;
13234     uint32_t                                     cmdBufLabelCount;
13235     const VkDebugUtilsLabelEXT*                  pCmdBufLabels;
13236     uint32_t                                     objectCount;
13237     const VkDebugUtilsObjectNameInfoEXT*         pObjects;
13238 } VkDebugUtilsMessengerCallbackDataEXT;
13239 
13240 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
13241     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
13242     VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,
13243     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
13244     void*                                            pUserData);
13245 
13246 typedef struct VkDebugUtilsMessengerCreateInfoEXT {
13247     VkStructureType                         sType;
13248     const void*                             pNext;
13249     VkDebugUtilsMessengerCreateFlagsEXT     flags;
13250     VkDebugUtilsMessageSeverityFlagsEXT     messageSeverity;
13251     VkDebugUtilsMessageTypeFlagsEXT         messageType;
13252     PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
13253     void*                                   pUserData;
13254 } VkDebugUtilsMessengerCreateInfoEXT;
13255 
13256 typedef struct VkDebugUtilsObjectTagInfoEXT {
13257     VkStructureType    sType;
13258     const void*        pNext;
13259     VkObjectType       objectType;
13260     uint64_t           objectHandle;
13261     uint64_t           tagName;
13262     size_t             tagSize;
13263     const void*        pTag;
13264 } VkDebugUtilsObjectTagInfoEXT;
13265 
13266 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
13267 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
13268 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
13269 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
13270 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
13271 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
13272 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
13273 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
13274 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
13275 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
13276 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
13277 
13278 #ifndef VK_NO_PROTOTYPES
13279 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
13280     VkDevice                                    device,
13281     const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
13282 
13283 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
13284     VkDevice                                    device,
13285     const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
13286 
13287 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
13288     VkQueue                                     queue,
13289     const VkDebugUtilsLabelEXT*                 pLabelInfo);
13290 
13291 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
13292     VkQueue                                     queue);
13293 
13294 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
13295     VkQueue                                     queue,
13296     const VkDebugUtilsLabelEXT*                 pLabelInfo);
13297 
13298 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
13299     VkCommandBuffer                             commandBuffer,
13300     const VkDebugUtilsLabelEXT*                 pLabelInfo);
13301 
13302 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
13303     VkCommandBuffer                             commandBuffer);
13304 
13305 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
13306     VkCommandBuffer                             commandBuffer,
13307     const VkDebugUtilsLabelEXT*                 pLabelInfo);
13308 
13309 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
13310     VkInstance                                  instance,
13311     const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo,
13312     const VkAllocationCallbacks*                pAllocator,
13313     VkDebugUtilsMessengerEXT*                   pMessenger);
13314 
13315 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
13316     VkInstance                                  instance,
13317     VkDebugUtilsMessengerEXT                    messenger,
13318     const VkAllocationCallbacks*                pAllocator);
13319 
13320 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
13321     VkInstance                                  instance,
13322     VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
13323     VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
13324     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
13325 #endif
13326 
13327 
13328 // VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
13329 #define VK_EXT_sampler_filter_minmax 1
13330 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
13331 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
13332 typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
13333 
13334 typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
13335 
13336 typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
13337 
13338 
13339 
13340 // VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
13341 #define VK_AMD_gpu_shader_int16 1
13342 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
13343 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
13344 
13345 
13346 // VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
13347 #define VK_AMD_mixed_attachment_samples 1
13348 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
13349 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
13350 
13351 
13352 // VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
13353 #define VK_AMD_shader_fragment_mask 1
13354 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
13355 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
13356 
13357 
13358 // VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
13359 #define VK_EXT_inline_uniform_block 1
13360 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
13361 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
13362 typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
13363 
13364 typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
13365 
13366 typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
13367 
13368 typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
13369 
13370 
13371 
13372 // VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
13373 #define VK_EXT_shader_stencil_export 1
13374 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
13375 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
13376 
13377 
13378 // VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
13379 #define VK_EXT_sample_locations 1
13380 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
13381 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
13382 typedef struct VkSampleLocationEXT {
13383     float    x;
13384     float    y;
13385 } VkSampleLocationEXT;
13386 
13387 typedef struct VkSampleLocationsInfoEXT {
13388     VkStructureType               sType;
13389     const void*                   pNext;
13390     VkSampleCountFlagBits         sampleLocationsPerPixel;
13391     VkExtent2D                    sampleLocationGridSize;
13392     uint32_t                      sampleLocationsCount;
13393     const VkSampleLocationEXT*    pSampleLocations;
13394 } VkSampleLocationsInfoEXT;
13395 
13396 typedef struct VkAttachmentSampleLocationsEXT {
13397     uint32_t                    attachmentIndex;
13398     VkSampleLocationsInfoEXT    sampleLocationsInfo;
13399 } VkAttachmentSampleLocationsEXT;
13400 
13401 typedef struct VkSubpassSampleLocationsEXT {
13402     uint32_t                    subpassIndex;
13403     VkSampleLocationsInfoEXT    sampleLocationsInfo;
13404 } VkSubpassSampleLocationsEXT;
13405 
13406 typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
13407     VkStructureType                          sType;
13408     const void*                              pNext;
13409     uint32_t                                 attachmentInitialSampleLocationsCount;
13410     const VkAttachmentSampleLocationsEXT*    pAttachmentInitialSampleLocations;
13411     uint32_t                                 postSubpassSampleLocationsCount;
13412     const VkSubpassSampleLocationsEXT*       pPostSubpassSampleLocations;
13413 } VkRenderPassSampleLocationsBeginInfoEXT;
13414 
13415 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
13416     VkStructureType             sType;
13417     const void*                 pNext;
13418     VkBool32                    sampleLocationsEnable;
13419     VkSampleLocationsInfoEXT    sampleLocationsInfo;
13420 } VkPipelineSampleLocationsStateCreateInfoEXT;
13421 
13422 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
13423     VkStructureType       sType;
13424     void*                 pNext;
13425     VkSampleCountFlags    sampleLocationSampleCounts;
13426     VkExtent2D            maxSampleLocationGridSize;
13427     float                 sampleLocationCoordinateRange[2];
13428     uint32_t              sampleLocationSubPixelBits;
13429     VkBool32              variableSampleLocations;
13430 } VkPhysicalDeviceSampleLocationsPropertiesEXT;
13431 
13432 typedef struct VkMultisamplePropertiesEXT {
13433     VkStructureType    sType;
13434     void*              pNext;
13435     VkExtent2D         maxSampleLocationGridSize;
13436 } VkMultisamplePropertiesEXT;
13437 
13438 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
13439 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
13440 
13441 #ifndef VK_NO_PROTOTYPES
13442 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
13443     VkCommandBuffer                             commandBuffer,
13444     const VkSampleLocationsInfoEXT*             pSampleLocationsInfo);
13445 
13446 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
13447     VkPhysicalDevice                            physicalDevice,
13448     VkSampleCountFlagBits                       samples,
13449     VkMultisamplePropertiesEXT*                 pMultisampleProperties);
13450 #endif
13451 
13452 
13453 // VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
13454 #define VK_EXT_blend_operation_advanced 1
13455 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
13456 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
13457 
13458 typedef enum VkBlendOverlapEXT {
13459     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
13460     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
13461     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
13462     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
13463 } VkBlendOverlapEXT;
13464 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
13465     VkStructureType    sType;
13466     void*              pNext;
13467     VkBool32           advancedBlendCoherentOperations;
13468 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
13469 
13470 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
13471     VkStructureType    sType;
13472     void*              pNext;
13473     uint32_t           advancedBlendMaxColorAttachments;
13474     VkBool32           advancedBlendIndependentBlend;
13475     VkBool32           advancedBlendNonPremultipliedSrcColor;
13476     VkBool32           advancedBlendNonPremultipliedDstColor;
13477     VkBool32           advancedBlendCorrelatedOverlap;
13478     VkBool32           advancedBlendAllOperations;
13479 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
13480 
13481 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
13482     VkStructureType      sType;
13483     const void*          pNext;
13484     VkBool32             srcPremultiplied;
13485     VkBool32             dstPremultiplied;
13486     VkBlendOverlapEXT    blendOverlap;
13487 } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
13488 
13489 
13490 
13491 // VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
13492 #define VK_NV_fragment_coverage_to_color 1
13493 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
13494 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
13495 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
13496 typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
13497     VkStructureType                                sType;
13498     const void*                                    pNext;
13499     VkPipelineCoverageToColorStateCreateFlagsNV    flags;
13500     VkBool32                                       coverageToColorEnable;
13501     uint32_t                                       coverageToColorLocation;
13502 } VkPipelineCoverageToColorStateCreateInfoNV;
13503 
13504 
13505 
13506 // VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
13507 #define VK_NV_framebuffer_mixed_samples 1
13508 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
13509 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
13510 
13511 typedef enum VkCoverageModulationModeNV {
13512     VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
13513     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
13514     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
13515     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
13516     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
13517 } VkCoverageModulationModeNV;
13518 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
13519 typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
13520     VkStructureType                                   sType;
13521     const void*                                       pNext;
13522     VkPipelineCoverageModulationStateCreateFlagsNV    flags;
13523     VkCoverageModulationModeNV                        coverageModulationMode;
13524     VkBool32                                          coverageModulationTableEnable;
13525     uint32_t                                          coverageModulationTableCount;
13526     const float*                                      pCoverageModulationTable;
13527 } VkPipelineCoverageModulationStateCreateInfoNV;
13528 
13529 
13530 
13531 // VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
13532 #define VK_NV_fill_rectangle 1
13533 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
13534 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
13535 
13536 
13537 // VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
13538 #define VK_NV_shader_sm_builtins 1
13539 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
13540 #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
13541 typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
13542     VkStructureType    sType;
13543     void*              pNext;
13544     uint32_t           shaderSMCount;
13545     uint32_t           shaderWarpsPerSM;
13546 } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
13547 
13548 typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
13549     VkStructureType    sType;
13550     void*              pNext;
13551     VkBool32           shaderSMBuiltins;
13552 } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
13553 
13554 
13555 
13556 // VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
13557 #define VK_EXT_post_depth_coverage 1
13558 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
13559 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
13560 
13561 
13562 // VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
13563 #define VK_EXT_image_drm_format_modifier 1
13564 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
13565 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
13566 typedef struct VkDrmFormatModifierPropertiesEXT {
13567     uint64_t                drmFormatModifier;
13568     uint32_t                drmFormatModifierPlaneCount;
13569     VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
13570 } VkDrmFormatModifierPropertiesEXT;
13571 
13572 typedef struct VkDrmFormatModifierPropertiesListEXT {
13573     VkStructureType                      sType;
13574     void*                                pNext;
13575     uint32_t                             drmFormatModifierCount;
13576     VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties;
13577 } VkDrmFormatModifierPropertiesListEXT;
13578 
13579 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
13580     VkStructureType    sType;
13581     const void*        pNext;
13582     uint64_t           drmFormatModifier;
13583     VkSharingMode      sharingMode;
13584     uint32_t           queueFamilyIndexCount;
13585     const uint32_t*    pQueueFamilyIndices;
13586 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
13587 
13588 typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
13589     VkStructureType    sType;
13590     const void*        pNext;
13591     uint32_t           drmFormatModifierCount;
13592     const uint64_t*    pDrmFormatModifiers;
13593 } VkImageDrmFormatModifierListCreateInfoEXT;
13594 
13595 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
13596     VkStructureType               sType;
13597     const void*                   pNext;
13598     uint64_t                      drmFormatModifier;
13599     uint32_t                      drmFormatModifierPlaneCount;
13600     const VkSubresourceLayout*    pPlaneLayouts;
13601 } VkImageDrmFormatModifierExplicitCreateInfoEXT;
13602 
13603 typedef struct VkImageDrmFormatModifierPropertiesEXT {
13604     VkStructureType    sType;
13605     void*              pNext;
13606     uint64_t           drmFormatModifier;
13607 } VkImageDrmFormatModifierPropertiesEXT;
13608 
13609 typedef struct VkDrmFormatModifierProperties2EXT {
13610     uint64_t                 drmFormatModifier;
13611     uint32_t                 drmFormatModifierPlaneCount;
13612     VkFormatFeatureFlags2    drmFormatModifierTilingFeatures;
13613 } VkDrmFormatModifierProperties2EXT;
13614 
13615 typedef struct VkDrmFormatModifierPropertiesList2EXT {
13616     VkStructureType                       sType;
13617     void*                                 pNext;
13618     uint32_t                              drmFormatModifierCount;
13619     VkDrmFormatModifierProperties2EXT*    pDrmFormatModifierProperties;
13620 } VkDrmFormatModifierPropertiesList2EXT;
13621 
13622 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
13623 
13624 #ifndef VK_NO_PROTOTYPES
13625 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
13626     VkDevice                                    device,
13627     VkImage                                     image,
13628     VkImageDrmFormatModifierPropertiesEXT*      pProperties);
13629 #endif
13630 
13631 
13632 // VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
13633 #define VK_EXT_validation_cache 1
13634 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
13635 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
13636 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
13637 
13638 typedef enum VkValidationCacheHeaderVersionEXT {
13639     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
13640     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
13641 } VkValidationCacheHeaderVersionEXT;
13642 typedef VkFlags VkValidationCacheCreateFlagsEXT;
13643 typedef struct VkValidationCacheCreateInfoEXT {
13644     VkStructureType                    sType;
13645     const void*                        pNext;
13646     VkValidationCacheCreateFlagsEXT    flags;
13647     size_t                             initialDataSize;
13648     const void*                        pInitialData;
13649 } VkValidationCacheCreateInfoEXT;
13650 
13651 typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
13652     VkStructureType         sType;
13653     const void*             pNext;
13654     VkValidationCacheEXT    validationCache;
13655 } VkShaderModuleValidationCacheCreateInfoEXT;
13656 
13657 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
13658 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
13659 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
13660 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
13661 
13662 #ifndef VK_NO_PROTOTYPES
13663 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
13664     VkDevice                                    device,
13665     const VkValidationCacheCreateInfoEXT*       pCreateInfo,
13666     const VkAllocationCallbacks*                pAllocator,
13667     VkValidationCacheEXT*                       pValidationCache);
13668 
13669 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
13670     VkDevice                                    device,
13671     VkValidationCacheEXT                        validationCache,
13672     const VkAllocationCallbacks*                pAllocator);
13673 
13674 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
13675     VkDevice                                    device,
13676     VkValidationCacheEXT                        dstCache,
13677     uint32_t                                    srcCacheCount,
13678     const VkValidationCacheEXT*                 pSrcCaches);
13679 
13680 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
13681     VkDevice                                    device,
13682     VkValidationCacheEXT                        validationCache,
13683     size_t*                                     pDataSize,
13684     void*                                       pData);
13685 #endif
13686 
13687 
13688 // VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
13689 #define VK_EXT_descriptor_indexing 1
13690 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
13691 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
13692 typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
13693 
13694 typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
13695 
13696 typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
13697 
13698 typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
13699 
13700 typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
13701 
13702 typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
13703 
13704 typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
13705 
13706 
13707 
13708 // VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
13709 #define VK_EXT_shader_viewport_index_layer 1
13710 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
13711 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
13712 
13713 
13714 // VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
13715 #define VK_NV_shading_rate_image 1
13716 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
13717 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
13718 
13719 typedef enum VkShadingRatePaletteEntryNV {
13720     VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
13721     VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
13722     VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
13723     VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
13724     VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
13725     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
13726     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
13727     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
13728     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
13729     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
13730     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
13731     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
13732     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
13733 } VkShadingRatePaletteEntryNV;
13734 
13735 typedef enum VkCoarseSampleOrderTypeNV {
13736     VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
13737     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
13738     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
13739     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
13740     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
13741 } VkCoarseSampleOrderTypeNV;
13742 typedef struct VkShadingRatePaletteNV {
13743     uint32_t                              shadingRatePaletteEntryCount;
13744     const VkShadingRatePaletteEntryNV*    pShadingRatePaletteEntries;
13745 } VkShadingRatePaletteNV;
13746 
13747 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
13748     VkStructureType                  sType;
13749     const void*                      pNext;
13750     VkBool32                         shadingRateImageEnable;
13751     uint32_t                         viewportCount;
13752     const VkShadingRatePaletteNV*    pShadingRatePalettes;
13753 } VkPipelineViewportShadingRateImageStateCreateInfoNV;
13754 
13755 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
13756     VkStructureType    sType;
13757     void*              pNext;
13758     VkBool32           shadingRateImage;
13759     VkBool32           shadingRateCoarseSampleOrder;
13760 } VkPhysicalDeviceShadingRateImageFeaturesNV;
13761 
13762 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
13763     VkStructureType    sType;
13764     void*              pNext;
13765     VkExtent2D         shadingRateTexelSize;
13766     uint32_t           shadingRatePaletteSize;
13767     uint32_t           shadingRateMaxCoarseSamples;
13768 } VkPhysicalDeviceShadingRateImagePropertiesNV;
13769 
13770 typedef struct VkCoarseSampleLocationNV {
13771     uint32_t    pixelX;
13772     uint32_t    pixelY;
13773     uint32_t    sample;
13774 } VkCoarseSampleLocationNV;
13775 
13776 typedef struct VkCoarseSampleOrderCustomNV {
13777     VkShadingRatePaletteEntryNV        shadingRate;
13778     uint32_t                           sampleCount;
13779     uint32_t                           sampleLocationCount;
13780     const VkCoarseSampleLocationNV*    pSampleLocations;
13781 } VkCoarseSampleOrderCustomNV;
13782 
13783 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
13784     VkStructureType                       sType;
13785     const void*                           pNext;
13786     VkCoarseSampleOrderTypeNV             sampleOrderType;
13787     uint32_t                              customSampleOrderCount;
13788     const VkCoarseSampleOrderCustomNV*    pCustomSampleOrders;
13789 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
13790 
13791 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
13792 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
13793 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
13794 
13795 #ifndef VK_NO_PROTOTYPES
13796 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
13797     VkCommandBuffer                             commandBuffer,
13798     VkImageView                                 imageView,
13799     VkImageLayout                               imageLayout);
13800 
13801 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
13802     VkCommandBuffer                             commandBuffer,
13803     uint32_t                                    firstViewport,
13804     uint32_t                                    viewportCount,
13805     const VkShadingRatePaletteNV*               pShadingRatePalettes);
13806 
13807 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
13808     VkCommandBuffer                             commandBuffer,
13809     VkCoarseSampleOrderTypeNV                   sampleOrderType,
13810     uint32_t                                    customSampleOrderCount,
13811     const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders);
13812 #endif
13813 
13814 
13815 // VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
13816 #define VK_NV_ray_tracing 1
13817 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
13818 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
13819 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
13820 #define VK_SHADER_UNUSED_KHR              (~0U)
13821 #define VK_SHADER_UNUSED_NV               VK_SHADER_UNUSED_KHR
13822 
13823 typedef enum VkRayTracingShaderGroupTypeKHR {
13824     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
13825     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
13826     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
13827     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
13828     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
13829     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
13830     VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
13831 } VkRayTracingShaderGroupTypeKHR;
13832 typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
13833 
13834 
13835 typedef enum VkGeometryTypeKHR {
13836     VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
13837     VK_GEOMETRY_TYPE_AABBS_KHR = 1,
13838     VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
13839     VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
13840     VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
13841     VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
13842 } VkGeometryTypeKHR;
13843 typedef VkGeometryTypeKHR VkGeometryTypeNV;
13844 
13845 
13846 typedef enum VkAccelerationStructureTypeKHR {
13847     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
13848     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
13849     VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
13850     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
13851     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
13852     VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
13853 } VkAccelerationStructureTypeKHR;
13854 typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
13855 
13856 
13857 typedef enum VkCopyAccelerationStructureModeKHR {
13858     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
13859     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
13860     VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
13861     VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
13862     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
13863     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
13864     VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
13865 } VkCopyAccelerationStructureModeKHR;
13866 typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
13867 
13868 
13869 typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
13870     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
13871     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
13872     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
13873     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
13874 } VkAccelerationStructureMemoryRequirementsTypeNV;
13875 
13876 typedef enum VkGeometryFlagBitsKHR {
13877     VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
13878     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
13879     VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
13880     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
13881     VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13882 } VkGeometryFlagBitsKHR;
13883 typedef VkFlags VkGeometryFlagsKHR;
13884 typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
13885 
13886 typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
13887 
13888 
13889 typedef enum VkGeometryInstanceFlagBitsKHR {
13890     VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
13891     VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
13892     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
13893     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
13894     VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0x00000010,
13895     VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000020,
13896     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
13897     VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
13898     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
13899     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
13900     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
13901     VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13902 } VkGeometryInstanceFlagBitsKHR;
13903 typedef VkFlags VkGeometryInstanceFlagsKHR;
13904 typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
13905 
13906 typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
13907 
13908 
13909 typedef enum VkBuildAccelerationStructureFlagBitsKHR {
13910     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
13911     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
13912     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
13913     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
13914     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
13915     VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
13916     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x00000040,
13917     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000080,
13918     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x00000100,
13919 #ifdef VK_ENABLE_BETA_EXTENSIONS
13920     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = 0x00000200,
13921 #endif
13922     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = 0x00000800,
13923     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
13924     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
13925     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
13926     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
13927     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
13928     VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13929 } VkBuildAccelerationStructureFlagBitsKHR;
13930 typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
13931 typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
13932 
13933 typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
13934 
13935 typedef struct VkRayTracingShaderGroupCreateInfoNV {
13936     VkStructureType                   sType;
13937     const void*                       pNext;
13938     VkRayTracingShaderGroupTypeKHR    type;
13939     uint32_t                          generalShader;
13940     uint32_t                          closestHitShader;
13941     uint32_t                          anyHitShader;
13942     uint32_t                          intersectionShader;
13943 } VkRayTracingShaderGroupCreateInfoNV;
13944 
13945 typedef struct VkRayTracingPipelineCreateInfoNV {
13946     VkStructureType                               sType;
13947     const void*                                   pNext;
13948     VkPipelineCreateFlags                         flags;
13949     uint32_t                                      stageCount;
13950     const VkPipelineShaderStageCreateInfo*        pStages;
13951     uint32_t                                      groupCount;
13952     const VkRayTracingShaderGroupCreateInfoNV*    pGroups;
13953     uint32_t                                      maxRecursionDepth;
13954     VkPipelineLayout                              layout;
13955     VkPipeline                                    basePipelineHandle;
13956     int32_t                                       basePipelineIndex;
13957 } VkRayTracingPipelineCreateInfoNV;
13958 
13959 typedef struct VkGeometryTrianglesNV {
13960     VkStructureType    sType;
13961     const void*        pNext;
13962     VkBuffer           vertexData;
13963     VkDeviceSize       vertexOffset;
13964     uint32_t           vertexCount;
13965     VkDeviceSize       vertexStride;
13966     VkFormat           vertexFormat;
13967     VkBuffer           indexData;
13968     VkDeviceSize       indexOffset;
13969     uint32_t           indexCount;
13970     VkIndexType        indexType;
13971     VkBuffer           transformData;
13972     VkDeviceSize       transformOffset;
13973 } VkGeometryTrianglesNV;
13974 
13975 typedef struct VkGeometryAABBNV {
13976     VkStructureType    sType;
13977     const void*        pNext;
13978     VkBuffer           aabbData;
13979     uint32_t           numAABBs;
13980     uint32_t           stride;
13981     VkDeviceSize       offset;
13982 } VkGeometryAABBNV;
13983 
13984 typedef struct VkGeometryDataNV {
13985     VkGeometryTrianglesNV    triangles;
13986     VkGeometryAABBNV         aabbs;
13987 } VkGeometryDataNV;
13988 
13989 typedef struct VkGeometryNV {
13990     VkStructureType       sType;
13991     const void*           pNext;
13992     VkGeometryTypeKHR     geometryType;
13993     VkGeometryDataNV      geometry;
13994     VkGeometryFlagsKHR    flags;
13995 } VkGeometryNV;
13996 
13997 typedef struct VkAccelerationStructureInfoNV {
13998     VkStructureType                        sType;
13999     const void*                            pNext;
14000     VkAccelerationStructureTypeNV          type;
14001     VkBuildAccelerationStructureFlagsNV    flags;
14002     uint32_t                               instanceCount;
14003     uint32_t                               geometryCount;
14004     const VkGeometryNV*                    pGeometries;
14005 } VkAccelerationStructureInfoNV;
14006 
14007 typedef struct VkAccelerationStructureCreateInfoNV {
14008     VkStructureType                  sType;
14009     const void*                      pNext;
14010     VkDeviceSize                     compactedSize;
14011     VkAccelerationStructureInfoNV    info;
14012 } VkAccelerationStructureCreateInfoNV;
14013 
14014 typedef struct VkBindAccelerationStructureMemoryInfoNV {
14015     VkStructureType              sType;
14016     const void*                  pNext;
14017     VkAccelerationStructureNV    accelerationStructure;
14018     VkDeviceMemory               memory;
14019     VkDeviceSize                 memoryOffset;
14020     uint32_t                     deviceIndexCount;
14021     const uint32_t*              pDeviceIndices;
14022 } VkBindAccelerationStructureMemoryInfoNV;
14023 
14024 typedef struct VkWriteDescriptorSetAccelerationStructureNV {
14025     VkStructureType                     sType;
14026     const void*                         pNext;
14027     uint32_t                            accelerationStructureCount;
14028     const VkAccelerationStructureNV*    pAccelerationStructures;
14029 } VkWriteDescriptorSetAccelerationStructureNV;
14030 
14031 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
14032     VkStructureType                                    sType;
14033     const void*                                        pNext;
14034     VkAccelerationStructureMemoryRequirementsTypeNV    type;
14035     VkAccelerationStructureNV                          accelerationStructure;
14036 } VkAccelerationStructureMemoryRequirementsInfoNV;
14037 
14038 typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
14039     VkStructureType    sType;
14040     void*              pNext;
14041     uint32_t           shaderGroupHandleSize;
14042     uint32_t           maxRecursionDepth;
14043     uint32_t           maxShaderGroupStride;
14044     uint32_t           shaderGroupBaseAlignment;
14045     uint64_t           maxGeometryCount;
14046     uint64_t           maxInstanceCount;
14047     uint64_t           maxTriangleCount;
14048     uint32_t           maxDescriptorSetAccelerationStructures;
14049 } VkPhysicalDeviceRayTracingPropertiesNV;
14050 
14051 typedef struct VkTransformMatrixKHR {
14052     float    matrix[3][4];
14053 } VkTransformMatrixKHR;
14054 
14055 typedef VkTransformMatrixKHR VkTransformMatrixNV;
14056 
14057 typedef struct VkAabbPositionsKHR {
14058     float    minX;
14059     float    minY;
14060     float    minZ;
14061     float    maxX;
14062     float    maxY;
14063     float    maxZ;
14064 } VkAabbPositionsKHR;
14065 
14066 typedef VkAabbPositionsKHR VkAabbPositionsNV;
14067 
14068 typedef struct VkAccelerationStructureInstanceKHR {
14069     VkTransformMatrixKHR          transform;
14070     uint32_t                      instanceCustomIndex:24;
14071     uint32_t                      mask:8;
14072     uint32_t                      instanceShaderBindingTableRecordOffset:24;
14073     VkGeometryInstanceFlagsKHR    flags:8;
14074     uint64_t                      accelerationStructureReference;
14075 } VkAccelerationStructureInstanceKHR;
14076 
14077 typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
14078 
14079 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
14080 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
14081 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
14082 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
14083 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);
14084 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
14085 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);
14086 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
14087 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
14088 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
14089 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
14090 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
14091 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
14092 
14093 #ifndef VK_NO_PROTOTYPES
14094 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
14095     VkDevice                                    device,
14096     const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
14097     const VkAllocationCallbacks*                pAllocator,
14098     VkAccelerationStructureNV*                  pAccelerationStructure);
14099 
14100 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
14101     VkDevice                                    device,
14102     VkAccelerationStructureNV                   accelerationStructure,
14103     const VkAllocationCallbacks*                pAllocator);
14104 
14105 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
14106     VkDevice                                    device,
14107     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
14108     VkMemoryRequirements2KHR*                   pMemoryRequirements);
14109 
14110 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
14111     VkDevice                                    device,
14112     uint32_t                                    bindInfoCount,
14113     const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
14114 
14115 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
14116     VkCommandBuffer                             commandBuffer,
14117     const VkAccelerationStructureInfoNV*        pInfo,
14118     VkBuffer                                    instanceData,
14119     VkDeviceSize                                instanceOffset,
14120     VkBool32                                    update,
14121     VkAccelerationStructureNV                   dst,
14122     VkAccelerationStructureNV                   src,
14123     VkBuffer                                    scratch,
14124     VkDeviceSize                                scratchOffset);
14125 
14126 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
14127     VkCommandBuffer                             commandBuffer,
14128     VkAccelerationStructureNV                   dst,
14129     VkAccelerationStructureNV                   src,
14130     VkCopyAccelerationStructureModeKHR          mode);
14131 
14132 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
14133     VkCommandBuffer                             commandBuffer,
14134     VkBuffer                                    raygenShaderBindingTableBuffer,
14135     VkDeviceSize                                raygenShaderBindingOffset,
14136     VkBuffer                                    missShaderBindingTableBuffer,
14137     VkDeviceSize                                missShaderBindingOffset,
14138     VkDeviceSize                                missShaderBindingStride,
14139     VkBuffer                                    hitShaderBindingTableBuffer,
14140     VkDeviceSize                                hitShaderBindingOffset,
14141     VkDeviceSize                                hitShaderBindingStride,
14142     VkBuffer                                    callableShaderBindingTableBuffer,
14143     VkDeviceSize                                callableShaderBindingOffset,
14144     VkDeviceSize                                callableShaderBindingStride,
14145     uint32_t                                    width,
14146     uint32_t                                    height,
14147     uint32_t                                    depth);
14148 
14149 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
14150     VkDevice                                    device,
14151     VkPipelineCache                             pipelineCache,
14152     uint32_t                                    createInfoCount,
14153     const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
14154     const VkAllocationCallbacks*                pAllocator,
14155     VkPipeline*                                 pPipelines);
14156 
14157 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
14158     VkDevice                                    device,
14159     VkPipeline                                  pipeline,
14160     uint32_t                                    firstGroup,
14161     uint32_t                                    groupCount,
14162     size_t                                      dataSize,
14163     void*                                       pData);
14164 
14165 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
14166     VkDevice                                    device,
14167     VkPipeline                                  pipeline,
14168     uint32_t                                    firstGroup,
14169     uint32_t                                    groupCount,
14170     size_t                                      dataSize,
14171     void*                                       pData);
14172 
14173 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
14174     VkDevice                                    device,
14175     VkAccelerationStructureNV                   accelerationStructure,
14176     size_t                                      dataSize,
14177     void*                                       pData);
14178 
14179 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
14180     VkCommandBuffer                             commandBuffer,
14181     uint32_t                                    accelerationStructureCount,
14182     const VkAccelerationStructureNV*            pAccelerationStructures,
14183     VkQueryType                                 queryType,
14184     VkQueryPool                                 queryPool,
14185     uint32_t                                    firstQuery);
14186 
14187 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
14188     VkDevice                                    device,
14189     VkPipeline                                  pipeline,
14190     uint32_t                                    shader);
14191 #endif
14192 
14193 
14194 // VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
14195 #define VK_NV_representative_fragment_test 1
14196 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
14197 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
14198 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
14199     VkStructureType    sType;
14200     void*              pNext;
14201     VkBool32           representativeFragmentTest;
14202 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
14203 
14204 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
14205     VkStructureType    sType;
14206     const void*        pNext;
14207     VkBool32           representativeFragmentTestEnable;
14208 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
14209 
14210 
14211 
14212 // VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
14213 #define VK_EXT_filter_cubic 1
14214 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION  3
14215 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
14216 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
14217     VkStructureType    sType;
14218     void*              pNext;
14219     VkImageViewType    imageViewType;
14220 } VkPhysicalDeviceImageViewImageFormatInfoEXT;
14221 
14222 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
14223     VkStructureType    sType;
14224     void*              pNext;
14225     VkBool32           filterCubic;
14226     VkBool32           filterCubicMinmax;
14227 } VkFilterCubicImageViewImageFormatPropertiesEXT;
14228 
14229 
14230 
14231 // VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
14232 #define VK_QCOM_render_pass_shader_resolve 1
14233 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
14234 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
14235 
14236 
14237 // VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
14238 #define VK_EXT_global_priority 1
14239 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
14240 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
14241 typedef VkQueueGlobalPriorityKHR VkQueueGlobalPriorityEXT;
14242 
14243 typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT;
14244 
14245 
14246 
14247 // VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
14248 #define VK_EXT_external_memory_host 1
14249 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
14250 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
14251 typedef struct VkImportMemoryHostPointerInfoEXT {
14252     VkStructureType                       sType;
14253     const void*                           pNext;
14254     VkExternalMemoryHandleTypeFlagBits    handleType;
14255     void*                                 pHostPointer;
14256 } VkImportMemoryHostPointerInfoEXT;
14257 
14258 typedef struct VkMemoryHostPointerPropertiesEXT {
14259     VkStructureType    sType;
14260     void*              pNext;
14261     uint32_t           memoryTypeBits;
14262 } VkMemoryHostPointerPropertiesEXT;
14263 
14264 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
14265     VkStructureType    sType;
14266     void*              pNext;
14267     VkDeviceSize       minImportedHostPointerAlignment;
14268 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
14269 
14270 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
14271 
14272 #ifndef VK_NO_PROTOTYPES
14273 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
14274     VkDevice                                    device,
14275     VkExternalMemoryHandleTypeFlagBits          handleType,
14276     const void*                                 pHostPointer,
14277     VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties);
14278 #endif
14279 
14280 
14281 // VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
14282 #define VK_AMD_buffer_marker 1
14283 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
14284 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
14285 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
14286 
14287 #ifndef VK_NO_PROTOTYPES
14288 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
14289     VkCommandBuffer                             commandBuffer,
14290     VkPipelineStageFlagBits                     pipelineStage,
14291     VkBuffer                                    dstBuffer,
14292     VkDeviceSize                                dstOffset,
14293     uint32_t                                    marker);
14294 #endif
14295 
14296 
14297 // VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
14298 #define VK_AMD_pipeline_compiler_control 1
14299 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
14300 #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
14301 
14302 typedef enum VkPipelineCompilerControlFlagBitsAMD {
14303     VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
14304 } VkPipelineCompilerControlFlagBitsAMD;
14305 typedef VkFlags VkPipelineCompilerControlFlagsAMD;
14306 typedef struct VkPipelineCompilerControlCreateInfoAMD {
14307     VkStructureType                      sType;
14308     const void*                          pNext;
14309     VkPipelineCompilerControlFlagsAMD    compilerControlFlags;
14310 } VkPipelineCompilerControlCreateInfoAMD;
14311 
14312 
14313 
14314 // VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
14315 #define VK_EXT_calibrated_timestamps 1
14316 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
14317 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
14318 typedef VkTimeDomainKHR VkTimeDomainEXT;
14319 
14320 typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
14321 
14322 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
14323 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
14324 
14325 #ifndef VK_NO_PROTOTYPES
14326 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
14327     VkPhysicalDevice                            physicalDevice,
14328     uint32_t*                                   pTimeDomainCount,
14329     VkTimeDomainKHR*                            pTimeDomains);
14330 
14331 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
14332     VkDevice                                    device,
14333     uint32_t                                    timestampCount,
14334     const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
14335     uint64_t*                                   pTimestamps,
14336     uint64_t*                                   pMaxDeviation);
14337 #endif
14338 
14339 
14340 // VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
14341 #define VK_AMD_shader_core_properties 1
14342 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
14343 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
14344 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
14345     VkStructureType    sType;
14346     void*              pNext;
14347     uint32_t           shaderEngineCount;
14348     uint32_t           shaderArraysPerEngineCount;
14349     uint32_t           computeUnitsPerShaderArray;
14350     uint32_t           simdPerComputeUnit;
14351     uint32_t           wavefrontsPerSimd;
14352     uint32_t           wavefrontSize;
14353     uint32_t           sgprsPerSimd;
14354     uint32_t           minSgprAllocation;
14355     uint32_t           maxSgprAllocation;
14356     uint32_t           sgprAllocationGranularity;
14357     uint32_t           vgprsPerSimd;
14358     uint32_t           minVgprAllocation;
14359     uint32_t           maxVgprAllocation;
14360     uint32_t           vgprAllocationGranularity;
14361 } VkPhysicalDeviceShaderCorePropertiesAMD;
14362 
14363 
14364 
14365 // VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
14366 #define VK_AMD_memory_overallocation_behavior 1
14367 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
14368 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
14369 
14370 typedef enum VkMemoryOverallocationBehaviorAMD {
14371     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
14372     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
14373     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
14374     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
14375 } VkMemoryOverallocationBehaviorAMD;
14376 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
14377     VkStructureType                      sType;
14378     const void*                          pNext;
14379     VkMemoryOverallocationBehaviorAMD    overallocationBehavior;
14380 } VkDeviceMemoryOverallocationCreateInfoAMD;
14381 
14382 
14383 
14384 // VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
14385 #define VK_EXT_vertex_attribute_divisor 1
14386 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
14387 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
14388 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
14389     VkStructureType    sType;
14390     void*              pNext;
14391     uint32_t           maxVertexAttribDivisor;
14392 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
14393 
14394 typedef VkVertexInputBindingDivisorDescriptionKHR VkVertexInputBindingDivisorDescriptionEXT;
14395 
14396 typedef VkPipelineVertexInputDivisorStateCreateInfoKHR VkPipelineVertexInputDivisorStateCreateInfoEXT;
14397 
14398 typedef VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
14399 
14400 
14401 
14402 // VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
14403 #define VK_EXT_pipeline_creation_feedback 1
14404 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
14405 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
14406 typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
14407 
14408 typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
14409 
14410 typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
14411 
14412 typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
14413 
14414 
14415 
14416 // VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
14417 #define VK_NV_shader_subgroup_partitioned 1
14418 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
14419 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
14420 
14421 
14422 // VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
14423 #define VK_NV_compute_shader_derivatives 1
14424 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
14425 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
14426 typedef VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
14427 
14428 
14429 
14430 // VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
14431 #define VK_NV_mesh_shader 1
14432 #define VK_NV_MESH_SHADER_SPEC_VERSION    1
14433 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
14434 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
14435     VkStructureType    sType;
14436     void*              pNext;
14437     VkBool32           taskShader;
14438     VkBool32           meshShader;
14439 } VkPhysicalDeviceMeshShaderFeaturesNV;
14440 
14441 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
14442     VkStructureType    sType;
14443     void*              pNext;
14444     uint32_t           maxDrawMeshTasksCount;
14445     uint32_t           maxTaskWorkGroupInvocations;
14446     uint32_t           maxTaskWorkGroupSize[3];
14447     uint32_t           maxTaskTotalMemorySize;
14448     uint32_t           maxTaskOutputCount;
14449     uint32_t           maxMeshWorkGroupInvocations;
14450     uint32_t           maxMeshWorkGroupSize[3];
14451     uint32_t           maxMeshTotalMemorySize;
14452     uint32_t           maxMeshOutputVertices;
14453     uint32_t           maxMeshOutputPrimitives;
14454     uint32_t           maxMeshMultiviewViewCount;
14455     uint32_t           meshOutputPerVertexGranularity;
14456     uint32_t           meshOutputPerPrimitiveGranularity;
14457 } VkPhysicalDeviceMeshShaderPropertiesNV;
14458 
14459 typedef struct VkDrawMeshTasksIndirectCommandNV {
14460     uint32_t    taskCount;
14461     uint32_t    firstTask;
14462 } VkDrawMeshTasksIndirectCommandNV;
14463 
14464 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
14465 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
14466 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
14467 
14468 #ifndef VK_NO_PROTOTYPES
14469 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
14470     VkCommandBuffer                             commandBuffer,
14471     uint32_t                                    taskCount,
14472     uint32_t                                    firstTask);
14473 
14474 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
14475     VkCommandBuffer                             commandBuffer,
14476     VkBuffer                                    buffer,
14477     VkDeviceSize                                offset,
14478     uint32_t                                    drawCount,
14479     uint32_t                                    stride);
14480 
14481 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
14482     VkCommandBuffer                             commandBuffer,
14483     VkBuffer                                    buffer,
14484     VkDeviceSize                                offset,
14485     VkBuffer                                    countBuffer,
14486     VkDeviceSize                                countBufferOffset,
14487     uint32_t                                    maxDrawCount,
14488     uint32_t                                    stride);
14489 #endif
14490 
14491 
14492 // VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
14493 #define VK_NV_fragment_shader_barycentric 1
14494 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
14495 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
14496 typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
14497 
14498 
14499 
14500 // VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
14501 #define VK_NV_shader_image_footprint 1
14502 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
14503 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
14504 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
14505     VkStructureType    sType;
14506     void*              pNext;
14507     VkBool32           imageFootprint;
14508 } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
14509 
14510 
14511 
14512 // VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
14513 #define VK_NV_scissor_exclusive 1
14514 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
14515 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
14516 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
14517     VkStructureType    sType;
14518     const void*        pNext;
14519     uint32_t           exclusiveScissorCount;
14520     const VkRect2D*    pExclusiveScissors;
14521 } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
14522 
14523 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
14524     VkStructureType    sType;
14525     void*              pNext;
14526     VkBool32           exclusiveScissor;
14527 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
14528 
14529 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
14530 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
14531 
14532 #ifndef VK_NO_PROTOTYPES
14533 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
14534     VkCommandBuffer                             commandBuffer,
14535     uint32_t                                    firstExclusiveScissor,
14536     uint32_t                                    exclusiveScissorCount,
14537     const VkBool32*                             pExclusiveScissorEnables);
14538 
14539 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
14540     VkCommandBuffer                             commandBuffer,
14541     uint32_t                                    firstExclusiveScissor,
14542     uint32_t                                    exclusiveScissorCount,
14543     const VkRect2D*                             pExclusiveScissors);
14544 #endif
14545 
14546 
14547 // VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
14548 #define VK_NV_device_diagnostic_checkpoints 1
14549 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
14550 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
14551 typedef struct VkQueueFamilyCheckpointPropertiesNV {
14552     VkStructureType         sType;
14553     void*                   pNext;
14554     VkPipelineStageFlags    checkpointExecutionStageMask;
14555 } VkQueueFamilyCheckpointPropertiesNV;
14556 
14557 typedef struct VkCheckpointDataNV {
14558     VkStructureType            sType;
14559     void*                      pNext;
14560     VkPipelineStageFlagBits    stage;
14561     void*                      pCheckpointMarker;
14562 } VkCheckpointDataNV;
14563 
14564 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
14565 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
14566 
14567 #ifndef VK_NO_PROTOTYPES
14568 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
14569     VkCommandBuffer                             commandBuffer,
14570     const void*                                 pCheckpointMarker);
14571 
14572 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
14573     VkQueue                                     queue,
14574     uint32_t*                                   pCheckpointDataCount,
14575     VkCheckpointDataNV*                         pCheckpointData);
14576 #endif
14577 
14578 
14579 // VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
14580 #define VK_INTEL_shader_integer_functions2 1
14581 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
14582 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
14583 typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
14584     VkStructureType    sType;
14585     void*              pNext;
14586     VkBool32           shaderIntegerFunctions2;
14587 } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
14588 
14589 
14590 
14591 // VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
14592 #define VK_INTEL_performance_query 1
14593 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
14594 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
14595 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
14596 
14597 typedef enum VkPerformanceConfigurationTypeINTEL {
14598     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
14599     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
14600 } VkPerformanceConfigurationTypeINTEL;
14601 
14602 typedef enum VkQueryPoolSamplingModeINTEL {
14603     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
14604     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
14605 } VkQueryPoolSamplingModeINTEL;
14606 
14607 typedef enum VkPerformanceOverrideTypeINTEL {
14608     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
14609     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
14610     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
14611 } VkPerformanceOverrideTypeINTEL;
14612 
14613 typedef enum VkPerformanceParameterTypeINTEL {
14614     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
14615     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
14616     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
14617 } VkPerformanceParameterTypeINTEL;
14618 
14619 typedef enum VkPerformanceValueTypeINTEL {
14620     VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
14621     VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
14622     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
14623     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
14624     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
14625     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
14626 } VkPerformanceValueTypeINTEL;
14627 typedef union VkPerformanceValueDataINTEL {
14628     uint32_t       value32;
14629     uint64_t       value64;
14630     float          valueFloat;
14631     VkBool32       valueBool;
14632     const char*    valueString;
14633 } VkPerformanceValueDataINTEL;
14634 
14635 typedef struct VkPerformanceValueINTEL {
14636     VkPerformanceValueTypeINTEL    type;
14637     VkPerformanceValueDataINTEL    data;
14638 } VkPerformanceValueINTEL;
14639 
14640 typedef struct VkInitializePerformanceApiInfoINTEL {
14641     VkStructureType    sType;
14642     const void*        pNext;
14643     void*              pUserData;
14644 } VkInitializePerformanceApiInfoINTEL;
14645 
14646 typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
14647     VkStructureType                 sType;
14648     const void*                     pNext;
14649     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
14650 } VkQueryPoolPerformanceQueryCreateInfoINTEL;
14651 
14652 typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
14653 
14654 typedef struct VkPerformanceMarkerInfoINTEL {
14655     VkStructureType    sType;
14656     const void*        pNext;
14657     uint64_t           marker;
14658 } VkPerformanceMarkerInfoINTEL;
14659 
14660 typedef struct VkPerformanceStreamMarkerInfoINTEL {
14661     VkStructureType    sType;
14662     const void*        pNext;
14663     uint32_t           marker;
14664 } VkPerformanceStreamMarkerInfoINTEL;
14665 
14666 typedef struct VkPerformanceOverrideInfoINTEL {
14667     VkStructureType                   sType;
14668     const void*                       pNext;
14669     VkPerformanceOverrideTypeINTEL    type;
14670     VkBool32                          enable;
14671     uint64_t                          parameter;
14672 } VkPerformanceOverrideInfoINTEL;
14673 
14674 typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
14675     VkStructureType                        sType;
14676     const void*                            pNext;
14677     VkPerformanceConfigurationTypeINTEL    type;
14678 } VkPerformanceConfigurationAcquireInfoINTEL;
14679 
14680 typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
14681 typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
14682 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
14683 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
14684 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
14685 typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
14686 typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
14687 typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
14688 typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
14689 
14690 #ifndef VK_NO_PROTOTYPES
14691 VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
14692     VkDevice                                    device,
14693     const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo);
14694 
14695 VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
14696     VkDevice                                    device);
14697 
14698 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
14699     VkCommandBuffer                             commandBuffer,
14700     const VkPerformanceMarkerInfoINTEL*         pMarkerInfo);
14701 
14702 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
14703     VkCommandBuffer                             commandBuffer,
14704     const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo);
14705 
14706 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
14707     VkCommandBuffer                             commandBuffer,
14708     const VkPerformanceOverrideInfoINTEL*       pOverrideInfo);
14709 
14710 VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
14711     VkDevice                                    device,
14712     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
14713     VkPerformanceConfigurationINTEL*            pConfiguration);
14714 
14715 VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
14716     VkDevice                                    device,
14717     VkPerformanceConfigurationINTEL             configuration);
14718 
14719 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
14720     VkQueue                                     queue,
14721     VkPerformanceConfigurationINTEL             configuration);
14722 
14723 VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
14724     VkDevice                                    device,
14725     VkPerformanceParameterTypeINTEL             parameter,
14726     VkPerformanceValueINTEL*                    pValue);
14727 #endif
14728 
14729 
14730 // VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
14731 #define VK_EXT_pci_bus_info 1
14732 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  2
14733 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
14734 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
14735     VkStructureType    sType;
14736     void*              pNext;
14737     uint32_t           pciDomain;
14738     uint32_t           pciBus;
14739     uint32_t           pciDevice;
14740     uint32_t           pciFunction;
14741 } VkPhysicalDevicePCIBusInfoPropertiesEXT;
14742 
14743 
14744 
14745 // VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
14746 #define VK_AMD_display_native_hdr 1
14747 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
14748 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
14749 typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
14750     VkStructureType    sType;
14751     void*              pNext;
14752     VkBool32           localDimmingSupport;
14753 } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
14754 
14755 typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
14756     VkStructureType    sType;
14757     const void*        pNext;
14758     VkBool32           localDimmingEnable;
14759 } VkSwapchainDisplayNativeHdrCreateInfoAMD;
14760 
14761 typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
14762 
14763 #ifndef VK_NO_PROTOTYPES
14764 VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
14765     VkDevice                                    device,
14766     VkSwapchainKHR                              swapChain,
14767     VkBool32                                    localDimmingEnable);
14768 #endif
14769 
14770 
14771 // VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
14772 #define VK_EXT_fragment_density_map 1
14773 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
14774 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
14775 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
14776     VkStructureType    sType;
14777     void*              pNext;
14778     VkBool32           fragmentDensityMap;
14779     VkBool32           fragmentDensityMapDynamic;
14780     VkBool32           fragmentDensityMapNonSubsampledImages;
14781 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
14782 
14783 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
14784     VkStructureType    sType;
14785     void*              pNext;
14786     VkExtent2D         minFragmentDensityTexelSize;
14787     VkExtent2D         maxFragmentDensityTexelSize;
14788     VkBool32           fragmentDensityInvocations;
14789 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
14790 
14791 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
14792     VkStructureType          sType;
14793     const void*              pNext;
14794     VkAttachmentReference    fragmentDensityMapAttachment;
14795 } VkRenderPassFragmentDensityMapCreateInfoEXT;
14796 
14797 
14798 
14799 // VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
14800 #define VK_EXT_scalar_block_layout 1
14801 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
14802 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
14803 typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
14804 
14805 
14806 
14807 // VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
14808 #define VK_GOOGLE_hlsl_functionality1 1
14809 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
14810 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
14811 // VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION is a deprecated alias
14812 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
14813 // VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME is a deprecated alias
14814 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
14815 
14816 
14817 // VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
14818 #define VK_GOOGLE_decorate_string 1
14819 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
14820 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
14821 
14822 
14823 // VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
14824 #define VK_EXT_subgroup_size_control 1
14825 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
14826 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
14827 typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
14828 
14829 typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
14830 
14831 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
14832 
14833 
14834 
14835 // VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
14836 #define VK_AMD_shader_core_properties2 1
14837 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
14838 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
14839 
14840 typedef enum VkShaderCorePropertiesFlagBitsAMD {
14841     VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
14842 } VkShaderCorePropertiesFlagBitsAMD;
14843 typedef VkFlags VkShaderCorePropertiesFlagsAMD;
14844 typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
14845     VkStructureType                   sType;
14846     void*                             pNext;
14847     VkShaderCorePropertiesFlagsAMD    shaderCoreFeatures;
14848     uint32_t                          activeComputeUnitCount;
14849 } VkPhysicalDeviceShaderCoreProperties2AMD;
14850 
14851 
14852 
14853 // VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
14854 #define VK_AMD_device_coherent_memory 1
14855 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
14856 #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
14857 typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
14858     VkStructureType    sType;
14859     void*              pNext;
14860     VkBool32           deviceCoherentMemory;
14861 } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
14862 
14863 
14864 
14865 // VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
14866 #define VK_EXT_shader_image_atomic_int64 1
14867 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
14868 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
14869 typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
14870     VkStructureType    sType;
14871     void*              pNext;
14872     VkBool32           shaderImageInt64Atomics;
14873     VkBool32           sparseImageInt64Atomics;
14874 } VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
14875 
14876 
14877 
14878 // VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
14879 #define VK_EXT_memory_budget 1
14880 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
14881 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
14882 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
14883     VkStructureType    sType;
14884     void*              pNext;
14885     VkDeviceSize       heapBudget[VK_MAX_MEMORY_HEAPS];
14886     VkDeviceSize       heapUsage[VK_MAX_MEMORY_HEAPS];
14887 } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
14888 
14889 
14890 
14891 // VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
14892 #define VK_EXT_memory_priority 1
14893 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
14894 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
14895 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
14896     VkStructureType    sType;
14897     void*              pNext;
14898     VkBool32           memoryPriority;
14899 } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
14900 
14901 typedef struct VkMemoryPriorityAllocateInfoEXT {
14902     VkStructureType    sType;
14903     const void*        pNext;
14904     float              priority;
14905 } VkMemoryPriorityAllocateInfoEXT;
14906 
14907 
14908 
14909 // VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
14910 #define VK_NV_dedicated_allocation_image_aliasing 1
14911 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
14912 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
14913 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
14914     VkStructureType    sType;
14915     void*              pNext;
14916     VkBool32           dedicatedAllocationImageAliasing;
14917 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
14918 
14919 
14920 
14921 // VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
14922 #define VK_EXT_buffer_device_address 1
14923 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
14924 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
14925 typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
14926     VkStructureType    sType;
14927     void*              pNext;
14928     VkBool32           bufferDeviceAddress;
14929     VkBool32           bufferDeviceAddressCaptureReplay;
14930     VkBool32           bufferDeviceAddressMultiDevice;
14931 } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
14932 
14933 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
14934 
14935 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
14936 
14937 typedef struct VkBufferDeviceAddressCreateInfoEXT {
14938     VkStructureType    sType;
14939     const void*        pNext;
14940     VkDeviceAddress    deviceAddress;
14941 } VkBufferDeviceAddressCreateInfoEXT;
14942 
14943 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
14944 
14945 #ifndef VK_NO_PROTOTYPES
14946 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
14947     VkDevice                                    device,
14948     const VkBufferDeviceAddressInfo*            pInfo);
14949 #endif
14950 
14951 
14952 // VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
14953 #define VK_EXT_tooling_info 1
14954 #define VK_EXT_TOOLING_INFO_SPEC_VERSION  1
14955 #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
14956 typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
14957 
14958 typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
14959 
14960 typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
14961 
14962 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
14963 
14964 #ifndef VK_NO_PROTOTYPES
14965 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
14966     VkPhysicalDevice                            physicalDevice,
14967     uint32_t*                                   pToolCount,
14968     VkPhysicalDeviceToolProperties*             pToolProperties);
14969 #endif
14970 
14971 
14972 // VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
14973 #define VK_EXT_separate_stencil_usage 1
14974 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
14975 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
14976 typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
14977 
14978 
14979 
14980 // VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
14981 #define VK_EXT_validation_features 1
14982 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
14983 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
14984 
14985 typedef enum VkValidationFeatureEnableEXT {
14986     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
14987     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
14988     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
14989     VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
14990     VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
14991     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
14992 } VkValidationFeatureEnableEXT;
14993 
14994 typedef enum VkValidationFeatureDisableEXT {
14995     VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
14996     VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
14997     VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
14998     VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
14999     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
15000     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
15001     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
15002     VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
15003     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
15004 } VkValidationFeatureDisableEXT;
15005 typedef struct VkValidationFeaturesEXT {
15006     VkStructureType                         sType;
15007     const void*                             pNext;
15008     uint32_t                                enabledValidationFeatureCount;
15009     const VkValidationFeatureEnableEXT*     pEnabledValidationFeatures;
15010     uint32_t                                disabledValidationFeatureCount;
15011     const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
15012 } VkValidationFeaturesEXT;
15013 
15014 
15015 
15016 // VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
15017 #define VK_NV_cooperative_matrix 1
15018 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
15019 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
15020 typedef VkComponentTypeKHR VkComponentTypeNV;
15021 
15022 typedef VkScopeKHR VkScopeNV;
15023 
15024 typedef struct VkCooperativeMatrixPropertiesNV {
15025     VkStructureType      sType;
15026     void*                pNext;
15027     uint32_t             MSize;
15028     uint32_t             NSize;
15029     uint32_t             KSize;
15030     VkComponentTypeNV    AType;
15031     VkComponentTypeNV    BType;
15032     VkComponentTypeNV    CType;
15033     VkComponentTypeNV    DType;
15034     VkScopeNV            scope;
15035 } VkCooperativeMatrixPropertiesNV;
15036 
15037 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
15038     VkStructureType    sType;
15039     void*              pNext;
15040     VkBool32           cooperativeMatrix;
15041     VkBool32           cooperativeMatrixRobustBufferAccess;
15042 } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
15043 
15044 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
15045     VkStructureType       sType;
15046     void*                 pNext;
15047     VkShaderStageFlags    cooperativeMatrixSupportedStages;
15048 } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
15049 
15050 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
15051 
15052 #ifndef VK_NO_PROTOTYPES
15053 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
15054     VkPhysicalDevice                            physicalDevice,
15055     uint32_t*                                   pPropertyCount,
15056     VkCooperativeMatrixPropertiesNV*            pProperties);
15057 #endif
15058 
15059 
15060 // VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
15061 #define VK_NV_coverage_reduction_mode 1
15062 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
15063 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
15064 
15065 typedef enum VkCoverageReductionModeNV {
15066     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
15067     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
15068     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
15069 } VkCoverageReductionModeNV;
15070 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
15071 typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
15072     VkStructureType    sType;
15073     void*              pNext;
15074     VkBool32           coverageReductionMode;
15075 } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
15076 
15077 typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
15078     VkStructureType                                  sType;
15079     const void*                                      pNext;
15080     VkPipelineCoverageReductionStateCreateFlagsNV    flags;
15081     VkCoverageReductionModeNV                        coverageReductionMode;
15082 } VkPipelineCoverageReductionStateCreateInfoNV;
15083 
15084 typedef struct VkFramebufferMixedSamplesCombinationNV {
15085     VkStructureType              sType;
15086     void*                        pNext;
15087     VkCoverageReductionModeNV    coverageReductionMode;
15088     VkSampleCountFlagBits        rasterizationSamples;
15089     VkSampleCountFlags           depthStencilSamples;
15090     VkSampleCountFlags           colorSamples;
15091 } VkFramebufferMixedSamplesCombinationNV;
15092 
15093 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
15094 
15095 #ifndef VK_NO_PROTOTYPES
15096 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
15097     VkPhysicalDevice                            physicalDevice,
15098     uint32_t*                                   pCombinationCount,
15099     VkFramebufferMixedSamplesCombinationNV*     pCombinations);
15100 #endif
15101 
15102 
15103 // VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
15104 #define VK_EXT_fragment_shader_interlock 1
15105 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
15106 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
15107 typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
15108     VkStructureType    sType;
15109     void*              pNext;
15110     VkBool32           fragmentShaderSampleInterlock;
15111     VkBool32           fragmentShaderPixelInterlock;
15112     VkBool32           fragmentShaderShadingRateInterlock;
15113 } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
15114 
15115 
15116 
15117 // VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
15118 #define VK_EXT_ycbcr_image_arrays 1
15119 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
15120 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
15121 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
15122     VkStructureType    sType;
15123     void*              pNext;
15124     VkBool32           ycbcrImageArrays;
15125 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
15126 
15127 
15128 
15129 // VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
15130 #define VK_EXT_provoking_vertex 1
15131 #define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
15132 #define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
15133 
15134 typedef enum VkProvokingVertexModeEXT {
15135     VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
15136     VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
15137     VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
15138 } VkProvokingVertexModeEXT;
15139 typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
15140     VkStructureType    sType;
15141     void*              pNext;
15142     VkBool32           provokingVertexLast;
15143     VkBool32           transformFeedbackPreservesProvokingVertex;
15144 } VkPhysicalDeviceProvokingVertexFeaturesEXT;
15145 
15146 typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
15147     VkStructureType    sType;
15148     void*              pNext;
15149     VkBool32           provokingVertexModePerPipeline;
15150     VkBool32           transformFeedbackPreservesTriangleFanProvokingVertex;
15151 } VkPhysicalDeviceProvokingVertexPropertiesEXT;
15152 
15153 typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
15154     VkStructureType             sType;
15155     const void*                 pNext;
15156     VkProvokingVertexModeEXT    provokingVertexMode;
15157 } VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
15158 
15159 
15160 
15161 // VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
15162 #define VK_EXT_headless_surface 1
15163 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
15164 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
15165 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
15166 typedef struct VkHeadlessSurfaceCreateInfoEXT {
15167     VkStructureType                    sType;
15168     const void*                        pNext;
15169     VkHeadlessSurfaceCreateFlagsEXT    flags;
15170 } VkHeadlessSurfaceCreateInfoEXT;
15171 
15172 typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
15173 
15174 #ifndef VK_NO_PROTOTYPES
15175 VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
15176     VkInstance                                  instance,
15177     const VkHeadlessSurfaceCreateInfoEXT*       pCreateInfo,
15178     const VkAllocationCallbacks*                pAllocator,
15179     VkSurfaceKHR*                               pSurface);
15180 #endif
15181 
15182 
15183 // VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
15184 #define VK_EXT_line_rasterization 1
15185 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
15186 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
15187 typedef VkLineRasterizationModeKHR VkLineRasterizationModeEXT;
15188 
15189 typedef VkPhysicalDeviceLineRasterizationFeaturesKHR VkPhysicalDeviceLineRasterizationFeaturesEXT;
15190 
15191 typedef VkPhysicalDeviceLineRasterizationPropertiesKHR VkPhysicalDeviceLineRasterizationPropertiesEXT;
15192 
15193 typedef VkPipelineRasterizationLineStateCreateInfoKHR VkPipelineRasterizationLineStateCreateInfoEXT;
15194 
15195 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
15196 
15197 #ifndef VK_NO_PROTOTYPES
15198 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
15199     VkCommandBuffer                             commandBuffer,
15200     uint32_t                                    lineStippleFactor,
15201     uint16_t                                    lineStipplePattern);
15202 #endif
15203 
15204 
15205 // VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
15206 #define VK_EXT_shader_atomic_float 1
15207 #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
15208 #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
15209 typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
15210     VkStructureType    sType;
15211     void*              pNext;
15212     VkBool32           shaderBufferFloat32Atomics;
15213     VkBool32           shaderBufferFloat32AtomicAdd;
15214     VkBool32           shaderBufferFloat64Atomics;
15215     VkBool32           shaderBufferFloat64AtomicAdd;
15216     VkBool32           shaderSharedFloat32Atomics;
15217     VkBool32           shaderSharedFloat32AtomicAdd;
15218     VkBool32           shaderSharedFloat64Atomics;
15219     VkBool32           shaderSharedFloat64AtomicAdd;
15220     VkBool32           shaderImageFloat32Atomics;
15221     VkBool32           shaderImageFloat32AtomicAdd;
15222     VkBool32           sparseImageFloat32Atomics;
15223     VkBool32           sparseImageFloat32AtomicAdd;
15224 } VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
15225 
15226 
15227 
15228 // VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
15229 #define VK_EXT_host_query_reset 1
15230 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
15231 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
15232 typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
15233 
15234 typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
15235 
15236 #ifndef VK_NO_PROTOTYPES
15237 VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
15238     VkDevice                                    device,
15239     VkQueryPool                                 queryPool,
15240     uint32_t                                    firstQuery,
15241     uint32_t                                    queryCount);
15242 #endif
15243 
15244 
15245 // VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
15246 #define VK_EXT_index_type_uint8 1
15247 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
15248 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
15249 typedef VkPhysicalDeviceIndexTypeUint8FeaturesKHR VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
15250 
15251 
15252 
15253 // VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
15254 #define VK_EXT_extended_dynamic_state 1
15255 #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
15256 #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
15257 typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
15258     VkStructureType    sType;
15259     void*              pNext;
15260     VkBool32           extendedDynamicState;
15261 } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
15262 
15263 typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
15264 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
15265 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
15266 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
15267 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
15268 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);
15269 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
15270 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
15271 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
15272 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
15273 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
15274 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
15275 
15276 #ifndef VK_NO_PROTOTYPES
15277 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
15278     VkCommandBuffer                             commandBuffer,
15279     VkCullModeFlags                             cullMode);
15280 
15281 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
15282     VkCommandBuffer                             commandBuffer,
15283     VkFrontFace                                 frontFace);
15284 
15285 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
15286     VkCommandBuffer                             commandBuffer,
15287     VkPrimitiveTopology                         primitiveTopology);
15288 
15289 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
15290     VkCommandBuffer                             commandBuffer,
15291     uint32_t                                    viewportCount,
15292     const VkViewport*                           pViewports);
15293 
15294 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
15295     VkCommandBuffer                             commandBuffer,
15296     uint32_t                                    scissorCount,
15297     const VkRect2D*                             pScissors);
15298 
15299 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
15300     VkCommandBuffer                             commandBuffer,
15301     uint32_t                                    firstBinding,
15302     uint32_t                                    bindingCount,
15303     const VkBuffer*                             pBuffers,
15304     const VkDeviceSize*                         pOffsets,
15305     const VkDeviceSize*                         pSizes,
15306     const VkDeviceSize*                         pStrides);
15307 
15308 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
15309     VkCommandBuffer                             commandBuffer,
15310     VkBool32                                    depthTestEnable);
15311 
15312 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
15313     VkCommandBuffer                             commandBuffer,
15314     VkBool32                                    depthWriteEnable);
15315 
15316 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
15317     VkCommandBuffer                             commandBuffer,
15318     VkCompareOp                                 depthCompareOp);
15319 
15320 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
15321     VkCommandBuffer                             commandBuffer,
15322     VkBool32                                    depthBoundsTestEnable);
15323 
15324 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
15325     VkCommandBuffer                             commandBuffer,
15326     VkBool32                                    stencilTestEnable);
15327 
15328 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
15329     VkCommandBuffer                             commandBuffer,
15330     VkStencilFaceFlags                          faceMask,
15331     VkStencilOp                                 failOp,
15332     VkStencilOp                                 passOp,
15333     VkStencilOp                                 depthFailOp,
15334     VkCompareOp                                 compareOp);
15335 #endif
15336 
15337 
15338 // VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
15339 #define VK_EXT_host_image_copy 1
15340 #define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
15341 #define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
15342 
15343 typedef enum VkHostImageCopyFlagBitsEXT {
15344     VK_HOST_IMAGE_COPY_MEMCPY_EXT = 0x00000001,
15345     VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15346 } VkHostImageCopyFlagBitsEXT;
15347 typedef VkFlags VkHostImageCopyFlagsEXT;
15348 typedef struct VkPhysicalDeviceHostImageCopyFeaturesEXT {
15349     VkStructureType    sType;
15350     void*              pNext;
15351     VkBool32           hostImageCopy;
15352 } VkPhysicalDeviceHostImageCopyFeaturesEXT;
15353 
15354 typedef struct VkPhysicalDeviceHostImageCopyPropertiesEXT {
15355     VkStructureType    sType;
15356     void*              pNext;
15357     uint32_t           copySrcLayoutCount;
15358     VkImageLayout*     pCopySrcLayouts;
15359     uint32_t           copyDstLayoutCount;
15360     VkImageLayout*     pCopyDstLayouts;
15361     uint8_t            optimalTilingLayoutUUID[VK_UUID_SIZE];
15362     VkBool32           identicalMemoryTypeRequirements;
15363 } VkPhysicalDeviceHostImageCopyPropertiesEXT;
15364 
15365 typedef struct VkMemoryToImageCopyEXT {
15366     VkStructureType             sType;
15367     const void*                 pNext;
15368     const void*                 pHostPointer;
15369     uint32_t                    memoryRowLength;
15370     uint32_t                    memoryImageHeight;
15371     VkImageSubresourceLayers    imageSubresource;
15372     VkOffset3D                  imageOffset;
15373     VkExtent3D                  imageExtent;
15374 } VkMemoryToImageCopyEXT;
15375 
15376 typedef struct VkImageToMemoryCopyEXT {
15377     VkStructureType             sType;
15378     const void*                 pNext;
15379     void*                       pHostPointer;
15380     uint32_t                    memoryRowLength;
15381     uint32_t                    memoryImageHeight;
15382     VkImageSubresourceLayers    imageSubresource;
15383     VkOffset3D                  imageOffset;
15384     VkExtent3D                  imageExtent;
15385 } VkImageToMemoryCopyEXT;
15386 
15387 typedef struct VkCopyMemoryToImageInfoEXT {
15388     VkStructureType                  sType;
15389     const void*                      pNext;
15390     VkHostImageCopyFlagsEXT          flags;
15391     VkImage                          dstImage;
15392     VkImageLayout                    dstImageLayout;
15393     uint32_t                         regionCount;
15394     const VkMemoryToImageCopyEXT*    pRegions;
15395 } VkCopyMemoryToImageInfoEXT;
15396 
15397 typedef struct VkCopyImageToMemoryInfoEXT {
15398     VkStructureType                  sType;
15399     const void*                      pNext;
15400     VkHostImageCopyFlagsEXT          flags;
15401     VkImage                          srcImage;
15402     VkImageLayout                    srcImageLayout;
15403     uint32_t                         regionCount;
15404     const VkImageToMemoryCopyEXT*    pRegions;
15405 } VkCopyImageToMemoryInfoEXT;
15406 
15407 typedef struct VkCopyImageToImageInfoEXT {
15408     VkStructureType            sType;
15409     const void*                pNext;
15410     VkHostImageCopyFlagsEXT    flags;
15411     VkImage                    srcImage;
15412     VkImageLayout              srcImageLayout;
15413     VkImage                    dstImage;
15414     VkImageLayout              dstImageLayout;
15415     uint32_t                   regionCount;
15416     const VkImageCopy2*        pRegions;
15417 } VkCopyImageToImageInfoEXT;
15418 
15419 typedef struct VkHostImageLayoutTransitionInfoEXT {
15420     VkStructureType            sType;
15421     const void*                pNext;
15422     VkImage                    image;
15423     VkImageLayout              oldLayout;
15424     VkImageLayout              newLayout;
15425     VkImageSubresourceRange    subresourceRange;
15426 } VkHostImageLayoutTransitionInfoEXT;
15427 
15428 typedef struct VkSubresourceHostMemcpySizeEXT {
15429     VkStructureType    sType;
15430     void*              pNext;
15431     VkDeviceSize       size;
15432 } VkSubresourceHostMemcpySizeEXT;
15433 
15434 typedef struct VkHostImageCopyDevicePerformanceQueryEXT {
15435     VkStructureType    sType;
15436     void*              pNext;
15437     VkBool32           optimalDeviceAccess;
15438     VkBool32           identicalMemoryLayout;
15439 } VkHostImageCopyDevicePerformanceQueryEXT;
15440 
15441 typedef VkSubresourceLayout2KHR VkSubresourceLayout2EXT;
15442 
15443 typedef VkImageSubresource2KHR VkImageSubresource2EXT;
15444 
15445 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo);
15446 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo);
15447 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo);
15448 typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT* pTransitions);
15449 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout);
15450 
15451 #ifndef VK_NO_PROTOTYPES
15452 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
15453     VkDevice                                    device,
15454     const VkCopyMemoryToImageInfoEXT*           pCopyMemoryToImageInfo);
15455 
15456 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
15457     VkDevice                                    device,
15458     const VkCopyImageToMemoryInfoEXT*           pCopyImageToMemoryInfo);
15459 
15460 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
15461     VkDevice                                    device,
15462     const VkCopyImageToImageInfoEXT*            pCopyImageToImageInfo);
15463 
15464 VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
15465     VkDevice                                    device,
15466     uint32_t                                    transitionCount,
15467     const VkHostImageLayoutTransitionInfoEXT*   pTransitions);
15468 
15469 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
15470     VkDevice                                    device,
15471     VkImage                                     image,
15472     const VkImageSubresource2KHR*               pSubresource,
15473     VkSubresourceLayout2KHR*                    pLayout);
15474 #endif
15475 
15476 
15477 // VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
15478 #define VK_EXT_map_memory_placed 1
15479 #define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
15480 #define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
15481 typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
15482     VkStructureType    sType;
15483     void*              pNext;
15484     VkBool32           memoryMapPlaced;
15485     VkBool32           memoryMapRangePlaced;
15486     VkBool32           memoryUnmapReserve;
15487 } VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
15488 
15489 typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
15490     VkStructureType    sType;
15491     void*              pNext;
15492     VkDeviceSize       minPlacedMemoryMapAlignment;
15493 } VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
15494 
15495 typedef struct VkMemoryMapPlacedInfoEXT {
15496     VkStructureType    sType;
15497     const void*        pNext;
15498     void*              pPlacedAddress;
15499 } VkMemoryMapPlacedInfoEXT;
15500 
15501 
15502 
15503 // VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
15504 #define VK_EXT_shader_atomic_float2 1
15505 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
15506 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
15507 typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
15508     VkStructureType    sType;
15509     void*              pNext;
15510     VkBool32           shaderBufferFloat16Atomics;
15511     VkBool32           shaderBufferFloat16AtomicAdd;
15512     VkBool32           shaderBufferFloat16AtomicMinMax;
15513     VkBool32           shaderBufferFloat32AtomicMinMax;
15514     VkBool32           shaderBufferFloat64AtomicMinMax;
15515     VkBool32           shaderSharedFloat16Atomics;
15516     VkBool32           shaderSharedFloat16AtomicAdd;
15517     VkBool32           shaderSharedFloat16AtomicMinMax;
15518     VkBool32           shaderSharedFloat32AtomicMinMax;
15519     VkBool32           shaderSharedFloat64AtomicMinMax;
15520     VkBool32           shaderImageFloat32AtomicMinMax;
15521     VkBool32           sparseImageFloat32AtomicMinMax;
15522 } VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
15523 
15524 
15525 
15526 // VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
15527 #define VK_EXT_surface_maintenance1 1
15528 #define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
15529 #define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
15530 
15531 typedef enum VkPresentScalingFlagBitsEXT {
15532     VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 0x00000001,
15533     VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 0x00000002,
15534     VK_PRESENT_SCALING_STRETCH_BIT_EXT = 0x00000004,
15535     VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15536 } VkPresentScalingFlagBitsEXT;
15537 typedef VkFlags VkPresentScalingFlagsEXT;
15538 
15539 typedef enum VkPresentGravityFlagBitsEXT {
15540     VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0x00000001,
15541     VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0x00000002,
15542     VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0x00000004,
15543     VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15544 } VkPresentGravityFlagBitsEXT;
15545 typedef VkFlags VkPresentGravityFlagsEXT;
15546 typedef struct VkSurfacePresentModeEXT {
15547     VkStructureType     sType;
15548     void*               pNext;
15549     VkPresentModeKHR    presentMode;
15550 } VkSurfacePresentModeEXT;
15551 
15552 typedef struct VkSurfacePresentScalingCapabilitiesEXT {
15553     VkStructureType             sType;
15554     void*                       pNext;
15555     VkPresentScalingFlagsEXT    supportedPresentScaling;
15556     VkPresentGravityFlagsEXT    supportedPresentGravityX;
15557     VkPresentGravityFlagsEXT    supportedPresentGravityY;
15558     VkExtent2D                  minScaledImageExtent;
15559     VkExtent2D                  maxScaledImageExtent;
15560 } VkSurfacePresentScalingCapabilitiesEXT;
15561 
15562 typedef struct VkSurfacePresentModeCompatibilityEXT {
15563     VkStructureType      sType;
15564     void*                pNext;
15565     uint32_t             presentModeCount;
15566     VkPresentModeKHR*    pPresentModes;
15567 } VkSurfacePresentModeCompatibilityEXT;
15568 
15569 
15570 
15571 // VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
15572 #define VK_EXT_swapchain_maintenance1 1
15573 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
15574 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
15575 typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT {
15576     VkStructureType    sType;
15577     void*              pNext;
15578     VkBool32           swapchainMaintenance1;
15579 } VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
15580 
15581 typedef struct VkSwapchainPresentFenceInfoEXT {
15582     VkStructureType    sType;
15583     const void*        pNext;
15584     uint32_t           swapchainCount;
15585     const VkFence*     pFences;
15586 } VkSwapchainPresentFenceInfoEXT;
15587 
15588 typedef struct VkSwapchainPresentModesCreateInfoEXT {
15589     VkStructureType            sType;
15590     const void*                pNext;
15591     uint32_t                   presentModeCount;
15592     const VkPresentModeKHR*    pPresentModes;
15593 } VkSwapchainPresentModesCreateInfoEXT;
15594 
15595 typedef struct VkSwapchainPresentModeInfoEXT {
15596     VkStructureType            sType;
15597     const void*                pNext;
15598     uint32_t                   swapchainCount;
15599     const VkPresentModeKHR*    pPresentModes;
15600 } VkSwapchainPresentModeInfoEXT;
15601 
15602 typedef struct VkSwapchainPresentScalingCreateInfoEXT {
15603     VkStructureType             sType;
15604     const void*                 pNext;
15605     VkPresentScalingFlagsEXT    scalingBehavior;
15606     VkPresentGravityFlagsEXT    presentGravityX;
15607     VkPresentGravityFlagsEXT    presentGravityY;
15608 } VkSwapchainPresentScalingCreateInfoEXT;
15609 
15610 typedef struct VkReleaseSwapchainImagesInfoEXT {
15611     VkStructureType    sType;
15612     const void*        pNext;
15613     VkSwapchainKHR     swapchain;
15614     uint32_t           imageIndexCount;
15615     const uint32_t*    pImageIndices;
15616 } VkReleaseSwapchainImagesInfoEXT;
15617 
15618 typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo);
15619 
15620 #ifndef VK_NO_PROTOTYPES
15621 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
15622     VkDevice                                    device,
15623     const VkReleaseSwapchainImagesInfoEXT*      pReleaseInfo);
15624 #endif
15625 
15626 
15627 // VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
15628 #define VK_EXT_shader_demote_to_helper_invocation 1
15629 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
15630 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
15631 typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
15632 
15633 
15634 
15635 // VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
15636 #define VK_NV_device_generated_commands 1
15637 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
15638 #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
15639 #define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
15640 
15641 typedef enum VkIndirectCommandsTokenTypeNV {
15642     VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
15643     VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
15644     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
15645     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
15646     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
15647     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
15648     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
15649     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
15650     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
15651     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
15652     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
15653     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
15654 } VkIndirectCommandsTokenTypeNV;
15655 
15656 typedef enum VkIndirectStateFlagBitsNV {
15657     VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
15658     VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15659 } VkIndirectStateFlagBitsNV;
15660 typedef VkFlags VkIndirectStateFlagsNV;
15661 
15662 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
15663     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
15664     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
15665     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
15666     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15667 } VkIndirectCommandsLayoutUsageFlagBitsNV;
15668 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
15669 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
15670     VkStructureType    sType;
15671     void*              pNext;
15672     uint32_t           maxGraphicsShaderGroupCount;
15673     uint32_t           maxIndirectSequenceCount;
15674     uint32_t           maxIndirectCommandsTokenCount;
15675     uint32_t           maxIndirectCommandsStreamCount;
15676     uint32_t           maxIndirectCommandsTokenOffset;
15677     uint32_t           maxIndirectCommandsStreamStride;
15678     uint32_t           minSequencesCountBufferOffsetAlignment;
15679     uint32_t           minSequencesIndexBufferOffsetAlignment;
15680     uint32_t           minIndirectCommandsBufferOffsetAlignment;
15681 } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
15682 
15683 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
15684     VkStructureType    sType;
15685     void*              pNext;
15686     VkBool32           deviceGeneratedCommands;
15687 } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
15688 
15689 typedef struct VkGraphicsShaderGroupCreateInfoNV {
15690     VkStructureType                                 sType;
15691     const void*                                     pNext;
15692     uint32_t                                        stageCount;
15693     const VkPipelineShaderStageCreateInfo*          pStages;
15694     const VkPipelineVertexInputStateCreateInfo*     pVertexInputState;
15695     const VkPipelineTessellationStateCreateInfo*    pTessellationState;
15696 } VkGraphicsShaderGroupCreateInfoNV;
15697 
15698 typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
15699     VkStructureType                             sType;
15700     const void*                                 pNext;
15701     uint32_t                                    groupCount;
15702     const VkGraphicsShaderGroupCreateInfoNV*    pGroups;
15703     uint32_t                                    pipelineCount;
15704     const VkPipeline*                           pPipelines;
15705 } VkGraphicsPipelineShaderGroupsCreateInfoNV;
15706 
15707 typedef struct VkBindShaderGroupIndirectCommandNV {
15708     uint32_t    groupIndex;
15709 } VkBindShaderGroupIndirectCommandNV;
15710 
15711 typedef struct VkBindIndexBufferIndirectCommandNV {
15712     VkDeviceAddress    bufferAddress;
15713     uint32_t           size;
15714     VkIndexType        indexType;
15715 } VkBindIndexBufferIndirectCommandNV;
15716 
15717 typedef struct VkBindVertexBufferIndirectCommandNV {
15718     VkDeviceAddress    bufferAddress;
15719     uint32_t           size;
15720     uint32_t           stride;
15721 } VkBindVertexBufferIndirectCommandNV;
15722 
15723 typedef struct VkSetStateFlagsIndirectCommandNV {
15724     uint32_t    data;
15725 } VkSetStateFlagsIndirectCommandNV;
15726 
15727 typedef struct VkIndirectCommandsStreamNV {
15728     VkBuffer        buffer;
15729     VkDeviceSize    offset;
15730 } VkIndirectCommandsStreamNV;
15731 
15732 typedef struct VkIndirectCommandsLayoutTokenNV {
15733     VkStructureType                  sType;
15734     const void*                      pNext;
15735     VkIndirectCommandsTokenTypeNV    tokenType;
15736     uint32_t                         stream;
15737     uint32_t                         offset;
15738     uint32_t                         vertexBindingUnit;
15739     VkBool32                         vertexDynamicStride;
15740     VkPipelineLayout                 pushconstantPipelineLayout;
15741     VkShaderStageFlags               pushconstantShaderStageFlags;
15742     uint32_t                         pushconstantOffset;
15743     uint32_t                         pushconstantSize;
15744     VkIndirectStateFlagsNV           indirectStateFlags;
15745     uint32_t                         indexTypeCount;
15746     const VkIndexType*               pIndexTypes;
15747     const uint32_t*                  pIndexTypeValues;
15748 } VkIndirectCommandsLayoutTokenNV;
15749 
15750 typedef struct VkIndirectCommandsLayoutCreateInfoNV {
15751     VkStructureType                           sType;
15752     const void*                               pNext;
15753     VkIndirectCommandsLayoutUsageFlagsNV      flags;
15754     VkPipelineBindPoint                       pipelineBindPoint;
15755     uint32_t                                  tokenCount;
15756     const VkIndirectCommandsLayoutTokenNV*    pTokens;
15757     uint32_t                                  streamCount;
15758     const uint32_t*                           pStreamStrides;
15759 } VkIndirectCommandsLayoutCreateInfoNV;
15760 
15761 typedef struct VkGeneratedCommandsInfoNV {
15762     VkStructureType                      sType;
15763     const void*                          pNext;
15764     VkPipelineBindPoint                  pipelineBindPoint;
15765     VkPipeline                           pipeline;
15766     VkIndirectCommandsLayoutNV           indirectCommandsLayout;
15767     uint32_t                             streamCount;
15768     const VkIndirectCommandsStreamNV*    pStreams;
15769     uint32_t                             sequencesCount;
15770     VkBuffer                             preprocessBuffer;
15771     VkDeviceSize                         preprocessOffset;
15772     VkDeviceSize                         preprocessSize;
15773     VkBuffer                             sequencesCountBuffer;
15774     VkDeviceSize                         sequencesCountOffset;
15775     VkBuffer                             sequencesIndexBuffer;
15776     VkDeviceSize                         sequencesIndexOffset;
15777 } VkGeneratedCommandsInfoNV;
15778 
15779 typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
15780     VkStructureType               sType;
15781     const void*                   pNext;
15782     VkPipelineBindPoint           pipelineBindPoint;
15783     VkPipeline                    pipeline;
15784     VkIndirectCommandsLayoutNV    indirectCommandsLayout;
15785     uint32_t                      maxSequencesCount;
15786 } VkGeneratedCommandsMemoryRequirementsInfoNV;
15787 
15788 typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
15789 typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
15790 typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
15791 typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
15792 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
15793 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
15794 
15795 #ifndef VK_NO_PROTOTYPES
15796 VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
15797     VkDevice                                    device,
15798     const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
15799     VkMemoryRequirements2*                      pMemoryRequirements);
15800 
15801 VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
15802     VkCommandBuffer                             commandBuffer,
15803     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
15804 
15805 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
15806     VkCommandBuffer                             commandBuffer,
15807     VkBool32                                    isPreprocessed,
15808     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
15809 
15810 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
15811     VkCommandBuffer                             commandBuffer,
15812     VkPipelineBindPoint                         pipelineBindPoint,
15813     VkPipeline                                  pipeline,
15814     uint32_t                                    groupIndex);
15815 
15816 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
15817     VkDevice                                    device,
15818     const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
15819     const VkAllocationCallbacks*                pAllocator,
15820     VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout);
15821 
15822 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
15823     VkDevice                                    device,
15824     VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
15825     const VkAllocationCallbacks*                pAllocator);
15826 #endif
15827 
15828 
15829 // VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
15830 #define VK_NV_inherited_viewport_scissor 1
15831 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
15832 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
15833 typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
15834     VkStructureType    sType;
15835     void*              pNext;
15836     VkBool32           inheritedViewportScissor2D;
15837 } VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
15838 
15839 typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
15840     VkStructureType      sType;
15841     const void*          pNext;
15842     VkBool32             viewportScissor2D;
15843     uint32_t             viewportDepthCount;
15844     const VkViewport*    pViewportDepths;
15845 } VkCommandBufferInheritanceViewportScissorInfoNV;
15846 
15847 
15848 
15849 // VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
15850 #define VK_EXT_texel_buffer_alignment 1
15851 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
15852 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
15853 typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
15854     VkStructureType    sType;
15855     void*              pNext;
15856     VkBool32           texelBufferAlignment;
15857 } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
15858 
15859 typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
15860 
15861 
15862 
15863 // VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
15864 #define VK_QCOM_render_pass_transform 1
15865 #define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 4
15866 #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
15867 typedef struct VkRenderPassTransformBeginInfoQCOM {
15868     VkStructureType                  sType;
15869     void*                            pNext;
15870     VkSurfaceTransformFlagBitsKHR    transform;
15871 } VkRenderPassTransformBeginInfoQCOM;
15872 
15873 typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
15874     VkStructureType                  sType;
15875     void*                            pNext;
15876     VkSurfaceTransformFlagBitsKHR    transform;
15877     VkRect2D                         renderArea;
15878 } VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
15879 
15880 
15881 
15882 // VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
15883 #define VK_EXT_depth_bias_control 1
15884 #define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
15885 #define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
15886 
15887 typedef enum VkDepthBiasRepresentationEXT {
15888     VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
15889     VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
15890     VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
15891     VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
15892 } VkDepthBiasRepresentationEXT;
15893 typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
15894     VkStructureType    sType;
15895     void*              pNext;
15896     VkBool32           depthBiasControl;
15897     VkBool32           leastRepresentableValueForceUnormRepresentation;
15898     VkBool32           floatRepresentation;
15899     VkBool32           depthBiasExact;
15900 } VkPhysicalDeviceDepthBiasControlFeaturesEXT;
15901 
15902 typedef struct VkDepthBiasInfoEXT {
15903     VkStructureType    sType;
15904     const void*        pNext;
15905     float              depthBiasConstantFactor;
15906     float              depthBiasClamp;
15907     float              depthBiasSlopeFactor;
15908 } VkDepthBiasInfoEXT;
15909 
15910 typedef struct VkDepthBiasRepresentationInfoEXT {
15911     VkStructureType                 sType;
15912     const void*                     pNext;
15913     VkDepthBiasRepresentationEXT    depthBiasRepresentation;
15914     VkBool32                        depthBiasExact;
15915 } VkDepthBiasRepresentationInfoEXT;
15916 
15917 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT*         pDepthBiasInfo);
15918 
15919 #ifndef VK_NO_PROTOTYPES
15920 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
15921     VkCommandBuffer                             commandBuffer,
15922     const VkDepthBiasInfoEXT*                   pDepthBiasInfo);
15923 #endif
15924 
15925 
15926 // VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
15927 #define VK_EXT_device_memory_report 1
15928 #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
15929 #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
15930 
15931 typedef enum VkDeviceMemoryReportEventTypeEXT {
15932     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
15933     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
15934     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
15935     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
15936     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
15937     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
15938 } VkDeviceMemoryReportEventTypeEXT;
15939 typedef VkFlags VkDeviceMemoryReportFlagsEXT;
15940 typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
15941     VkStructureType    sType;
15942     void*              pNext;
15943     VkBool32           deviceMemoryReport;
15944 } VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
15945 
15946 typedef struct VkDeviceMemoryReportCallbackDataEXT {
15947     VkStructureType                     sType;
15948     void*                               pNext;
15949     VkDeviceMemoryReportFlagsEXT        flags;
15950     VkDeviceMemoryReportEventTypeEXT    type;
15951     uint64_t                            memoryObjectId;
15952     VkDeviceSize                        size;
15953     VkObjectType                        objectType;
15954     uint64_t                            objectHandle;
15955     uint32_t                            heapIndex;
15956 } VkDeviceMemoryReportCallbackDataEXT;
15957 
15958 typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
15959     const VkDeviceMemoryReportCallbackDataEXT*  pCallbackData,
15960     void*                                       pUserData);
15961 
15962 typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
15963     VkStructureType                        sType;
15964     const void*                            pNext;
15965     VkDeviceMemoryReportFlagsEXT           flags;
15966     PFN_vkDeviceMemoryReportCallbackEXT    pfnUserCallback;
15967     void*                                  pUserData;
15968 } VkDeviceDeviceMemoryReportCreateInfoEXT;
15969 
15970 
15971 
15972 // VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
15973 #define VK_EXT_acquire_drm_display 1
15974 #define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
15975 #define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
15976 typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
15977 typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
15978 
15979 #ifndef VK_NO_PROTOTYPES
15980 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
15981     VkPhysicalDevice                            physicalDevice,
15982     int32_t                                     drmFd,
15983     VkDisplayKHR                                display);
15984 
15985 VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
15986     VkPhysicalDevice                            physicalDevice,
15987     int32_t                                     drmFd,
15988     uint32_t                                    connectorId,
15989     VkDisplayKHR*                               display);
15990 #endif
15991 
15992 
15993 // VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
15994 #define VK_EXT_robustness2 1
15995 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION  1
15996 #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
15997 typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
15998     VkStructureType    sType;
15999     void*              pNext;
16000     VkBool32           robustBufferAccess2;
16001     VkBool32           robustImageAccess2;
16002     VkBool32           nullDescriptor;
16003 } VkPhysicalDeviceRobustness2FeaturesEXT;
16004 
16005 typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
16006     VkStructureType    sType;
16007     void*              pNext;
16008     VkDeviceSize       robustStorageBufferAccessSizeAlignment;
16009     VkDeviceSize       robustUniformBufferAccessSizeAlignment;
16010 } VkPhysicalDeviceRobustness2PropertiesEXT;
16011 
16012 
16013 
16014 // VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
16015 #define VK_EXT_custom_border_color 1
16016 #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
16017 #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
16018 typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
16019     VkStructureType      sType;
16020     const void*          pNext;
16021     VkClearColorValue    customBorderColor;
16022     VkFormat             format;
16023 } VkSamplerCustomBorderColorCreateInfoEXT;
16024 
16025 typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
16026     VkStructureType    sType;
16027     void*              pNext;
16028     uint32_t           maxCustomBorderColorSamplers;
16029 } VkPhysicalDeviceCustomBorderColorPropertiesEXT;
16030 
16031 typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
16032     VkStructureType    sType;
16033     void*              pNext;
16034     VkBool32           customBorderColors;
16035     VkBool32           customBorderColorWithoutFormat;
16036 } VkPhysicalDeviceCustomBorderColorFeaturesEXT;
16037 
16038 
16039 
16040 // VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
16041 #define VK_GOOGLE_user_type 1
16042 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
16043 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
16044 
16045 
16046 // VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
16047 #define VK_NV_present_barrier 1
16048 #define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
16049 #define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
16050 typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
16051     VkStructureType    sType;
16052     void*              pNext;
16053     VkBool32           presentBarrier;
16054 } VkPhysicalDevicePresentBarrierFeaturesNV;
16055 
16056 typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
16057     VkStructureType    sType;
16058     void*              pNext;
16059     VkBool32           presentBarrierSupported;
16060 } VkSurfaceCapabilitiesPresentBarrierNV;
16061 
16062 typedef struct VkSwapchainPresentBarrierCreateInfoNV {
16063     VkStructureType    sType;
16064     void*              pNext;
16065     VkBool32           presentBarrierEnable;
16066 } VkSwapchainPresentBarrierCreateInfoNV;
16067 
16068 
16069 
16070 // VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
16071 #define VK_EXT_private_data 1
16072 typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
16073 
16074 #define VK_EXT_PRIVATE_DATA_SPEC_VERSION  1
16075 #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
16076 typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
16077 
16078 typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
16079 
16080 typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
16081 
16082 typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
16083 
16084 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
16085 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
16086 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
16087 typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
16088 
16089 #ifndef VK_NO_PROTOTYPES
16090 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
16091     VkDevice                                    device,
16092     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
16093     const VkAllocationCallbacks*                pAllocator,
16094     VkPrivateDataSlot*                          pPrivateDataSlot);
16095 
16096 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
16097     VkDevice                                    device,
16098     VkPrivateDataSlot                           privateDataSlot,
16099     const VkAllocationCallbacks*                pAllocator);
16100 
16101 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
16102     VkDevice                                    device,
16103     VkObjectType                                objectType,
16104     uint64_t                                    objectHandle,
16105     VkPrivateDataSlot                           privateDataSlot,
16106     uint64_t                                    data);
16107 
16108 VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
16109     VkDevice                                    device,
16110     VkObjectType                                objectType,
16111     uint64_t                                    objectHandle,
16112     VkPrivateDataSlot                           privateDataSlot,
16113     uint64_t*                                   pData);
16114 #endif
16115 
16116 
16117 // VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
16118 #define VK_EXT_pipeline_creation_cache_control 1
16119 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
16120 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
16121 typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
16122 
16123 
16124 
16125 // VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
16126 #define VK_NV_device_diagnostics_config 1
16127 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
16128 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
16129 
16130 typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
16131     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
16132     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
16133     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
16134     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
16135     VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
16136 } VkDeviceDiagnosticsConfigFlagBitsNV;
16137 typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
16138 typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
16139     VkStructureType    sType;
16140     void*              pNext;
16141     VkBool32           diagnosticsConfig;
16142 } VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
16143 
16144 typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
16145     VkStructureType                     sType;
16146     const void*                         pNext;
16147     VkDeviceDiagnosticsConfigFlagsNV    flags;
16148 } VkDeviceDiagnosticsConfigCreateInfoNV;
16149 
16150 
16151 
16152 // VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
16153 #define VK_QCOM_render_pass_store_ops 1
16154 #define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
16155 #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
16156 
16157 
16158 // VK_NV_cuda_kernel_launch is a preprocessor guard. Do not pass it to API calls.
16159 #define VK_NV_cuda_kernel_launch 1
16160 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaModuleNV)
16161 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaFunctionNV)
16162 #define VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION 2
16163 #define VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME "VK_NV_cuda_kernel_launch"
16164 typedef struct VkCudaModuleCreateInfoNV {
16165     VkStructureType    sType;
16166     const void*        pNext;
16167     size_t             dataSize;
16168     const void*        pData;
16169 } VkCudaModuleCreateInfoNV;
16170 
16171 typedef struct VkCudaFunctionCreateInfoNV {
16172     VkStructureType    sType;
16173     const void*        pNext;
16174     VkCudaModuleNV     module;
16175     const char*        pName;
16176 } VkCudaFunctionCreateInfoNV;
16177 
16178 typedef struct VkCudaLaunchInfoNV {
16179     VkStructureType        sType;
16180     const void*            pNext;
16181     VkCudaFunctionNV       function;
16182     uint32_t               gridDimX;
16183     uint32_t               gridDimY;
16184     uint32_t               gridDimZ;
16185     uint32_t               blockDimX;
16186     uint32_t               blockDimY;
16187     uint32_t               blockDimZ;
16188     uint32_t               sharedMemBytes;
16189     size_t                 paramCount;
16190     const void* const *    pParams;
16191     size_t                 extraCount;
16192     const void* const *    pExtras;
16193 } VkCudaLaunchInfoNV;
16194 
16195 typedef struct VkPhysicalDeviceCudaKernelLaunchFeaturesNV {
16196     VkStructureType    sType;
16197     void*              pNext;
16198     VkBool32           cudaKernelLaunchFeatures;
16199 } VkPhysicalDeviceCudaKernelLaunchFeaturesNV;
16200 
16201 typedef struct VkPhysicalDeviceCudaKernelLaunchPropertiesNV {
16202     VkStructureType    sType;
16203     void*              pNext;
16204     uint32_t           computeCapabilityMinor;
16205     uint32_t           computeCapabilityMajor;
16206 } VkPhysicalDeviceCudaKernelLaunchPropertiesNV;
16207 
16208 typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaModuleNV)(VkDevice device, const VkCudaModuleCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaModuleNV* pModule);
16209 typedef VkResult (VKAPI_PTR *PFN_vkGetCudaModuleCacheNV)(VkDevice device, VkCudaModuleNV module, size_t* pCacheSize, void* pCacheData);
16210 typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaFunctionNV)(VkDevice device, const VkCudaFunctionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaFunctionNV* pFunction);
16211 typedef void (VKAPI_PTR *PFN_vkDestroyCudaModuleNV)(VkDevice device, VkCudaModuleNV module, const VkAllocationCallbacks* pAllocator);
16212 typedef void (VKAPI_PTR *PFN_vkDestroyCudaFunctionNV)(VkDevice device, VkCudaFunctionNV function, const VkAllocationCallbacks* pAllocator);
16213 typedef void (VKAPI_PTR *PFN_vkCmdCudaLaunchKernelNV)(VkCommandBuffer commandBuffer, const VkCudaLaunchInfoNV* pLaunchInfo);
16214 
16215 #ifndef VK_NO_PROTOTYPES
16216 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaModuleNV(
16217     VkDevice                                    device,
16218     const VkCudaModuleCreateInfoNV*             pCreateInfo,
16219     const VkAllocationCallbacks*                pAllocator,
16220     VkCudaModuleNV*                             pModule);
16221 
16222 VKAPI_ATTR VkResult VKAPI_CALL vkGetCudaModuleCacheNV(
16223     VkDevice                                    device,
16224     VkCudaModuleNV                              module,
16225     size_t*                                     pCacheSize,
16226     void*                                       pCacheData);
16227 
16228 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaFunctionNV(
16229     VkDevice                                    device,
16230     const VkCudaFunctionCreateInfoNV*           pCreateInfo,
16231     const VkAllocationCallbacks*                pAllocator,
16232     VkCudaFunctionNV*                           pFunction);
16233 
16234 VKAPI_ATTR void VKAPI_CALL vkDestroyCudaModuleNV(
16235     VkDevice                                    device,
16236     VkCudaModuleNV                              module,
16237     const VkAllocationCallbacks*                pAllocator);
16238 
16239 VKAPI_ATTR void VKAPI_CALL vkDestroyCudaFunctionNV(
16240     VkDevice                                    device,
16241     VkCudaFunctionNV                            function,
16242     const VkAllocationCallbacks*                pAllocator);
16243 
16244 VKAPI_ATTR void VKAPI_CALL vkCmdCudaLaunchKernelNV(
16245     VkCommandBuffer                             commandBuffer,
16246     const VkCudaLaunchInfoNV*                   pLaunchInfo);
16247 #endif
16248 
16249 
16250 // VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
16251 #define VK_NV_low_latency 1
16252 #define VK_NV_LOW_LATENCY_SPEC_VERSION    1
16253 #define VK_NV_LOW_LATENCY_EXTENSION_NAME  "VK_NV_low_latency"
16254 typedef struct VkQueryLowLatencySupportNV {
16255     VkStructureType    sType;
16256     const void*        pNext;
16257     void*              pQueriedLowLatencyData;
16258 } VkQueryLowLatencySupportNV;
16259 
16260 
16261 
16262 // VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
16263 #define VK_EXT_descriptor_buffer 1
16264 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
16265 #define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
16266 #define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
16267 typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
16268     VkStructureType    sType;
16269     void*              pNext;
16270     VkBool32           combinedImageSamplerDescriptorSingleArray;
16271     VkBool32           bufferlessPushDescriptors;
16272     VkBool32           allowSamplerImageViewPostSubmitCreation;
16273     VkDeviceSize       descriptorBufferOffsetAlignment;
16274     uint32_t           maxDescriptorBufferBindings;
16275     uint32_t           maxResourceDescriptorBufferBindings;
16276     uint32_t           maxSamplerDescriptorBufferBindings;
16277     uint32_t           maxEmbeddedImmutableSamplerBindings;
16278     uint32_t           maxEmbeddedImmutableSamplers;
16279     size_t             bufferCaptureReplayDescriptorDataSize;
16280     size_t             imageCaptureReplayDescriptorDataSize;
16281     size_t             imageViewCaptureReplayDescriptorDataSize;
16282     size_t             samplerCaptureReplayDescriptorDataSize;
16283     size_t             accelerationStructureCaptureReplayDescriptorDataSize;
16284     size_t             samplerDescriptorSize;
16285     size_t             combinedImageSamplerDescriptorSize;
16286     size_t             sampledImageDescriptorSize;
16287     size_t             storageImageDescriptorSize;
16288     size_t             uniformTexelBufferDescriptorSize;
16289     size_t             robustUniformTexelBufferDescriptorSize;
16290     size_t             storageTexelBufferDescriptorSize;
16291     size_t             robustStorageTexelBufferDescriptorSize;
16292     size_t             uniformBufferDescriptorSize;
16293     size_t             robustUniformBufferDescriptorSize;
16294     size_t             storageBufferDescriptorSize;
16295     size_t             robustStorageBufferDescriptorSize;
16296     size_t             inputAttachmentDescriptorSize;
16297     size_t             accelerationStructureDescriptorSize;
16298     VkDeviceSize       maxSamplerDescriptorBufferRange;
16299     VkDeviceSize       maxResourceDescriptorBufferRange;
16300     VkDeviceSize       samplerDescriptorBufferAddressSpaceSize;
16301     VkDeviceSize       resourceDescriptorBufferAddressSpaceSize;
16302     VkDeviceSize       descriptorBufferAddressSpaceSize;
16303 } VkPhysicalDeviceDescriptorBufferPropertiesEXT;
16304 
16305 typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
16306     VkStructureType    sType;
16307     void*              pNext;
16308     size_t             combinedImageSamplerDensityMapDescriptorSize;
16309 } VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
16310 
16311 typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
16312     VkStructureType    sType;
16313     void*              pNext;
16314     VkBool32           descriptorBuffer;
16315     VkBool32           descriptorBufferCaptureReplay;
16316     VkBool32           descriptorBufferImageLayoutIgnored;
16317     VkBool32           descriptorBufferPushDescriptors;
16318 } VkPhysicalDeviceDescriptorBufferFeaturesEXT;
16319 
16320 typedef struct VkDescriptorAddressInfoEXT {
16321     VkStructureType    sType;
16322     void*              pNext;
16323     VkDeviceAddress    address;
16324     VkDeviceSize       range;
16325     VkFormat           format;
16326 } VkDescriptorAddressInfoEXT;
16327 
16328 typedef struct VkDescriptorBufferBindingInfoEXT {
16329     VkStructureType       sType;
16330     const void*           pNext;
16331     VkDeviceAddress       address;
16332     VkBufferUsageFlags    usage;
16333 } VkDescriptorBufferBindingInfoEXT;
16334 
16335 typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
16336     VkStructureType    sType;
16337     const void*        pNext;
16338     VkBuffer           buffer;
16339 } VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
16340 
16341 typedef union VkDescriptorDataEXT {
16342     const VkSampler*                     pSampler;
16343     const VkDescriptorImageInfo*         pCombinedImageSampler;
16344     const VkDescriptorImageInfo*         pInputAttachmentImage;
16345     const VkDescriptorImageInfo*         pSampledImage;
16346     const VkDescriptorImageInfo*         pStorageImage;
16347     const VkDescriptorAddressInfoEXT*    pUniformTexelBuffer;
16348     const VkDescriptorAddressInfoEXT*    pStorageTexelBuffer;
16349     const VkDescriptorAddressInfoEXT*    pUniformBuffer;
16350     const VkDescriptorAddressInfoEXT*    pStorageBuffer;
16351     VkDeviceAddress                      accelerationStructure;
16352 } VkDescriptorDataEXT;
16353 
16354 typedef struct VkDescriptorGetInfoEXT {
16355     VkStructureType        sType;
16356     const void*            pNext;
16357     VkDescriptorType       type;
16358     VkDescriptorDataEXT    data;
16359 } VkDescriptorGetInfoEXT;
16360 
16361 typedef struct VkBufferCaptureDescriptorDataInfoEXT {
16362     VkStructureType    sType;
16363     const void*        pNext;
16364     VkBuffer           buffer;
16365 } VkBufferCaptureDescriptorDataInfoEXT;
16366 
16367 typedef struct VkImageCaptureDescriptorDataInfoEXT {
16368     VkStructureType    sType;
16369     const void*        pNext;
16370     VkImage            image;
16371 } VkImageCaptureDescriptorDataInfoEXT;
16372 
16373 typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
16374     VkStructureType    sType;
16375     const void*        pNext;
16376     VkImageView        imageView;
16377 } VkImageViewCaptureDescriptorDataInfoEXT;
16378 
16379 typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
16380     VkStructureType    sType;
16381     const void*        pNext;
16382     VkSampler          sampler;
16383 } VkSamplerCaptureDescriptorDataInfoEXT;
16384 
16385 typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
16386     VkStructureType    sType;
16387     const void*        pNext;
16388     const void*        opaqueCaptureDescriptorData;
16389 } VkOpaqueCaptureDescriptorDataCreateInfoEXT;
16390 
16391 typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
16392     VkStructureType               sType;
16393     const void*                   pNext;
16394     VkAccelerationStructureKHR    accelerationStructure;
16395     VkAccelerationStructureNV     accelerationStructureNV;
16396 } VkAccelerationStructureCaptureDescriptorDataInfoEXT;
16397 
16398 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
16399 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
16400 typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
16401 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
16402 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);
16403 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
16404 typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16405 typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16406 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16407 typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16408 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16409 
16410 #ifndef VK_NO_PROTOTYPES
16411 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
16412     VkDevice                                    device,
16413     VkDescriptorSetLayout                       layout,
16414     VkDeviceSize*                               pLayoutSizeInBytes);
16415 
16416 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
16417     VkDevice                                    device,
16418     VkDescriptorSetLayout                       layout,
16419     uint32_t                                    binding,
16420     VkDeviceSize*                               pOffset);
16421 
16422 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
16423     VkDevice                                    device,
16424     const VkDescriptorGetInfoEXT*               pDescriptorInfo,
16425     size_t                                      dataSize,
16426     void*                                       pDescriptor);
16427 
16428 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
16429     VkCommandBuffer                             commandBuffer,
16430     uint32_t                                    bufferCount,
16431     const VkDescriptorBufferBindingInfoEXT*     pBindingInfos);
16432 
16433 VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
16434     VkCommandBuffer                             commandBuffer,
16435     VkPipelineBindPoint                         pipelineBindPoint,
16436     VkPipelineLayout                            layout,
16437     uint32_t                                    firstSet,
16438     uint32_t                                    setCount,
16439     const uint32_t*                             pBufferIndices,
16440     const VkDeviceSize*                         pOffsets);
16441 
16442 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
16443     VkCommandBuffer                             commandBuffer,
16444     VkPipelineBindPoint                         pipelineBindPoint,
16445     VkPipelineLayout                            layout,
16446     uint32_t                                    set);
16447 
16448 VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
16449     VkDevice                                    device,
16450     const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
16451     void*                                       pData);
16452 
16453 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
16454     VkDevice                                    device,
16455     const VkImageCaptureDescriptorDataInfoEXT*  pInfo,
16456     void*                                       pData);
16457 
16458 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
16459     VkDevice                                    device,
16460     const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
16461     void*                                       pData);
16462 
16463 VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
16464     VkDevice                                    device,
16465     const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
16466     void*                                       pData);
16467 
16468 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
16469     VkDevice                                    device,
16470     const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
16471     void*                                       pData);
16472 #endif
16473 
16474 
16475 // VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
16476 #define VK_EXT_graphics_pipeline_library 1
16477 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
16478 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
16479 
16480 typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
16481     VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
16482     VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
16483     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
16484     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
16485     VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16486 } VkGraphicsPipelineLibraryFlagBitsEXT;
16487 typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
16488 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
16489     VkStructureType    sType;
16490     void*              pNext;
16491     VkBool32           graphicsPipelineLibrary;
16492 } VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
16493 
16494 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
16495     VkStructureType    sType;
16496     void*              pNext;
16497     VkBool32           graphicsPipelineLibraryFastLinking;
16498     VkBool32           graphicsPipelineLibraryIndependentInterpolationDecoration;
16499 } VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
16500 
16501 typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
16502     VkStructureType                      sType;
16503     const void*                          pNext;
16504     VkGraphicsPipelineLibraryFlagsEXT    flags;
16505 } VkGraphicsPipelineLibraryCreateInfoEXT;
16506 
16507 
16508 
16509 // VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
16510 #define VK_AMD_shader_early_and_late_fragment_tests 1
16511 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
16512 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
16513 typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
16514     VkStructureType    sType;
16515     void*              pNext;
16516     VkBool32           shaderEarlyAndLateFragmentTests;
16517 } VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
16518 
16519 
16520 
16521 // VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
16522 #define VK_NV_fragment_shading_rate_enums 1
16523 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
16524 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
16525 
16526 typedef enum VkFragmentShadingRateTypeNV {
16527     VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
16528     VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
16529     VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16530 } VkFragmentShadingRateTypeNV;
16531 
16532 typedef enum VkFragmentShadingRateNV {
16533     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
16534     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
16535     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
16536     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
16537     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
16538     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
16539     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
16540     VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
16541     VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
16542     VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
16543     VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
16544     VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
16545     VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
16546 } VkFragmentShadingRateNV;
16547 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
16548     VkStructureType    sType;
16549     void*              pNext;
16550     VkBool32           fragmentShadingRateEnums;
16551     VkBool32           supersampleFragmentShadingRates;
16552     VkBool32           noInvocationFragmentShadingRates;
16553 } VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
16554 
16555 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
16556     VkStructureType          sType;
16557     void*                    pNext;
16558     VkSampleCountFlagBits    maxFragmentShadingRateInvocationCount;
16559 } VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
16560 
16561 typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
16562     VkStructureType                       sType;
16563     const void*                           pNext;
16564     VkFragmentShadingRateTypeNV           shadingRateType;
16565     VkFragmentShadingRateNV               shadingRate;
16566     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
16567 } VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
16568 
16569 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer           commandBuffer, VkFragmentShadingRateNV                     shadingRate, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
16570 
16571 #ifndef VK_NO_PROTOTYPES
16572 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
16573     VkCommandBuffer                             commandBuffer,
16574     VkFragmentShadingRateNV                     shadingRate,
16575     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
16576 #endif
16577 
16578 
16579 // VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
16580 #define VK_NV_ray_tracing_motion_blur 1
16581 #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
16582 #define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
16583 
16584 typedef enum VkAccelerationStructureMotionInstanceTypeNV {
16585     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
16586     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
16587     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
16588     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16589 } VkAccelerationStructureMotionInstanceTypeNV;
16590 typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
16591 typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
16592 typedef union VkDeviceOrHostAddressConstKHR {
16593     VkDeviceAddress    deviceAddress;
16594     const void*        hostAddress;
16595 } VkDeviceOrHostAddressConstKHR;
16596 
16597 typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
16598     VkStructureType                  sType;
16599     const void*                      pNext;
16600     VkDeviceOrHostAddressConstKHR    vertexData;
16601 } VkAccelerationStructureGeometryMotionTrianglesDataNV;
16602 
16603 typedef struct VkAccelerationStructureMotionInfoNV {
16604     VkStructureType                             sType;
16605     const void*                                 pNext;
16606     uint32_t                                    maxInstances;
16607     VkAccelerationStructureMotionInfoFlagsNV    flags;
16608 } VkAccelerationStructureMotionInfoNV;
16609 
16610 typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
16611     VkTransformMatrixKHR          transformT0;
16612     VkTransformMatrixKHR          transformT1;
16613     uint32_t                      instanceCustomIndex:24;
16614     uint32_t                      mask:8;
16615     uint32_t                      instanceShaderBindingTableRecordOffset:24;
16616     VkGeometryInstanceFlagsKHR    flags:8;
16617     uint64_t                      accelerationStructureReference;
16618 } VkAccelerationStructureMatrixMotionInstanceNV;
16619 
16620 typedef struct VkSRTDataNV {
16621     float    sx;
16622     float    a;
16623     float    b;
16624     float    pvx;
16625     float    sy;
16626     float    c;
16627     float    pvy;
16628     float    sz;
16629     float    pvz;
16630     float    qx;
16631     float    qy;
16632     float    qz;
16633     float    qw;
16634     float    tx;
16635     float    ty;
16636     float    tz;
16637 } VkSRTDataNV;
16638 
16639 typedef struct VkAccelerationStructureSRTMotionInstanceNV {
16640     VkSRTDataNV                   transformT0;
16641     VkSRTDataNV                   transformT1;
16642     uint32_t                      instanceCustomIndex:24;
16643     uint32_t                      mask:8;
16644     uint32_t                      instanceShaderBindingTableRecordOffset:24;
16645     VkGeometryInstanceFlagsKHR    flags:8;
16646     uint64_t                      accelerationStructureReference;
16647 } VkAccelerationStructureSRTMotionInstanceNV;
16648 
16649 typedef union VkAccelerationStructureMotionInstanceDataNV {
16650     VkAccelerationStructureInstanceKHR               staticInstance;
16651     VkAccelerationStructureMatrixMotionInstanceNV    matrixMotionInstance;
16652     VkAccelerationStructureSRTMotionInstanceNV       srtMotionInstance;
16653 } VkAccelerationStructureMotionInstanceDataNV;
16654 
16655 typedef struct VkAccelerationStructureMotionInstanceNV {
16656     VkAccelerationStructureMotionInstanceTypeNV     type;
16657     VkAccelerationStructureMotionInstanceFlagsNV    flags;
16658     VkAccelerationStructureMotionInstanceDataNV     data;
16659 } VkAccelerationStructureMotionInstanceNV;
16660 
16661 typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
16662     VkStructureType    sType;
16663     void*              pNext;
16664     VkBool32           rayTracingMotionBlur;
16665     VkBool32           rayTracingMotionBlurPipelineTraceRaysIndirect;
16666 } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
16667 
16668 
16669 
16670 // VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
16671 #define VK_EXT_ycbcr_2plane_444_formats 1
16672 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
16673 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
16674 typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
16675     VkStructureType    sType;
16676     void*              pNext;
16677     VkBool32           ycbcr2plane444Formats;
16678 } VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
16679 
16680 
16681 
16682 // VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
16683 #define VK_EXT_fragment_density_map2 1
16684 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
16685 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
16686 typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
16687     VkStructureType    sType;
16688     void*              pNext;
16689     VkBool32           fragmentDensityMapDeferred;
16690 } VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
16691 
16692 typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
16693     VkStructureType    sType;
16694     void*              pNext;
16695     VkBool32           subsampledLoads;
16696     VkBool32           subsampledCoarseReconstructionEarlyAccess;
16697     uint32_t           maxSubsampledArrayLayers;
16698     uint32_t           maxDescriptorSetSubsampledSamplers;
16699 } VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
16700 
16701 
16702 
16703 // VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
16704 #define VK_QCOM_rotated_copy_commands 1
16705 #define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
16706 #define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
16707 typedef struct VkCopyCommandTransformInfoQCOM {
16708     VkStructureType                  sType;
16709     const void*                      pNext;
16710     VkSurfaceTransformFlagBitsKHR    transform;
16711 } VkCopyCommandTransformInfoQCOM;
16712 
16713 
16714 
16715 // VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
16716 #define VK_EXT_image_robustness 1
16717 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
16718 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
16719 typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
16720 
16721 
16722 
16723 // VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
16724 #define VK_EXT_image_compression_control 1
16725 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
16726 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
16727 
16728 typedef enum VkImageCompressionFlagBitsEXT {
16729     VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
16730     VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
16731     VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
16732     VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
16733     VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16734 } VkImageCompressionFlagBitsEXT;
16735 typedef VkFlags VkImageCompressionFlagsEXT;
16736 
16737 typedef enum VkImageCompressionFixedRateFlagBitsEXT {
16738     VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
16739     VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
16740     VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
16741     VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
16742     VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
16743     VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
16744     VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
16745     VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
16746     VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
16747     VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
16748     VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
16749     VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
16750     VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
16751     VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
16752     VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
16753     VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
16754     VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
16755     VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
16756     VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
16757     VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
16758     VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
16759     VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
16760     VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
16761     VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
16762     VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
16763     VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16764 } VkImageCompressionFixedRateFlagBitsEXT;
16765 typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
16766 typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
16767     VkStructureType    sType;
16768     void*              pNext;
16769     VkBool32           imageCompressionControl;
16770 } VkPhysicalDeviceImageCompressionControlFeaturesEXT;
16771 
16772 typedef struct VkImageCompressionControlEXT {
16773     VkStructureType                         sType;
16774     const void*                             pNext;
16775     VkImageCompressionFlagsEXT              flags;
16776     uint32_t                                compressionControlPlaneCount;
16777     VkImageCompressionFixedRateFlagsEXT*    pFixedRateFlags;
16778 } VkImageCompressionControlEXT;
16779 
16780 typedef struct VkImageCompressionPropertiesEXT {
16781     VkStructureType                        sType;
16782     void*                                  pNext;
16783     VkImageCompressionFlagsEXT             imageCompressionFlags;
16784     VkImageCompressionFixedRateFlagsEXT    imageCompressionFixedRateFlags;
16785 } VkImageCompressionPropertiesEXT;
16786 
16787 
16788 
16789 // VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
16790 #define VK_EXT_attachment_feedback_loop_layout 1
16791 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
16792 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
16793 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
16794     VkStructureType    sType;
16795     void*              pNext;
16796     VkBool32           attachmentFeedbackLoopLayout;
16797 } VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
16798 
16799 
16800 
16801 // VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
16802 #define VK_EXT_4444_formats 1
16803 #define VK_EXT_4444_FORMATS_SPEC_VERSION  1
16804 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
16805 typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
16806     VkStructureType    sType;
16807     void*              pNext;
16808     VkBool32           formatA4R4G4B4;
16809     VkBool32           formatA4B4G4R4;
16810 } VkPhysicalDevice4444FormatsFeaturesEXT;
16811 
16812 
16813 
16814 // VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
16815 #define VK_EXT_device_fault 1
16816 #define VK_EXT_DEVICE_FAULT_SPEC_VERSION  2
16817 #define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
16818 
16819 typedef enum VkDeviceFaultAddressTypeEXT {
16820     VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
16821     VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
16822     VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
16823     VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
16824     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
16825     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
16826     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
16827     VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
16828 } VkDeviceFaultAddressTypeEXT;
16829 
16830 typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
16831     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
16832     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
16833 } VkDeviceFaultVendorBinaryHeaderVersionEXT;
16834 typedef struct VkPhysicalDeviceFaultFeaturesEXT {
16835     VkStructureType    sType;
16836     void*              pNext;
16837     VkBool32           deviceFault;
16838     VkBool32           deviceFaultVendorBinary;
16839 } VkPhysicalDeviceFaultFeaturesEXT;
16840 
16841 typedef struct VkDeviceFaultCountsEXT {
16842     VkStructureType    sType;
16843     void*              pNext;
16844     uint32_t           addressInfoCount;
16845     uint32_t           vendorInfoCount;
16846     VkDeviceSize       vendorBinarySize;
16847 } VkDeviceFaultCountsEXT;
16848 
16849 typedef struct VkDeviceFaultAddressInfoEXT {
16850     VkDeviceFaultAddressTypeEXT    addressType;
16851     VkDeviceAddress                reportedAddress;
16852     VkDeviceSize                   addressPrecision;
16853 } VkDeviceFaultAddressInfoEXT;
16854 
16855 typedef struct VkDeviceFaultVendorInfoEXT {
16856     char        description[VK_MAX_DESCRIPTION_SIZE];
16857     uint64_t    vendorFaultCode;
16858     uint64_t    vendorFaultData;
16859 } VkDeviceFaultVendorInfoEXT;
16860 
16861 typedef struct VkDeviceFaultInfoEXT {
16862     VkStructureType                 sType;
16863     void*                           pNext;
16864     char                            description[VK_MAX_DESCRIPTION_SIZE];
16865     VkDeviceFaultAddressInfoEXT*    pAddressInfos;
16866     VkDeviceFaultVendorInfoEXT*     pVendorInfos;
16867     void*                           pVendorBinaryData;
16868 } VkDeviceFaultInfoEXT;
16869 
16870 typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
16871     uint32_t                                     headerSize;
16872     VkDeviceFaultVendorBinaryHeaderVersionEXT    headerVersion;
16873     uint32_t                                     vendorID;
16874     uint32_t                                     deviceID;
16875     uint32_t                                     driverVersion;
16876     uint8_t                                      pipelineCacheUUID[VK_UUID_SIZE];
16877     uint32_t                                     applicationNameOffset;
16878     uint32_t                                     applicationVersion;
16879     uint32_t                                     engineNameOffset;
16880     uint32_t                                     engineVersion;
16881     uint32_t                                     apiVersion;
16882 } VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
16883 
16884 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
16885 
16886 #ifndef VK_NO_PROTOTYPES
16887 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
16888     VkDevice                                    device,
16889     VkDeviceFaultCountsEXT*                     pFaultCounts,
16890     VkDeviceFaultInfoEXT*                       pFaultInfo);
16891 #endif
16892 
16893 
16894 // VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
16895 #define VK_ARM_rasterization_order_attachment_access 1
16896 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
16897 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
16898 typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
16899     VkStructureType    sType;
16900     void*              pNext;
16901     VkBool32           rasterizationOrderColorAttachmentAccess;
16902     VkBool32           rasterizationOrderDepthAttachmentAccess;
16903     VkBool32           rasterizationOrderStencilAttachmentAccess;
16904 } VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
16905 
16906 typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
16907 
16908 
16909 
16910 // VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
16911 #define VK_EXT_rgba10x6_formats 1
16912 #define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
16913 #define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
16914 typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
16915     VkStructureType    sType;
16916     void*              pNext;
16917     VkBool32           formatRgba10x6WithoutYCbCrSampler;
16918 } VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
16919 
16920 
16921 
16922 // VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
16923 #define VK_VALVE_mutable_descriptor_type 1
16924 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
16925 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
16926 typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
16927     VkStructureType    sType;
16928     void*              pNext;
16929     VkBool32           mutableDescriptorType;
16930 } VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
16931 
16932 typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
16933 
16934 typedef struct VkMutableDescriptorTypeListEXT {
16935     uint32_t                   descriptorTypeCount;
16936     const VkDescriptorType*    pDescriptorTypes;
16937 } VkMutableDescriptorTypeListEXT;
16938 
16939 typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
16940 
16941 typedef struct VkMutableDescriptorTypeCreateInfoEXT {
16942     VkStructureType                          sType;
16943     const void*                              pNext;
16944     uint32_t                                 mutableDescriptorTypeListCount;
16945     const VkMutableDescriptorTypeListEXT*    pMutableDescriptorTypeLists;
16946 } VkMutableDescriptorTypeCreateInfoEXT;
16947 
16948 typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
16949 
16950 
16951 
16952 // VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
16953 #define VK_EXT_vertex_input_dynamic_state 1
16954 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
16955 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
16956 typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
16957     VkStructureType    sType;
16958     void*              pNext;
16959     VkBool32           vertexInputDynamicState;
16960 } VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
16961 
16962 typedef struct VkVertexInputBindingDescription2EXT {
16963     VkStructureType      sType;
16964     void*                pNext;
16965     uint32_t             binding;
16966     uint32_t             stride;
16967     VkVertexInputRate    inputRate;
16968     uint32_t             divisor;
16969 } VkVertexInputBindingDescription2EXT;
16970 
16971 typedef struct VkVertexInputAttributeDescription2EXT {
16972     VkStructureType    sType;
16973     void*              pNext;
16974     uint32_t           location;
16975     uint32_t           binding;
16976     VkFormat           format;
16977     uint32_t           offset;
16978 } VkVertexInputAttributeDescription2EXT;
16979 
16980 typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
16981 
16982 #ifndef VK_NO_PROTOTYPES
16983 VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
16984     VkCommandBuffer                             commandBuffer,
16985     uint32_t                                    vertexBindingDescriptionCount,
16986     const VkVertexInputBindingDescription2EXT*  pVertexBindingDescriptions,
16987     uint32_t                                    vertexAttributeDescriptionCount,
16988     const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
16989 #endif
16990 
16991 
16992 // VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
16993 #define VK_EXT_physical_device_drm 1
16994 #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
16995 #define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
16996 typedef struct VkPhysicalDeviceDrmPropertiesEXT {
16997     VkStructureType    sType;
16998     void*              pNext;
16999     VkBool32           hasPrimary;
17000     VkBool32           hasRender;
17001     int64_t            primaryMajor;
17002     int64_t            primaryMinor;
17003     int64_t            renderMajor;
17004     int64_t            renderMinor;
17005 } VkPhysicalDeviceDrmPropertiesEXT;
17006 
17007 
17008 
17009 // VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
17010 #define VK_EXT_device_address_binding_report 1
17011 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
17012 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
17013 
17014 typedef enum VkDeviceAddressBindingTypeEXT {
17015     VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
17016     VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
17017     VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
17018 } VkDeviceAddressBindingTypeEXT;
17019 
17020 typedef enum VkDeviceAddressBindingFlagBitsEXT {
17021     VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
17022     VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17023 } VkDeviceAddressBindingFlagBitsEXT;
17024 typedef VkFlags VkDeviceAddressBindingFlagsEXT;
17025 typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
17026     VkStructureType    sType;
17027     void*              pNext;
17028     VkBool32           reportAddressBinding;
17029 } VkPhysicalDeviceAddressBindingReportFeaturesEXT;
17030 
17031 typedef struct VkDeviceAddressBindingCallbackDataEXT {
17032     VkStructureType                   sType;
17033     void*                             pNext;
17034     VkDeviceAddressBindingFlagsEXT    flags;
17035     VkDeviceAddress                   baseAddress;
17036     VkDeviceSize                      size;
17037     VkDeviceAddressBindingTypeEXT     bindingType;
17038 } VkDeviceAddressBindingCallbackDataEXT;
17039 
17040 
17041 
17042 // VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
17043 #define VK_EXT_depth_clip_control 1
17044 #define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
17045 #define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
17046 typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
17047     VkStructureType    sType;
17048     void*              pNext;
17049     VkBool32           depthClipControl;
17050 } VkPhysicalDeviceDepthClipControlFeaturesEXT;
17051 
17052 typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
17053     VkStructureType    sType;
17054     const void*        pNext;
17055     VkBool32           negativeOneToOne;
17056 } VkPipelineViewportDepthClipControlCreateInfoEXT;
17057 
17058 
17059 
17060 // VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
17061 #define VK_EXT_primitive_topology_list_restart 1
17062 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
17063 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
17064 typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
17065     VkStructureType    sType;
17066     void*              pNext;
17067     VkBool32           primitiveTopologyListRestart;
17068     VkBool32           primitiveTopologyPatchListRestart;
17069 } VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
17070 
17071 
17072 
17073 // VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
17074 #define VK_HUAWEI_subpass_shading 1
17075 #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
17076 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
17077 typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
17078     VkStructureType    sType;
17079     void*              pNext;
17080     VkRenderPass       renderPass;
17081     uint32_t           subpass;
17082 } VkSubpassShadingPipelineCreateInfoHUAWEI;
17083 
17084 typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
17085     VkStructureType    sType;
17086     void*              pNext;
17087     VkBool32           subpassShading;
17088 } VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
17089 
17090 typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
17091     VkStructureType    sType;
17092     void*              pNext;
17093     uint32_t           maxSubpassShadingWorkgroupSizeAspectRatio;
17094 } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
17095 
17096 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
17097 typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
17098 
17099 #ifndef VK_NO_PROTOTYPES
17100 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
17101     VkDevice                                    device,
17102     VkRenderPass                                renderpass,
17103     VkExtent2D*                                 pMaxWorkgroupSize);
17104 
17105 VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
17106     VkCommandBuffer                             commandBuffer);
17107 #endif
17108 
17109 
17110 // VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
17111 #define VK_HUAWEI_invocation_mask 1
17112 #define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
17113 #define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
17114 typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
17115     VkStructureType    sType;
17116     void*              pNext;
17117     VkBool32           invocationMask;
17118 } VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
17119 
17120 typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
17121 
17122 #ifndef VK_NO_PROTOTYPES
17123 VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
17124     VkCommandBuffer                             commandBuffer,
17125     VkImageView                                 imageView,
17126     VkImageLayout                               imageLayout);
17127 #endif
17128 
17129 
17130 // VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
17131 #define VK_NV_external_memory_rdma 1
17132 typedef void* VkRemoteAddressNV;
17133 #define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
17134 #define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
17135 typedef struct VkMemoryGetRemoteAddressInfoNV {
17136     VkStructureType                       sType;
17137     const void*                           pNext;
17138     VkDeviceMemory                        memory;
17139     VkExternalMemoryHandleTypeFlagBits    handleType;
17140 } VkMemoryGetRemoteAddressInfoNV;
17141 
17142 typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
17143     VkStructureType    sType;
17144     void*              pNext;
17145     VkBool32           externalMemoryRDMA;
17146 } VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
17147 
17148 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
17149 
17150 #ifndef VK_NO_PROTOTYPES
17151 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
17152     VkDevice                                    device,
17153     const VkMemoryGetRemoteAddressInfoNV*       pMemoryGetRemoteAddressInfo,
17154     VkRemoteAddressNV*                          pAddress);
17155 #endif
17156 
17157 
17158 // VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
17159 #define VK_EXT_pipeline_properties 1
17160 #define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
17161 #define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
17162 typedef VkPipelineInfoKHR VkPipelineInfoEXT;
17163 
17164 typedef struct VkPipelinePropertiesIdentifierEXT {
17165     VkStructureType    sType;
17166     void*              pNext;
17167     uint8_t            pipelineIdentifier[VK_UUID_SIZE];
17168 } VkPipelinePropertiesIdentifierEXT;
17169 
17170 typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
17171     VkStructureType    sType;
17172     void*              pNext;
17173     VkBool32           pipelinePropertiesIdentifier;
17174 } VkPhysicalDevicePipelinePropertiesFeaturesEXT;
17175 
17176 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
17177 
17178 #ifndef VK_NO_PROTOTYPES
17179 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
17180     VkDevice                                    device,
17181     const VkPipelineInfoEXT*                    pPipelineInfo,
17182     VkBaseOutStructure*                         pPipelineProperties);
17183 #endif
17184 
17185 
17186 // VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
17187 #define VK_EXT_frame_boundary 1
17188 #define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
17189 #define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
17190 
17191 typedef enum VkFrameBoundaryFlagBitsEXT {
17192     VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
17193     VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17194 } VkFrameBoundaryFlagBitsEXT;
17195 typedef VkFlags VkFrameBoundaryFlagsEXT;
17196 typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
17197     VkStructureType    sType;
17198     void*              pNext;
17199     VkBool32           frameBoundary;
17200 } VkPhysicalDeviceFrameBoundaryFeaturesEXT;
17201 
17202 typedef struct VkFrameBoundaryEXT {
17203     VkStructureType            sType;
17204     const void*                pNext;
17205     VkFrameBoundaryFlagsEXT    flags;
17206     uint64_t                   frameID;
17207     uint32_t                   imageCount;
17208     const VkImage*             pImages;
17209     uint32_t                   bufferCount;
17210     const VkBuffer*            pBuffers;
17211     uint64_t                   tagName;
17212     size_t                     tagSize;
17213     const void*                pTag;
17214 } VkFrameBoundaryEXT;
17215 
17216 
17217 
17218 // VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
17219 #define VK_EXT_multisampled_render_to_single_sampled 1
17220 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
17221 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
17222 typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
17223     VkStructureType    sType;
17224     void*              pNext;
17225     VkBool32           multisampledRenderToSingleSampled;
17226 } VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
17227 
17228 typedef struct VkSubpassResolvePerformanceQueryEXT {
17229     VkStructureType    sType;
17230     void*              pNext;
17231     VkBool32           optimal;
17232 } VkSubpassResolvePerformanceQueryEXT;
17233 
17234 typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
17235     VkStructureType          sType;
17236     const void*              pNext;
17237     VkBool32                 multisampledRenderToSingleSampledEnable;
17238     VkSampleCountFlagBits    rasterizationSamples;
17239 } VkMultisampledRenderToSingleSampledInfoEXT;
17240 
17241 
17242 
17243 // VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
17244 #define VK_EXT_extended_dynamic_state2 1
17245 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
17246 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
17247 typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
17248     VkStructureType    sType;
17249     void*              pNext;
17250     VkBool32           extendedDynamicState2;
17251     VkBool32           extendedDynamicState2LogicOp;
17252     VkBool32           extendedDynamicState2PatchControlPoints;
17253 } VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
17254 
17255 typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
17256 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
17257 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
17258 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
17259 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
17260 
17261 #ifndef VK_NO_PROTOTYPES
17262 VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
17263     VkCommandBuffer                             commandBuffer,
17264     uint32_t                                    patchControlPoints);
17265 
17266 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
17267     VkCommandBuffer                             commandBuffer,
17268     VkBool32                                    rasterizerDiscardEnable);
17269 
17270 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
17271     VkCommandBuffer                             commandBuffer,
17272     VkBool32                                    depthBiasEnable);
17273 
17274 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
17275     VkCommandBuffer                             commandBuffer,
17276     VkLogicOp                                   logicOp);
17277 
17278 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
17279     VkCommandBuffer                             commandBuffer,
17280     VkBool32                                    primitiveRestartEnable);
17281 #endif
17282 
17283 
17284 // VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
17285 #define VK_EXT_color_write_enable 1
17286 #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
17287 #define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
17288 typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
17289     VkStructureType    sType;
17290     void*              pNext;
17291     VkBool32           colorWriteEnable;
17292 } VkPhysicalDeviceColorWriteEnableFeaturesEXT;
17293 
17294 typedef struct VkPipelineColorWriteCreateInfoEXT {
17295     VkStructureType    sType;
17296     const void*        pNext;
17297     uint32_t           attachmentCount;
17298     const VkBool32*    pColorWriteEnables;
17299 } VkPipelineColorWriteCreateInfoEXT;
17300 
17301 typedef void                                    (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer       commandBuffer, uint32_t                                attachmentCount, const VkBool32*   pColorWriteEnables);
17302 
17303 #ifndef VK_NO_PROTOTYPES
17304 VKAPI_ATTR void                                    VKAPI_CALL vkCmdSetColorWriteEnableEXT(
17305     VkCommandBuffer                             commandBuffer,
17306     uint32_t                                    attachmentCount,
17307     const VkBool32*                             pColorWriteEnables);
17308 #endif
17309 
17310 
17311 // VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
17312 #define VK_EXT_primitives_generated_query 1
17313 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
17314 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
17315 typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
17316     VkStructureType    sType;
17317     void*              pNext;
17318     VkBool32           primitivesGeneratedQuery;
17319     VkBool32           primitivesGeneratedQueryWithRasterizerDiscard;
17320     VkBool32           primitivesGeneratedQueryWithNonZeroStreams;
17321 } VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
17322 
17323 
17324 
17325 // VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
17326 #define VK_EXT_global_priority_query 1
17327 #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
17328 #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
17329 #define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT   VK_MAX_GLOBAL_PRIORITY_SIZE_KHR
17330 typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
17331 
17332 typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT;
17333 
17334 
17335 
17336 // VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
17337 #define VK_EXT_image_view_min_lod 1
17338 #define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
17339 #define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
17340 typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
17341     VkStructureType    sType;
17342     void*              pNext;
17343     VkBool32           minLod;
17344 } VkPhysicalDeviceImageViewMinLodFeaturesEXT;
17345 
17346 typedef struct VkImageViewMinLodCreateInfoEXT {
17347     VkStructureType    sType;
17348     const void*        pNext;
17349     float              minLod;
17350 } VkImageViewMinLodCreateInfoEXT;
17351 
17352 
17353 
17354 // VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
17355 #define VK_EXT_multi_draw 1
17356 #define VK_EXT_MULTI_DRAW_SPEC_VERSION    1
17357 #define VK_EXT_MULTI_DRAW_EXTENSION_NAME  "VK_EXT_multi_draw"
17358 typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
17359     VkStructureType    sType;
17360     void*              pNext;
17361     VkBool32           multiDraw;
17362 } VkPhysicalDeviceMultiDrawFeaturesEXT;
17363 
17364 typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
17365     VkStructureType    sType;
17366     void*              pNext;
17367     uint32_t           maxMultiDrawCount;
17368 } VkPhysicalDeviceMultiDrawPropertiesEXT;
17369 
17370 typedef struct VkMultiDrawInfoEXT {
17371     uint32_t    firstVertex;
17372     uint32_t    vertexCount;
17373 } VkMultiDrawInfoEXT;
17374 
17375 typedef struct VkMultiDrawIndexedInfoEXT {
17376     uint32_t    firstIndex;
17377     uint32_t    indexCount;
17378     int32_t     vertexOffset;
17379 } VkMultiDrawIndexedInfoEXT;
17380 
17381 typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
17382 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);
17383 
17384 #ifndef VK_NO_PROTOTYPES
17385 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
17386     VkCommandBuffer                             commandBuffer,
17387     uint32_t                                    drawCount,
17388     const VkMultiDrawInfoEXT*                   pVertexInfo,
17389     uint32_t                                    instanceCount,
17390     uint32_t                                    firstInstance,
17391     uint32_t                                    stride);
17392 
17393 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
17394     VkCommandBuffer                             commandBuffer,
17395     uint32_t                                    drawCount,
17396     const VkMultiDrawIndexedInfoEXT*            pIndexInfo,
17397     uint32_t                                    instanceCount,
17398     uint32_t                                    firstInstance,
17399     uint32_t                                    stride,
17400     const int32_t*                              pVertexOffset);
17401 #endif
17402 
17403 
17404 // VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
17405 #define VK_EXT_image_2d_view_of_3d 1
17406 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
17407 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
17408 typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
17409     VkStructureType    sType;
17410     void*              pNext;
17411     VkBool32           image2DViewOf3D;
17412     VkBool32           sampler2DViewOf3D;
17413 } VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
17414 
17415 
17416 
17417 // VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
17418 #define VK_EXT_shader_tile_image 1
17419 #define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
17420 #define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
17421 typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
17422     VkStructureType    sType;
17423     void*              pNext;
17424     VkBool32           shaderTileImageColorReadAccess;
17425     VkBool32           shaderTileImageDepthReadAccess;
17426     VkBool32           shaderTileImageStencilReadAccess;
17427 } VkPhysicalDeviceShaderTileImageFeaturesEXT;
17428 
17429 typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
17430     VkStructureType    sType;
17431     void*              pNext;
17432     VkBool32           shaderTileImageCoherentReadAccelerated;
17433     VkBool32           shaderTileImageReadSampleFromPixelRateInvocation;
17434     VkBool32           shaderTileImageReadFromHelperInvocation;
17435 } VkPhysicalDeviceShaderTileImagePropertiesEXT;
17436 
17437 
17438 
17439 // VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
17440 #define VK_EXT_opacity_micromap 1
17441 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
17442 #define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
17443 #define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
17444 
17445 typedef enum VkMicromapTypeEXT {
17446     VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
17447 #ifdef VK_ENABLE_BETA_EXTENSIONS
17448     VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
17449 #endif
17450     VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
17451 } VkMicromapTypeEXT;
17452 
17453 typedef enum VkBuildMicromapModeEXT {
17454     VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
17455     VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
17456 } VkBuildMicromapModeEXT;
17457 
17458 typedef enum VkCopyMicromapModeEXT {
17459     VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
17460     VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
17461     VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
17462     VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
17463     VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
17464 } VkCopyMicromapModeEXT;
17465 
17466 typedef enum VkOpacityMicromapFormatEXT {
17467     VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
17468     VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
17469     VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
17470 } VkOpacityMicromapFormatEXT;
17471 
17472 typedef enum VkOpacityMicromapSpecialIndexEXT {
17473     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
17474     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
17475     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
17476     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
17477     VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
17478 } VkOpacityMicromapSpecialIndexEXT;
17479 
17480 typedef enum VkAccelerationStructureCompatibilityKHR {
17481     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
17482     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
17483     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
17484 } VkAccelerationStructureCompatibilityKHR;
17485 
17486 typedef enum VkAccelerationStructureBuildTypeKHR {
17487     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
17488     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
17489     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
17490     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
17491 } VkAccelerationStructureBuildTypeKHR;
17492 
17493 typedef enum VkBuildMicromapFlagBitsEXT {
17494     VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
17495     VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
17496     VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
17497     VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17498 } VkBuildMicromapFlagBitsEXT;
17499 typedef VkFlags VkBuildMicromapFlagsEXT;
17500 
17501 typedef enum VkMicromapCreateFlagBitsEXT {
17502     VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
17503     VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17504 } VkMicromapCreateFlagBitsEXT;
17505 typedef VkFlags VkMicromapCreateFlagsEXT;
17506 typedef struct VkMicromapUsageEXT {
17507     uint32_t    count;
17508     uint32_t    subdivisionLevel;
17509     uint32_t    format;
17510 } VkMicromapUsageEXT;
17511 
17512 typedef union VkDeviceOrHostAddressKHR {
17513     VkDeviceAddress    deviceAddress;
17514     void*              hostAddress;
17515 } VkDeviceOrHostAddressKHR;
17516 
17517 typedef struct VkMicromapBuildInfoEXT {
17518     VkStructureType                     sType;
17519     const void*                         pNext;
17520     VkMicromapTypeEXT                   type;
17521     VkBuildMicromapFlagsEXT             flags;
17522     VkBuildMicromapModeEXT              mode;
17523     VkMicromapEXT                       dstMicromap;
17524     uint32_t                            usageCountsCount;
17525     const VkMicromapUsageEXT*           pUsageCounts;
17526     const VkMicromapUsageEXT* const*    ppUsageCounts;
17527     VkDeviceOrHostAddressConstKHR       data;
17528     VkDeviceOrHostAddressKHR            scratchData;
17529     VkDeviceOrHostAddressConstKHR       triangleArray;
17530     VkDeviceSize                        triangleArrayStride;
17531 } VkMicromapBuildInfoEXT;
17532 
17533 typedef struct VkMicromapCreateInfoEXT {
17534     VkStructureType             sType;
17535     const void*                 pNext;
17536     VkMicromapCreateFlagsEXT    createFlags;
17537     VkBuffer                    buffer;
17538     VkDeviceSize                offset;
17539     VkDeviceSize                size;
17540     VkMicromapTypeEXT           type;
17541     VkDeviceAddress             deviceAddress;
17542 } VkMicromapCreateInfoEXT;
17543 
17544 typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
17545     VkStructureType    sType;
17546     void*              pNext;
17547     VkBool32           micromap;
17548     VkBool32           micromapCaptureReplay;
17549     VkBool32           micromapHostCommands;
17550 } VkPhysicalDeviceOpacityMicromapFeaturesEXT;
17551 
17552 typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
17553     VkStructureType    sType;
17554     void*              pNext;
17555     uint32_t           maxOpacity2StateSubdivisionLevel;
17556     uint32_t           maxOpacity4StateSubdivisionLevel;
17557 } VkPhysicalDeviceOpacityMicromapPropertiesEXT;
17558 
17559 typedef struct VkMicromapVersionInfoEXT {
17560     VkStructureType    sType;
17561     const void*        pNext;
17562     const uint8_t*     pVersionData;
17563 } VkMicromapVersionInfoEXT;
17564 
17565 typedef struct VkCopyMicromapToMemoryInfoEXT {
17566     VkStructureType             sType;
17567     const void*                 pNext;
17568     VkMicromapEXT               src;
17569     VkDeviceOrHostAddressKHR    dst;
17570     VkCopyMicromapModeEXT       mode;
17571 } VkCopyMicromapToMemoryInfoEXT;
17572 
17573 typedef struct VkCopyMemoryToMicromapInfoEXT {
17574     VkStructureType                  sType;
17575     const void*                      pNext;
17576     VkDeviceOrHostAddressConstKHR    src;
17577     VkMicromapEXT                    dst;
17578     VkCopyMicromapModeEXT            mode;
17579 } VkCopyMemoryToMicromapInfoEXT;
17580 
17581 typedef struct VkCopyMicromapInfoEXT {
17582     VkStructureType          sType;
17583     const void*              pNext;
17584     VkMicromapEXT            src;
17585     VkMicromapEXT            dst;
17586     VkCopyMicromapModeEXT    mode;
17587 } VkCopyMicromapInfoEXT;
17588 
17589 typedef struct VkMicromapBuildSizesInfoEXT {
17590     VkStructureType    sType;
17591     const void*        pNext;
17592     VkDeviceSize       micromapSize;
17593     VkDeviceSize       buildScratchSize;
17594     VkBool32           discardable;
17595 } VkMicromapBuildSizesInfoEXT;
17596 
17597 typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
17598     VkStructureType                     sType;
17599     void*                               pNext;
17600     VkIndexType                         indexType;
17601     VkDeviceOrHostAddressConstKHR       indexBuffer;
17602     VkDeviceSize                        indexStride;
17603     uint32_t                            baseTriangle;
17604     uint32_t                            usageCountsCount;
17605     const VkMicromapUsageEXT*           pUsageCounts;
17606     const VkMicromapUsageEXT* const*    ppUsageCounts;
17607     VkMicromapEXT                       micromap;
17608 } VkAccelerationStructureTrianglesOpacityMicromapEXT;
17609 
17610 typedef struct VkMicromapTriangleEXT {
17611     uint32_t    dataOffset;
17612     uint16_t    subdivisionLevel;
17613     uint16_t    format;
17614 } VkMicromapTriangleEXT;
17615 
17616 typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice                                           device, const VkMicromapCreateInfoEXT*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkMicromapEXT*                        pMicromap);
17617 typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
17618 typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
17619 typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
17620 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
17621 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
17622 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
17623 typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
17624 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
17625 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
17626 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
17627 typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
17628 typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
17629 typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkMicromapBuildInfoEXT*  pBuildInfo, VkMicromapBuildSizesInfoEXT*           pSizeInfo);
17630 
17631 #ifndef VK_NO_PROTOTYPES
17632 VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
17633     VkDevice                                    device,
17634     const VkMicromapCreateInfoEXT*              pCreateInfo,
17635     const VkAllocationCallbacks*                pAllocator,
17636     VkMicromapEXT*                              pMicromap);
17637 
17638 VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
17639     VkDevice                                    device,
17640     VkMicromapEXT                               micromap,
17641     const VkAllocationCallbacks*                pAllocator);
17642 
17643 VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
17644     VkCommandBuffer                             commandBuffer,
17645     uint32_t                                    infoCount,
17646     const VkMicromapBuildInfoEXT*               pInfos);
17647 
17648 VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
17649     VkDevice                                    device,
17650     VkDeferredOperationKHR                      deferredOperation,
17651     uint32_t                                    infoCount,
17652     const VkMicromapBuildInfoEXT*               pInfos);
17653 
17654 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
17655     VkDevice                                    device,
17656     VkDeferredOperationKHR                      deferredOperation,
17657     const VkCopyMicromapInfoEXT*                pInfo);
17658 
17659 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
17660     VkDevice                                    device,
17661     VkDeferredOperationKHR                      deferredOperation,
17662     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
17663 
17664 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
17665     VkDevice                                    device,
17666     VkDeferredOperationKHR                      deferredOperation,
17667     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
17668 
17669 VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
17670     VkDevice                                    device,
17671     uint32_t                                    micromapCount,
17672     const VkMicromapEXT*                        pMicromaps,
17673     VkQueryType                                 queryType,
17674     size_t                                      dataSize,
17675     void*                                       pData,
17676     size_t                                      stride);
17677 
17678 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
17679     VkCommandBuffer                             commandBuffer,
17680     const VkCopyMicromapInfoEXT*                pInfo);
17681 
17682 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
17683     VkCommandBuffer                             commandBuffer,
17684     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
17685 
17686 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
17687     VkCommandBuffer                             commandBuffer,
17688     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
17689 
17690 VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
17691     VkCommandBuffer                             commandBuffer,
17692     uint32_t                                    micromapCount,
17693     const VkMicromapEXT*                        pMicromaps,
17694     VkQueryType                                 queryType,
17695     VkQueryPool                                 queryPool,
17696     uint32_t                                    firstQuery);
17697 
17698 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
17699     VkDevice                                    device,
17700     const VkMicromapVersionInfoEXT*             pVersionInfo,
17701     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
17702 
17703 VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
17704     VkDevice                                    device,
17705     VkAccelerationStructureBuildTypeKHR         buildType,
17706     const VkMicromapBuildInfoEXT*               pBuildInfo,
17707     VkMicromapBuildSizesInfoEXT*                pSizeInfo);
17708 #endif
17709 
17710 
17711 // VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
17712 #define VK_EXT_load_store_op_none 1
17713 #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
17714 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
17715 
17716 
17717 // VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
17718 #define VK_HUAWEI_cluster_culling_shader 1
17719 #define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
17720 #define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
17721 typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
17722     VkStructureType    sType;
17723     void*              pNext;
17724     VkBool32           clustercullingShader;
17725     VkBool32           multiviewClusterCullingShader;
17726 } VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
17727 
17728 typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
17729     VkStructureType    sType;
17730     void*              pNext;
17731     uint32_t           maxWorkGroupCount[3];
17732     uint32_t           maxWorkGroupSize[3];
17733     uint32_t           maxOutputClusterCount;
17734     VkDeviceSize       indirectBufferOffsetAlignment;
17735 } VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
17736 
17737 typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
17738     VkStructureType    sType;
17739     void*              pNext;
17740     VkBool32           clusterShadingRate;
17741 } VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
17742 
17743 typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
17744 typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
17745 
17746 #ifndef VK_NO_PROTOTYPES
17747 VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
17748     VkCommandBuffer                             commandBuffer,
17749     uint32_t                                    groupCountX,
17750     uint32_t                                    groupCountY,
17751     uint32_t                                    groupCountZ);
17752 
17753 VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
17754     VkCommandBuffer                             commandBuffer,
17755     VkBuffer                                    buffer,
17756     VkDeviceSize                                offset);
17757 #endif
17758 
17759 
17760 // VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
17761 #define VK_EXT_border_color_swizzle 1
17762 #define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
17763 #define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
17764 typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
17765     VkStructureType    sType;
17766     void*              pNext;
17767     VkBool32           borderColorSwizzle;
17768     VkBool32           borderColorSwizzleFromImage;
17769 } VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
17770 
17771 typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
17772     VkStructureType       sType;
17773     const void*           pNext;
17774     VkComponentMapping    components;
17775     VkBool32              srgb;
17776 } VkSamplerBorderColorComponentMappingCreateInfoEXT;
17777 
17778 
17779 
17780 // VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
17781 #define VK_EXT_pageable_device_local_memory 1
17782 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
17783 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
17784 typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
17785     VkStructureType    sType;
17786     void*              pNext;
17787     VkBool32           pageableDeviceLocalMemory;
17788 } VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
17789 
17790 typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice       device, VkDeviceMemory memory, float          priority);
17791 
17792 #ifndef VK_NO_PROTOTYPES
17793 VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
17794     VkDevice                                    device,
17795     VkDeviceMemory                              memory,
17796     float                                       priority);
17797 #endif
17798 
17799 
17800 // VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
17801 #define VK_ARM_shader_core_properties 1
17802 #define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
17803 #define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
17804 typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
17805     VkStructureType    sType;
17806     void*              pNext;
17807     uint32_t           pixelRate;
17808     uint32_t           texelRate;
17809     uint32_t           fmaRate;
17810 } VkPhysicalDeviceShaderCorePropertiesARM;
17811 
17812 
17813 
17814 // VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
17815 #define VK_ARM_scheduling_controls 1
17816 #define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1
17817 #define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
17818 typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
17819 
17820 // Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
17821 typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
17822 static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
17823 
17824 typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
17825     VkStructureType    sType;
17826     void*              pNext;
17827     uint32_t           shaderCoreCount;
17828 } VkDeviceQueueShaderCoreControlCreateInfoARM;
17829 
17830 typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
17831     VkStructureType    sType;
17832     void*              pNext;
17833     VkBool32           schedulingControls;
17834 } VkPhysicalDeviceSchedulingControlsFeaturesARM;
17835 
17836 typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
17837     VkStructureType                               sType;
17838     void*                                         pNext;
17839     VkPhysicalDeviceSchedulingControlsFlagsARM    schedulingControlsFlags;
17840 } VkPhysicalDeviceSchedulingControlsPropertiesARM;
17841 
17842 
17843 
17844 // VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
17845 #define VK_EXT_image_sliced_view_of_3d 1
17846 #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
17847 #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
17848 #define VK_REMAINING_3D_SLICES_EXT        (~0U)
17849 typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
17850     VkStructureType    sType;
17851     void*              pNext;
17852     VkBool32           imageSlicedViewOf3D;
17853 } VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
17854 
17855 typedef struct VkImageViewSlicedCreateInfoEXT {
17856     VkStructureType    sType;
17857     const void*        pNext;
17858     uint32_t           sliceOffset;
17859     uint32_t           sliceCount;
17860 } VkImageViewSlicedCreateInfoEXT;
17861 
17862 
17863 
17864 // VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
17865 #define VK_VALVE_descriptor_set_host_mapping 1
17866 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
17867 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
17868 typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
17869     VkStructureType    sType;
17870     void*              pNext;
17871     VkBool32           descriptorSetHostMapping;
17872 } VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
17873 
17874 typedef struct VkDescriptorSetBindingReferenceVALVE {
17875     VkStructureType          sType;
17876     const void*              pNext;
17877     VkDescriptorSetLayout    descriptorSetLayout;
17878     uint32_t                 binding;
17879 } VkDescriptorSetBindingReferenceVALVE;
17880 
17881 typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
17882     VkStructureType    sType;
17883     void*              pNext;
17884     size_t             descriptorOffset;
17885     uint32_t           descriptorSize;
17886 } VkDescriptorSetLayoutHostMappingInfoVALVE;
17887 
17888 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
17889 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
17890 
17891 #ifndef VK_NO_PROTOTYPES
17892 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
17893     VkDevice                                    device,
17894     const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
17895     VkDescriptorSetLayoutHostMappingInfoVALVE*  pHostMapping);
17896 
17897 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
17898     VkDevice                                    device,
17899     VkDescriptorSet                             descriptorSet,
17900     void**                                      ppData);
17901 #endif
17902 
17903 
17904 // VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
17905 #define VK_EXT_depth_clamp_zero_one 1
17906 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
17907 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
17908 typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT {
17909     VkStructureType    sType;
17910     void*              pNext;
17911     VkBool32           depthClampZeroOne;
17912 } VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
17913 
17914 
17915 
17916 // VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
17917 #define VK_EXT_non_seamless_cube_map 1
17918 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
17919 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
17920 typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
17921     VkStructureType    sType;
17922     void*              pNext;
17923     VkBool32           nonSeamlessCubeMap;
17924 } VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
17925 
17926 
17927 
17928 // VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
17929 #define VK_ARM_render_pass_striped 1
17930 #define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
17931 #define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
17932 typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
17933     VkStructureType    sType;
17934     void*              pNext;
17935     VkBool32           renderPassStriped;
17936 } VkPhysicalDeviceRenderPassStripedFeaturesARM;
17937 
17938 typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
17939     VkStructureType    sType;
17940     void*              pNext;
17941     VkExtent2D         renderPassStripeGranularity;
17942     uint32_t           maxRenderPassStripes;
17943 } VkPhysicalDeviceRenderPassStripedPropertiesARM;
17944 
17945 typedef struct VkRenderPassStripeInfoARM {
17946     VkStructureType    sType;
17947     const void*        pNext;
17948     VkRect2D           stripeArea;
17949 } VkRenderPassStripeInfoARM;
17950 
17951 typedef struct VkRenderPassStripeBeginInfoARM {
17952     VkStructureType                     sType;
17953     const void*                         pNext;
17954     uint32_t                            stripeInfoCount;
17955     const VkRenderPassStripeInfoARM*    pStripeInfos;
17956 } VkRenderPassStripeBeginInfoARM;
17957 
17958 typedef struct VkRenderPassStripeSubmitInfoARM {
17959     VkStructureType                 sType;
17960     const void*                     pNext;
17961     uint32_t                        stripeSemaphoreInfoCount;
17962     const VkSemaphoreSubmitInfo*    pStripeSemaphoreInfos;
17963 } VkRenderPassStripeSubmitInfoARM;
17964 
17965 
17966 
17967 // VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
17968 #define VK_QCOM_fragment_density_map_offset 1
17969 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 2
17970 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
17971 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
17972     VkStructureType    sType;
17973     void*              pNext;
17974     VkBool32           fragmentDensityMapOffset;
17975 } VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
17976 
17977 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
17978     VkStructureType    sType;
17979     void*              pNext;
17980     VkExtent2D         fragmentDensityOffsetGranularity;
17981 } VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
17982 
17983 typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM {
17984     VkStructureType      sType;
17985     const void*          pNext;
17986     uint32_t             fragmentDensityOffsetCount;
17987     const VkOffset2D*    pFragmentDensityOffsets;
17988 } VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
17989 
17990 
17991 
17992 // VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
17993 #define VK_NV_copy_memory_indirect 1
17994 #define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
17995 #define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
17996 typedef struct VkCopyMemoryIndirectCommandNV {
17997     VkDeviceAddress    srcAddress;
17998     VkDeviceAddress    dstAddress;
17999     VkDeviceSize       size;
18000 } VkCopyMemoryIndirectCommandNV;
18001 
18002 typedef struct VkCopyMemoryToImageIndirectCommandNV {
18003     VkDeviceAddress             srcAddress;
18004     uint32_t                    bufferRowLength;
18005     uint32_t                    bufferImageHeight;
18006     VkImageSubresourceLayers    imageSubresource;
18007     VkOffset3D                  imageOffset;
18008     VkExtent3D                  imageExtent;
18009 } VkCopyMemoryToImageIndirectCommandNV;
18010 
18011 typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
18012     VkStructureType    sType;
18013     void*              pNext;
18014     VkBool32           indirectCopy;
18015 } VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
18016 
18017 typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV {
18018     VkStructureType    sType;
18019     void*              pNext;
18020     VkQueueFlags       supportedQueues;
18021 } VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
18022 
18023 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
18024 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
18025 
18026 #ifndef VK_NO_PROTOTYPES
18027 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
18028     VkCommandBuffer                             commandBuffer,
18029     VkDeviceAddress                             copyBufferAddress,
18030     uint32_t                                    copyCount,
18031     uint32_t                                    stride);
18032 
18033 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
18034     VkCommandBuffer                             commandBuffer,
18035     VkDeviceAddress                             copyBufferAddress,
18036     uint32_t                                    copyCount,
18037     uint32_t                                    stride,
18038     VkImage                                     dstImage,
18039     VkImageLayout                               dstImageLayout,
18040     const VkImageSubresourceLayers*             pImageSubresources);
18041 #endif
18042 
18043 
18044 // VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
18045 #define VK_NV_memory_decompression 1
18046 #define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
18047 #define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
18048 
18049 // Flag bits for VkMemoryDecompressionMethodFlagBitsNV
18050 typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsNV;
18051 static const VkMemoryDecompressionMethodFlagBitsNV VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
18052 
18053 typedef VkFlags64 VkMemoryDecompressionMethodFlagsNV;
18054 typedef struct VkDecompressMemoryRegionNV {
18055     VkDeviceAddress                       srcAddress;
18056     VkDeviceAddress                       dstAddress;
18057     VkDeviceSize                          compressedSize;
18058     VkDeviceSize                          decompressedSize;
18059     VkMemoryDecompressionMethodFlagsNV    decompressionMethod;
18060 } VkDecompressMemoryRegionNV;
18061 
18062 typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV {
18063     VkStructureType    sType;
18064     void*              pNext;
18065     VkBool32           memoryDecompression;
18066 } VkPhysicalDeviceMemoryDecompressionFeaturesNV;
18067 
18068 typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV {
18069     VkStructureType                       sType;
18070     void*                                 pNext;
18071     VkMemoryDecompressionMethodFlagsNV    decompressionMethods;
18072     uint64_t                              maxDecompressionIndirectCount;
18073 } VkPhysicalDeviceMemoryDecompressionPropertiesNV;
18074 
18075 typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
18076 typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
18077 
18078 #ifndef VK_NO_PROTOTYPES
18079 VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
18080     VkCommandBuffer                             commandBuffer,
18081     uint32_t                                    decompressRegionCount,
18082     const VkDecompressMemoryRegionNV*           pDecompressMemoryRegions);
18083 
18084 VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
18085     VkCommandBuffer                             commandBuffer,
18086     VkDeviceAddress                             indirectCommandsAddress,
18087     VkDeviceAddress                             indirectCommandsCountAddress,
18088     uint32_t                                    stride);
18089 #endif
18090 
18091 
18092 // VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
18093 #define VK_NV_device_generated_commands_compute 1
18094 #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
18095 #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
18096 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
18097     VkStructureType    sType;
18098     void*              pNext;
18099     VkBool32           deviceGeneratedCompute;
18100     VkBool32           deviceGeneratedComputePipelines;
18101     VkBool32           deviceGeneratedComputeCaptureReplay;
18102 } VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
18103 
18104 typedef struct VkComputePipelineIndirectBufferInfoNV {
18105     VkStructureType    sType;
18106     const void*        pNext;
18107     VkDeviceAddress    deviceAddress;
18108     VkDeviceSize       size;
18109     VkDeviceAddress    pipelineDeviceAddressCaptureReplay;
18110 } VkComputePipelineIndirectBufferInfoNV;
18111 
18112 typedef struct VkPipelineIndirectDeviceAddressInfoNV {
18113     VkStructureType        sType;
18114     const void*            pNext;
18115     VkPipelineBindPoint    pipelineBindPoint;
18116     VkPipeline             pipeline;
18117 } VkPipelineIndirectDeviceAddressInfoNV;
18118 
18119 typedef struct VkBindPipelineIndirectCommandNV {
18120     VkDeviceAddress    pipelineAddress;
18121 } VkBindPipelineIndirectCommandNV;
18122 
18123 typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
18124 typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint           pipelineBindPoint, VkPipeline                    pipeline);
18125 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
18126 
18127 #ifndef VK_NO_PROTOTYPES
18128 VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
18129     VkDevice                                    device,
18130     const VkComputePipelineCreateInfo*          pCreateInfo,
18131     VkMemoryRequirements2*                      pMemoryRequirements);
18132 
18133 VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
18134     VkCommandBuffer                             commandBuffer,
18135     VkPipelineBindPoint                         pipelineBindPoint,
18136     VkPipeline                                  pipeline);
18137 
18138 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
18139     VkDevice                                    device,
18140     const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
18141 #endif
18142 
18143 
18144 // VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
18145 #define VK_NV_linear_color_attachment 1
18146 #define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
18147 #define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
18148 typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
18149     VkStructureType    sType;
18150     void*              pNext;
18151     VkBool32           linearColorAttachment;
18152 } VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
18153 
18154 
18155 
18156 // VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
18157 #define VK_GOOGLE_surfaceless_query 1
18158 #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
18159 #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
18160 
18161 
18162 // VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
18163 #define VK_EXT_image_compression_control_swapchain 1
18164 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
18165 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
18166 typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
18167     VkStructureType    sType;
18168     void*              pNext;
18169     VkBool32           imageCompressionControlSwapchain;
18170 } VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
18171 
18172 
18173 
18174 // VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
18175 #define VK_QCOM_image_processing 1
18176 #define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
18177 #define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
18178 typedef struct VkImageViewSampleWeightCreateInfoQCOM {
18179     VkStructureType    sType;
18180     const void*        pNext;
18181     VkOffset2D         filterCenter;
18182     VkExtent2D         filterSize;
18183     uint32_t           numPhases;
18184 } VkImageViewSampleWeightCreateInfoQCOM;
18185 
18186 typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
18187     VkStructureType    sType;
18188     void*              pNext;
18189     VkBool32           textureSampleWeighted;
18190     VkBool32           textureBoxFilter;
18191     VkBool32           textureBlockMatch;
18192 } VkPhysicalDeviceImageProcessingFeaturesQCOM;
18193 
18194 typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
18195     VkStructureType    sType;
18196     void*              pNext;
18197     uint32_t           maxWeightFilterPhases;
18198     VkExtent2D         maxWeightFilterDimension;
18199     VkExtent2D         maxBlockMatchRegion;
18200     VkExtent2D         maxBoxFilterBlockSize;
18201 } VkPhysicalDeviceImageProcessingPropertiesQCOM;
18202 
18203 
18204 
18205 // VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
18206 #define VK_EXT_nested_command_buffer 1
18207 #define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
18208 #define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
18209 typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
18210     VkStructureType    sType;
18211     void*              pNext;
18212     VkBool32           nestedCommandBuffer;
18213     VkBool32           nestedCommandBufferRendering;
18214     VkBool32           nestedCommandBufferSimultaneousUse;
18215 } VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
18216 
18217 typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
18218     VkStructureType    sType;
18219     void*              pNext;
18220     uint32_t           maxCommandBufferNestingLevel;
18221 } VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
18222 
18223 
18224 
18225 // VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
18226 #define VK_EXT_external_memory_acquire_unmodified 1
18227 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
18228 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
18229 typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
18230     VkStructureType    sType;
18231     const void*        pNext;
18232     VkBool32           acquireUnmodifiedMemory;
18233 } VkExternalMemoryAcquireUnmodifiedEXT;
18234 
18235 
18236 
18237 // VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
18238 #define VK_EXT_extended_dynamic_state3 1
18239 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
18240 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
18241 typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
18242     VkStructureType    sType;
18243     void*              pNext;
18244     VkBool32           extendedDynamicState3TessellationDomainOrigin;
18245     VkBool32           extendedDynamicState3DepthClampEnable;
18246     VkBool32           extendedDynamicState3PolygonMode;
18247     VkBool32           extendedDynamicState3RasterizationSamples;
18248     VkBool32           extendedDynamicState3SampleMask;
18249     VkBool32           extendedDynamicState3AlphaToCoverageEnable;
18250     VkBool32           extendedDynamicState3AlphaToOneEnable;
18251     VkBool32           extendedDynamicState3LogicOpEnable;
18252     VkBool32           extendedDynamicState3ColorBlendEnable;
18253     VkBool32           extendedDynamicState3ColorBlendEquation;
18254     VkBool32           extendedDynamicState3ColorWriteMask;
18255     VkBool32           extendedDynamicState3RasterizationStream;
18256     VkBool32           extendedDynamicState3ConservativeRasterizationMode;
18257     VkBool32           extendedDynamicState3ExtraPrimitiveOverestimationSize;
18258     VkBool32           extendedDynamicState3DepthClipEnable;
18259     VkBool32           extendedDynamicState3SampleLocationsEnable;
18260     VkBool32           extendedDynamicState3ColorBlendAdvanced;
18261     VkBool32           extendedDynamicState3ProvokingVertexMode;
18262     VkBool32           extendedDynamicState3LineRasterizationMode;
18263     VkBool32           extendedDynamicState3LineStippleEnable;
18264     VkBool32           extendedDynamicState3DepthClipNegativeOneToOne;
18265     VkBool32           extendedDynamicState3ViewportWScalingEnable;
18266     VkBool32           extendedDynamicState3ViewportSwizzle;
18267     VkBool32           extendedDynamicState3CoverageToColorEnable;
18268     VkBool32           extendedDynamicState3CoverageToColorLocation;
18269     VkBool32           extendedDynamicState3CoverageModulationMode;
18270     VkBool32           extendedDynamicState3CoverageModulationTableEnable;
18271     VkBool32           extendedDynamicState3CoverageModulationTable;
18272     VkBool32           extendedDynamicState3CoverageReductionMode;
18273     VkBool32           extendedDynamicState3RepresentativeFragmentTestEnable;
18274     VkBool32           extendedDynamicState3ShadingRateImageEnable;
18275 } VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
18276 
18277 typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
18278     VkStructureType    sType;
18279     void*              pNext;
18280     VkBool32           dynamicPrimitiveTopologyUnrestricted;
18281 } VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
18282 
18283 typedef struct VkColorBlendEquationEXT {
18284     VkBlendFactor    srcColorBlendFactor;
18285     VkBlendFactor    dstColorBlendFactor;
18286     VkBlendOp        colorBlendOp;
18287     VkBlendFactor    srcAlphaBlendFactor;
18288     VkBlendFactor    dstAlphaBlendFactor;
18289     VkBlendOp        alphaBlendOp;
18290 } VkColorBlendEquationEXT;
18291 
18292 typedef struct VkColorBlendAdvancedEXT {
18293     VkBlendOp            advancedBlendOp;
18294     VkBool32             srcPremultiplied;
18295     VkBool32             dstPremultiplied;
18296     VkBlendOverlapEXT    blendOverlap;
18297     VkBool32             clampResults;
18298 } VkColorBlendAdvancedEXT;
18299 
18300 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
18301 typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
18302 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  rasterizationSamples);
18303 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  samples, const VkSampleMask*    pSampleMask);
18304 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
18305 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
18306 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
18307 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
18308 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
18309 typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
18310 typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
18311 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
18312 typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
18313 typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
18314 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
18315 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
18316 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
18317 typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
18318 typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
18319 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
18320 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
18321 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
18322 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
18323 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
18324 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
18325 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
18326 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
18327 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
18328 typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
18329 typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
18330 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
18331 
18332 #ifndef VK_NO_PROTOTYPES
18333 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
18334     VkCommandBuffer                             commandBuffer,
18335     VkBool32                                    depthClampEnable);
18336 
18337 VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
18338     VkCommandBuffer                             commandBuffer,
18339     VkPolygonMode                               polygonMode);
18340 
18341 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
18342     VkCommandBuffer                             commandBuffer,
18343     VkSampleCountFlagBits                       rasterizationSamples);
18344 
18345 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
18346     VkCommandBuffer                             commandBuffer,
18347     VkSampleCountFlagBits                       samples,
18348     const VkSampleMask*                         pSampleMask);
18349 
18350 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
18351     VkCommandBuffer                             commandBuffer,
18352     VkBool32                                    alphaToCoverageEnable);
18353 
18354 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
18355     VkCommandBuffer                             commandBuffer,
18356     VkBool32                                    alphaToOneEnable);
18357 
18358 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
18359     VkCommandBuffer                             commandBuffer,
18360     VkBool32                                    logicOpEnable);
18361 
18362 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
18363     VkCommandBuffer                             commandBuffer,
18364     uint32_t                                    firstAttachment,
18365     uint32_t                                    attachmentCount,
18366     const VkBool32*                             pColorBlendEnables);
18367 
18368 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
18369     VkCommandBuffer                             commandBuffer,
18370     uint32_t                                    firstAttachment,
18371     uint32_t                                    attachmentCount,
18372     const VkColorBlendEquationEXT*              pColorBlendEquations);
18373 
18374 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
18375     VkCommandBuffer                             commandBuffer,
18376     uint32_t                                    firstAttachment,
18377     uint32_t                                    attachmentCount,
18378     const VkColorComponentFlags*                pColorWriteMasks);
18379 
18380 VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
18381     VkCommandBuffer                             commandBuffer,
18382     VkTessellationDomainOrigin                  domainOrigin);
18383 
18384 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
18385     VkCommandBuffer                             commandBuffer,
18386     uint32_t                                    rasterizationStream);
18387 
18388 VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
18389     VkCommandBuffer                             commandBuffer,
18390     VkConservativeRasterizationModeEXT          conservativeRasterizationMode);
18391 
18392 VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
18393     VkCommandBuffer                             commandBuffer,
18394     float                                       extraPrimitiveOverestimationSize);
18395 
18396 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
18397     VkCommandBuffer                             commandBuffer,
18398     VkBool32                                    depthClipEnable);
18399 
18400 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
18401     VkCommandBuffer                             commandBuffer,
18402     VkBool32                                    sampleLocationsEnable);
18403 
18404 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
18405     VkCommandBuffer                             commandBuffer,
18406     uint32_t                                    firstAttachment,
18407     uint32_t                                    attachmentCount,
18408     const VkColorBlendAdvancedEXT*              pColorBlendAdvanced);
18409 
18410 VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
18411     VkCommandBuffer                             commandBuffer,
18412     VkProvokingVertexModeEXT                    provokingVertexMode);
18413 
18414 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
18415     VkCommandBuffer                             commandBuffer,
18416     VkLineRasterizationModeEXT                  lineRasterizationMode);
18417 
18418 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
18419     VkCommandBuffer                             commandBuffer,
18420     VkBool32                                    stippledLineEnable);
18421 
18422 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
18423     VkCommandBuffer                             commandBuffer,
18424     VkBool32                                    negativeOneToOne);
18425 
18426 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
18427     VkCommandBuffer                             commandBuffer,
18428     VkBool32                                    viewportWScalingEnable);
18429 
18430 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
18431     VkCommandBuffer                             commandBuffer,
18432     uint32_t                                    firstViewport,
18433     uint32_t                                    viewportCount,
18434     const VkViewportSwizzleNV*                  pViewportSwizzles);
18435 
18436 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
18437     VkCommandBuffer                             commandBuffer,
18438     VkBool32                                    coverageToColorEnable);
18439 
18440 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
18441     VkCommandBuffer                             commandBuffer,
18442     uint32_t                                    coverageToColorLocation);
18443 
18444 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
18445     VkCommandBuffer                             commandBuffer,
18446     VkCoverageModulationModeNV                  coverageModulationMode);
18447 
18448 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
18449     VkCommandBuffer                             commandBuffer,
18450     VkBool32                                    coverageModulationTableEnable);
18451 
18452 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
18453     VkCommandBuffer                             commandBuffer,
18454     uint32_t                                    coverageModulationTableCount,
18455     const float*                                pCoverageModulationTable);
18456 
18457 VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
18458     VkCommandBuffer                             commandBuffer,
18459     VkBool32                                    shadingRateImageEnable);
18460 
18461 VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
18462     VkCommandBuffer                             commandBuffer,
18463     VkBool32                                    representativeFragmentTestEnable);
18464 
18465 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
18466     VkCommandBuffer                             commandBuffer,
18467     VkCoverageReductionModeNV                   coverageReductionMode);
18468 #endif
18469 
18470 
18471 // VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
18472 #define VK_EXT_subpass_merge_feedback 1
18473 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
18474 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
18475 
18476 typedef enum VkSubpassMergeStatusEXT {
18477     VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
18478     VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
18479     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
18480     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
18481     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
18482     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
18483     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
18484     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
18485     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
18486     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
18487     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
18488     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
18489     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
18490     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
18491     VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
18492 } VkSubpassMergeStatusEXT;
18493 typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
18494     VkStructureType    sType;
18495     void*              pNext;
18496     VkBool32           subpassMergeFeedback;
18497 } VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
18498 
18499 typedef struct VkRenderPassCreationControlEXT {
18500     VkStructureType    sType;
18501     const void*        pNext;
18502     VkBool32           disallowMerging;
18503 } VkRenderPassCreationControlEXT;
18504 
18505 typedef struct VkRenderPassCreationFeedbackInfoEXT {
18506     uint32_t    postMergeSubpassCount;
18507 } VkRenderPassCreationFeedbackInfoEXT;
18508 
18509 typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
18510     VkStructureType                         sType;
18511     const void*                             pNext;
18512     VkRenderPassCreationFeedbackInfoEXT*    pRenderPassFeedback;
18513 } VkRenderPassCreationFeedbackCreateInfoEXT;
18514 
18515 typedef struct VkRenderPassSubpassFeedbackInfoEXT {
18516     VkSubpassMergeStatusEXT    subpassMergeStatus;
18517     char                       description[VK_MAX_DESCRIPTION_SIZE];
18518     uint32_t                   postMergeIndex;
18519 } VkRenderPassSubpassFeedbackInfoEXT;
18520 
18521 typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
18522     VkStructureType                        sType;
18523     const void*                            pNext;
18524     VkRenderPassSubpassFeedbackInfoEXT*    pSubpassFeedback;
18525 } VkRenderPassSubpassFeedbackCreateInfoEXT;
18526 
18527 
18528 
18529 // VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
18530 #define VK_LUNARG_direct_driver_loading 1
18531 #define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
18532 #define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
18533 
18534 typedef enum VkDirectDriverLoadingModeLUNARG {
18535     VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
18536     VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
18537     VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
18538 } VkDirectDriverLoadingModeLUNARG;
18539 typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
18540 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
18541     VkInstance instance, const char* pName);
18542 
18543 typedef struct VkDirectDriverLoadingInfoLUNARG {
18544     VkStructureType                     sType;
18545     void*                               pNext;
18546     VkDirectDriverLoadingFlagsLUNARG    flags;
18547     PFN_vkGetInstanceProcAddrLUNARG     pfnGetInstanceProcAddr;
18548 } VkDirectDriverLoadingInfoLUNARG;
18549 
18550 typedef struct VkDirectDriverLoadingListLUNARG {
18551     VkStructureType                           sType;
18552     const void*                               pNext;
18553     VkDirectDriverLoadingModeLUNARG           mode;
18554     uint32_t                                  driverCount;
18555     const VkDirectDriverLoadingInfoLUNARG*    pDrivers;
18556 } VkDirectDriverLoadingListLUNARG;
18557 
18558 
18559 
18560 // VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
18561 #define VK_EXT_shader_module_identifier 1
18562 #define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
18563 #define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
18564 #define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
18565 typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
18566     VkStructureType    sType;
18567     void*              pNext;
18568     VkBool32           shaderModuleIdentifier;
18569 } VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
18570 
18571 typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
18572     VkStructureType    sType;
18573     void*              pNext;
18574     uint8_t            shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
18575 } VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
18576 
18577 typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
18578     VkStructureType    sType;
18579     const void*        pNext;
18580     uint32_t           identifierSize;
18581     const uint8_t*     pIdentifier;
18582 } VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
18583 
18584 typedef struct VkShaderModuleIdentifierEXT {
18585     VkStructureType    sType;
18586     void*              pNext;
18587     uint32_t           identifierSize;
18588     uint8_t            identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
18589 } VkShaderModuleIdentifierEXT;
18590 
18591 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
18592 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
18593 
18594 #ifndef VK_NO_PROTOTYPES
18595 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
18596     VkDevice                                    device,
18597     VkShaderModule                              shaderModule,
18598     VkShaderModuleIdentifierEXT*                pIdentifier);
18599 
18600 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
18601     VkDevice                                    device,
18602     const VkShaderModuleCreateInfo*             pCreateInfo,
18603     VkShaderModuleIdentifierEXT*                pIdentifier);
18604 #endif
18605 
18606 
18607 // VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
18608 #define VK_EXT_rasterization_order_attachment_access 1
18609 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
18610 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
18611 
18612 
18613 // VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
18614 #define VK_NV_optical_flow 1
18615 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
18616 #define VK_NV_OPTICAL_FLOW_SPEC_VERSION   1
18617 #define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
18618 
18619 typedef enum VkOpticalFlowPerformanceLevelNV {
18620     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
18621     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
18622     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
18623     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
18624     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
18625 } VkOpticalFlowPerformanceLevelNV;
18626 
18627 typedef enum VkOpticalFlowSessionBindingPointNV {
18628     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
18629     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
18630     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
18631     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
18632     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
18633     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
18634     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
18635     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
18636     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
18637     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
18638 } VkOpticalFlowSessionBindingPointNV;
18639 
18640 typedef enum VkOpticalFlowGridSizeFlagBitsNV {
18641     VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
18642     VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
18643     VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
18644     VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
18645     VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
18646     VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18647 } VkOpticalFlowGridSizeFlagBitsNV;
18648 typedef VkFlags   VkOpticalFlowGridSizeFlagsNV;
18649 
18650 typedef enum VkOpticalFlowUsageFlagBitsNV {
18651     VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
18652     VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
18653     VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
18654     VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
18655     VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
18656     VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
18657     VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18658 } VkOpticalFlowUsageFlagBitsNV;
18659 typedef VkFlags   VkOpticalFlowUsageFlagsNV;
18660 
18661 typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
18662     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
18663     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
18664     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
18665     VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
18666     VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
18667     VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18668 } VkOpticalFlowSessionCreateFlagBitsNV;
18669 typedef VkFlags   VkOpticalFlowSessionCreateFlagsNV;
18670 
18671 typedef enum VkOpticalFlowExecuteFlagBitsNV {
18672     VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
18673     VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18674 } VkOpticalFlowExecuteFlagBitsNV;
18675 typedef VkFlags   VkOpticalFlowExecuteFlagsNV;
18676 typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
18677     VkStructureType    sType;
18678     void*              pNext;
18679     VkBool32           opticalFlow;
18680 } VkPhysicalDeviceOpticalFlowFeaturesNV;
18681 
18682 typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
18683     VkStructureType                 sType;
18684     void*                           pNext;
18685     VkOpticalFlowGridSizeFlagsNV    supportedOutputGridSizes;
18686     VkOpticalFlowGridSizeFlagsNV    supportedHintGridSizes;
18687     VkBool32                        hintSupported;
18688     VkBool32                        costSupported;
18689     VkBool32                        bidirectionalFlowSupported;
18690     VkBool32                        globalFlowSupported;
18691     uint32_t                        minWidth;
18692     uint32_t                        minHeight;
18693     uint32_t                        maxWidth;
18694     uint32_t                        maxHeight;
18695     uint32_t                        maxNumRegionsOfInterest;
18696 } VkPhysicalDeviceOpticalFlowPropertiesNV;
18697 
18698 typedef struct VkOpticalFlowImageFormatInfoNV {
18699     VkStructureType              sType;
18700     const void*                  pNext;
18701     VkOpticalFlowUsageFlagsNV    usage;
18702 } VkOpticalFlowImageFormatInfoNV;
18703 
18704 typedef struct VkOpticalFlowImageFormatPropertiesNV {
18705     VkStructureType    sType;
18706     const void*        pNext;
18707     VkFormat           format;
18708 } VkOpticalFlowImageFormatPropertiesNV;
18709 
18710 typedef struct VkOpticalFlowSessionCreateInfoNV {
18711     VkStructureType                      sType;
18712     void*                                pNext;
18713     uint32_t                             width;
18714     uint32_t                             height;
18715     VkFormat                             imageFormat;
18716     VkFormat                             flowVectorFormat;
18717     VkFormat                             costFormat;
18718     VkOpticalFlowGridSizeFlagsNV         outputGridSize;
18719     VkOpticalFlowGridSizeFlagsNV         hintGridSize;
18720     VkOpticalFlowPerformanceLevelNV      performanceLevel;
18721     VkOpticalFlowSessionCreateFlagsNV    flags;
18722 } VkOpticalFlowSessionCreateInfoNV;
18723 
18724 typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
18725     VkStructureType    sType;
18726     void*              pNext;
18727     uint32_t           id;
18728     uint32_t           size;
18729     const void*        pPrivateData;
18730 } VkOpticalFlowSessionCreatePrivateDataInfoNV;
18731 
18732 typedef struct VkOpticalFlowExecuteInfoNV {
18733     VkStructureType                sType;
18734     void*                          pNext;
18735     VkOpticalFlowExecuteFlagsNV    flags;
18736     uint32_t                       regionCount;
18737     const VkRect2D*                pRegions;
18738 } VkOpticalFlowExecuteInfoNV;
18739 
18740 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
18741 typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
18742 typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
18743 typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
18744 typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
18745 
18746 #ifndef VK_NO_PROTOTYPES
18747 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
18748     VkPhysicalDevice                            physicalDevice,
18749     const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
18750     uint32_t*                                   pFormatCount,
18751     VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties);
18752 
18753 VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
18754     VkDevice                                    device,
18755     const VkOpticalFlowSessionCreateInfoNV*     pCreateInfo,
18756     const VkAllocationCallbacks*                pAllocator,
18757     VkOpticalFlowSessionNV*                     pSession);
18758 
18759 VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
18760     VkDevice                                    device,
18761     VkOpticalFlowSessionNV                      session,
18762     const VkAllocationCallbacks*                pAllocator);
18763 
18764 VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
18765     VkDevice                                    device,
18766     VkOpticalFlowSessionNV                      session,
18767     VkOpticalFlowSessionBindingPointNV          bindingPoint,
18768     VkImageView                                 view,
18769     VkImageLayout                               layout);
18770 
18771 VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
18772     VkCommandBuffer                             commandBuffer,
18773     VkOpticalFlowSessionNV                      session,
18774     const VkOpticalFlowExecuteInfoNV*           pExecuteInfo);
18775 #endif
18776 
18777 
18778 // VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
18779 #define VK_EXT_legacy_dithering 1
18780 #define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 2
18781 #define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
18782 typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
18783     VkStructureType    sType;
18784     void*              pNext;
18785     VkBool32           legacyDithering;
18786 } VkPhysicalDeviceLegacyDitheringFeaturesEXT;
18787 
18788 
18789 
18790 // VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
18791 #define VK_EXT_pipeline_protected_access 1
18792 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
18793 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
18794 typedef struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT {
18795     VkStructureType    sType;
18796     void*              pNext;
18797     VkBool32           pipelineProtectedAccess;
18798 } VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
18799 
18800 
18801 
18802 // VK_AMD_anti_lag is a preprocessor guard. Do not pass it to API calls.
18803 #define VK_AMD_anti_lag 1
18804 #define VK_AMD_ANTI_LAG_SPEC_VERSION      1
18805 #define VK_AMD_ANTI_LAG_EXTENSION_NAME    "VK_AMD_anti_lag"
18806 
18807 typedef enum VkAntiLagModeAMD {
18808     VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD = 0,
18809     VK_ANTI_LAG_MODE_ON_AMD = 1,
18810     VK_ANTI_LAG_MODE_OFF_AMD = 2,
18811     VK_ANTI_LAG_MODE_MAX_ENUM_AMD = 0x7FFFFFFF
18812 } VkAntiLagModeAMD;
18813 
18814 typedef enum VkAntiLagStageAMD {
18815     VK_ANTI_LAG_STAGE_INPUT_AMD = 0,
18816     VK_ANTI_LAG_STAGE_PRESENT_AMD = 1,
18817     VK_ANTI_LAG_STAGE_MAX_ENUM_AMD = 0x7FFFFFFF
18818 } VkAntiLagStageAMD;
18819 typedef struct VkPhysicalDeviceAntiLagFeaturesAMD {
18820     VkStructureType    sType;
18821     void*              pNext;
18822     VkBool32           antiLag;
18823 } VkPhysicalDeviceAntiLagFeaturesAMD;
18824 
18825 typedef struct VkAntiLagPresentationInfoAMD {
18826     VkStructureType      sType;
18827     void*                pNext;
18828     VkAntiLagStageAMD    stage;
18829     uint64_t             frameIndex;
18830 } VkAntiLagPresentationInfoAMD;
18831 
18832 typedef struct VkAntiLagDataAMD {
18833     VkStructureType                        sType;
18834     const void*                            pNext;
18835     VkAntiLagModeAMD                       mode;
18836     uint32_t                               maxFPS;
18837     const VkAntiLagPresentationInfoAMD*    pPresentationInfo;
18838 } VkAntiLagDataAMD;
18839 
18840 typedef void (VKAPI_PTR *PFN_vkAntiLagUpdateAMD)(VkDevice device, const VkAntiLagDataAMD* pData);
18841 
18842 #ifndef VK_NO_PROTOTYPES
18843 VKAPI_ATTR void VKAPI_CALL vkAntiLagUpdateAMD(
18844     VkDevice                                    device,
18845     const VkAntiLagDataAMD*                     pData);
18846 #endif
18847 
18848 
18849 // VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
18850 #define VK_EXT_shader_object 1
18851 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
18852 #define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
18853 #define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
18854 
18855 typedef enum VkShaderCodeTypeEXT {
18856     VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
18857     VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
18858     VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
18859 } VkShaderCodeTypeEXT;
18860 
18861 typedef enum VkShaderCreateFlagBitsEXT {
18862     VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
18863     VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
18864     VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
18865     VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
18866     VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
18867     VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
18868     VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
18869     VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18870 } VkShaderCreateFlagBitsEXT;
18871 typedef VkFlags VkShaderCreateFlagsEXT;
18872 typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
18873     VkStructureType    sType;
18874     void*              pNext;
18875     VkBool32           shaderObject;
18876 } VkPhysicalDeviceShaderObjectFeaturesEXT;
18877 
18878 typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
18879     VkStructureType    sType;
18880     void*              pNext;
18881     uint8_t            shaderBinaryUUID[VK_UUID_SIZE];
18882     uint32_t           shaderBinaryVersion;
18883 } VkPhysicalDeviceShaderObjectPropertiesEXT;
18884 
18885 typedef struct VkShaderCreateInfoEXT {
18886     VkStructureType                 sType;
18887     const void*                     pNext;
18888     VkShaderCreateFlagsEXT          flags;
18889     VkShaderStageFlagBits           stage;
18890     VkShaderStageFlags              nextStage;
18891     VkShaderCodeTypeEXT             codeType;
18892     size_t                          codeSize;
18893     const void*                     pCode;
18894     const char*                     pName;
18895     uint32_t                        setLayoutCount;
18896     const VkDescriptorSetLayout*    pSetLayouts;
18897     uint32_t                        pushConstantRangeCount;
18898     const VkPushConstantRange*      pPushConstantRanges;
18899     const VkSpecializationInfo*     pSpecializationInfo;
18900 } VkShaderCreateInfoEXT;
18901 
18902 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
18903 
18904 typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
18905 typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
18906 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
18907 typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
18908 
18909 #ifndef VK_NO_PROTOTYPES
18910 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
18911     VkDevice                                    device,
18912     uint32_t                                    createInfoCount,
18913     const VkShaderCreateInfoEXT*                pCreateInfos,
18914     const VkAllocationCallbacks*                pAllocator,
18915     VkShaderEXT*                                pShaders);
18916 
18917 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
18918     VkDevice                                    device,
18919     VkShaderEXT                                 shader,
18920     const VkAllocationCallbacks*                pAllocator);
18921 
18922 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
18923     VkDevice                                    device,
18924     VkShaderEXT                                 shader,
18925     size_t*                                     pDataSize,
18926     void*                                       pData);
18927 
18928 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
18929     VkCommandBuffer                             commandBuffer,
18930     uint32_t                                    stageCount,
18931     const VkShaderStageFlagBits*                pStages,
18932     const VkShaderEXT*                          pShaders);
18933 #endif
18934 
18935 
18936 // VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
18937 #define VK_QCOM_tile_properties 1
18938 #define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
18939 #define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
18940 typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
18941     VkStructureType    sType;
18942     void*              pNext;
18943     VkBool32           tileProperties;
18944 } VkPhysicalDeviceTilePropertiesFeaturesQCOM;
18945 
18946 typedef struct VkTilePropertiesQCOM {
18947     VkStructureType    sType;
18948     void*              pNext;
18949     VkExtent3D         tileSize;
18950     VkExtent2D         apronSize;
18951     VkOffset2D         origin;
18952 } VkTilePropertiesQCOM;
18953 
18954 typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
18955 typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
18956 
18957 #ifndef VK_NO_PROTOTYPES
18958 VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
18959     VkDevice                                    device,
18960     VkFramebuffer                               framebuffer,
18961     uint32_t*                                   pPropertiesCount,
18962     VkTilePropertiesQCOM*                       pProperties);
18963 
18964 VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
18965     VkDevice                                    device,
18966     const VkRenderingInfo*                      pRenderingInfo,
18967     VkTilePropertiesQCOM*                       pProperties);
18968 #endif
18969 
18970 
18971 // VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
18972 #define VK_SEC_amigo_profiling 1
18973 #define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
18974 #define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
18975 typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
18976     VkStructureType    sType;
18977     void*              pNext;
18978     VkBool32           amigoProfiling;
18979 } VkPhysicalDeviceAmigoProfilingFeaturesSEC;
18980 
18981 typedef struct VkAmigoProfilingSubmitInfoSEC {
18982     VkStructureType    sType;
18983     const void*        pNext;
18984     uint64_t           firstDrawTimestamp;
18985     uint64_t           swapBufferTimestamp;
18986 } VkAmigoProfilingSubmitInfoSEC;
18987 
18988 
18989 
18990 // VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
18991 #define VK_QCOM_multiview_per_view_viewports 1
18992 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
18993 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
18994 typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
18995     VkStructureType    sType;
18996     void*              pNext;
18997     VkBool32           multiviewPerViewViewports;
18998 } VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
18999 
19000 
19001 
19002 // VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
19003 #define VK_NV_ray_tracing_invocation_reorder 1
19004 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
19005 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
19006 
19007 typedef enum VkRayTracingInvocationReorderModeNV {
19008     VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0,
19009     VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1,
19010     VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 0x7FFFFFFF
19011 } VkRayTracingInvocationReorderModeNV;
19012 typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
19013     VkStructureType                        sType;
19014     void*                                  pNext;
19015     VkRayTracingInvocationReorderModeNV    rayTracingInvocationReorderReorderingHint;
19016 } VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
19017 
19018 typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
19019     VkStructureType    sType;
19020     void*              pNext;
19021     VkBool32           rayTracingInvocationReorder;
19022 } VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
19023 
19024 
19025 
19026 // VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
19027 #define VK_NV_extended_sparse_address_space 1
19028 #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
19029 #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
19030 typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
19031     VkStructureType    sType;
19032     void*              pNext;
19033     VkBool32           extendedSparseAddressSpace;
19034 } VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
19035 
19036 typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
19037     VkStructureType       sType;
19038     void*                 pNext;
19039     VkDeviceSize          extendedSparseAddressSpaceSize;
19040     VkImageUsageFlags     extendedSparseImageUsageFlags;
19041     VkBufferUsageFlags    extendedSparseBufferUsageFlags;
19042 } VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
19043 
19044 
19045 
19046 // VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
19047 #define VK_EXT_mutable_descriptor_type 1
19048 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
19049 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
19050 
19051 
19052 // VK_EXT_legacy_vertex_attributes is a preprocessor guard. Do not pass it to API calls.
19053 #define VK_EXT_legacy_vertex_attributes 1
19054 #define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION 1
19055 #define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME "VK_EXT_legacy_vertex_attributes"
19056 typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT {
19057     VkStructureType    sType;
19058     void*              pNext;
19059     VkBool32           legacyVertexAttributes;
19060 } VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
19061 
19062 typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT {
19063     VkStructureType    sType;
19064     void*              pNext;
19065     VkBool32           nativeUnalignedPerformance;
19066 } VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
19067 
19068 
19069 
19070 // VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
19071 #define VK_EXT_layer_settings 1
19072 #define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
19073 #define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
19074 
19075 typedef enum VkLayerSettingTypeEXT {
19076     VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
19077     VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
19078     VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
19079     VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
19080     VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
19081     VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
19082     VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
19083     VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
19084     VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19085 } VkLayerSettingTypeEXT;
19086 typedef struct VkLayerSettingEXT {
19087     const char*              pLayerName;
19088     const char*              pSettingName;
19089     VkLayerSettingTypeEXT    type;
19090     uint32_t                 valueCount;
19091     const void*              pValues;
19092 } VkLayerSettingEXT;
19093 
19094 typedef struct VkLayerSettingsCreateInfoEXT {
19095     VkStructureType             sType;
19096     const void*                 pNext;
19097     uint32_t                    settingCount;
19098     const VkLayerSettingEXT*    pSettings;
19099 } VkLayerSettingsCreateInfoEXT;
19100 
19101 
19102 
19103 // VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
19104 #define VK_ARM_shader_core_builtins 1
19105 #define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
19106 #define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
19107 typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
19108     VkStructureType    sType;
19109     void*              pNext;
19110     VkBool32           shaderCoreBuiltins;
19111 } VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
19112 
19113 typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
19114     VkStructureType    sType;
19115     void*              pNext;
19116     uint64_t           shaderCoreMask;
19117     uint32_t           shaderCoreCount;
19118     uint32_t           shaderWarpsPerCore;
19119 } VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
19120 
19121 
19122 
19123 // VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
19124 #define VK_EXT_pipeline_library_group_handles 1
19125 #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
19126 #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
19127 typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
19128     VkStructureType    sType;
19129     void*              pNext;
19130     VkBool32           pipelineLibraryGroupHandles;
19131 } VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
19132 
19133 
19134 
19135 // VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
19136 #define VK_EXT_dynamic_rendering_unused_attachments 1
19137 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
19138 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
19139 typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
19140     VkStructureType    sType;
19141     void*              pNext;
19142     VkBool32           dynamicRenderingUnusedAttachments;
19143 } VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
19144 
19145 
19146 
19147 // VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
19148 #define VK_NV_low_latency2 1
19149 #define VK_NV_LOW_LATENCY_2_SPEC_VERSION  2
19150 #define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
19151 
19152 typedef enum VkLatencyMarkerNV {
19153     VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
19154     VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
19155     VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
19156     VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
19157     VK_LATENCY_MARKER_PRESENT_START_NV = 4,
19158     VK_LATENCY_MARKER_PRESENT_END_NV = 5,
19159     VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
19160     VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
19161     VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
19162     VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
19163     VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
19164     VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
19165     VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
19166 } VkLatencyMarkerNV;
19167 
19168 typedef enum VkOutOfBandQueueTypeNV {
19169     VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
19170     VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
19171     VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
19172 } VkOutOfBandQueueTypeNV;
19173 typedef struct VkLatencySleepModeInfoNV {
19174     VkStructureType    sType;
19175     const void*        pNext;
19176     VkBool32           lowLatencyMode;
19177     VkBool32           lowLatencyBoost;
19178     uint32_t           minimumIntervalUs;
19179 } VkLatencySleepModeInfoNV;
19180 
19181 typedef struct VkLatencySleepInfoNV {
19182     VkStructureType    sType;
19183     const void*        pNext;
19184     VkSemaphore        signalSemaphore;
19185     uint64_t           value;
19186 } VkLatencySleepInfoNV;
19187 
19188 typedef struct VkSetLatencyMarkerInfoNV {
19189     VkStructureType      sType;
19190     const void*          pNext;
19191     uint64_t             presentID;
19192     VkLatencyMarkerNV    marker;
19193 } VkSetLatencyMarkerInfoNV;
19194 
19195 typedef struct VkLatencyTimingsFrameReportNV {
19196     VkStructureType    sType;
19197     const void*        pNext;
19198     uint64_t           presentID;
19199     uint64_t           inputSampleTimeUs;
19200     uint64_t           simStartTimeUs;
19201     uint64_t           simEndTimeUs;
19202     uint64_t           renderSubmitStartTimeUs;
19203     uint64_t           renderSubmitEndTimeUs;
19204     uint64_t           presentStartTimeUs;
19205     uint64_t           presentEndTimeUs;
19206     uint64_t           driverStartTimeUs;
19207     uint64_t           driverEndTimeUs;
19208     uint64_t           osRenderQueueStartTimeUs;
19209     uint64_t           osRenderQueueEndTimeUs;
19210     uint64_t           gpuRenderStartTimeUs;
19211     uint64_t           gpuRenderEndTimeUs;
19212 } VkLatencyTimingsFrameReportNV;
19213 
19214 typedef struct VkGetLatencyMarkerInfoNV {
19215     VkStructureType                   sType;
19216     const void*                       pNext;
19217     uint32_t                          timingCount;
19218     VkLatencyTimingsFrameReportNV*    pTimings;
19219 } VkGetLatencyMarkerInfoNV;
19220 
19221 typedef struct VkLatencySubmissionPresentIdNV {
19222     VkStructureType    sType;
19223     const void*        pNext;
19224     uint64_t           presentID;
19225 } VkLatencySubmissionPresentIdNV;
19226 
19227 typedef struct VkSwapchainLatencyCreateInfoNV {
19228     VkStructureType    sType;
19229     const void*        pNext;
19230     VkBool32           latencyModeEnable;
19231 } VkSwapchainLatencyCreateInfoNV;
19232 
19233 typedef struct VkOutOfBandQueueTypeInfoNV {
19234     VkStructureType           sType;
19235     const void*               pNext;
19236     VkOutOfBandQueueTypeNV    queueType;
19237 } VkOutOfBandQueueTypeInfoNV;
19238 
19239 typedef struct VkLatencySurfaceCapabilitiesNV {
19240     VkStructureType      sType;
19241     const void*          pNext;
19242     uint32_t             presentModeCount;
19243     VkPresentModeKHR*    pPresentModes;
19244 } VkLatencySurfaceCapabilitiesNV;
19245 
19246 typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
19247 typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
19248 typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
19249 typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
19250 typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
19251 
19252 #ifndef VK_NO_PROTOTYPES
19253 VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
19254     VkDevice                                    device,
19255     VkSwapchainKHR                              swapchain,
19256     const VkLatencySleepModeInfoNV*             pSleepModeInfo);
19257 
19258 VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
19259     VkDevice                                    device,
19260     VkSwapchainKHR                              swapchain,
19261     const VkLatencySleepInfoNV*                 pSleepInfo);
19262 
19263 VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
19264     VkDevice                                    device,
19265     VkSwapchainKHR                              swapchain,
19266     const VkSetLatencyMarkerInfoNV*             pLatencyMarkerInfo);
19267 
19268 VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
19269     VkDevice                                    device,
19270     VkSwapchainKHR                              swapchain,
19271     VkGetLatencyMarkerInfoNV*                   pLatencyMarkerInfo);
19272 
19273 VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
19274     VkQueue                                     queue,
19275     const VkOutOfBandQueueTypeInfoNV*           pQueueTypeInfo);
19276 #endif
19277 
19278 
19279 // VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
19280 #define VK_QCOM_multiview_per_view_render_areas 1
19281 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
19282 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
19283 typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
19284     VkStructureType    sType;
19285     void*              pNext;
19286     VkBool32           multiviewPerViewRenderAreas;
19287 } VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
19288 
19289 typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
19290     VkStructureType    sType;
19291     const void*        pNext;
19292     uint32_t           perViewRenderAreaCount;
19293     const VkRect2D*    pPerViewRenderAreas;
19294 } VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
19295 
19296 
19297 
19298 // VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
19299 #define VK_NV_per_stage_descriptor_set 1
19300 #define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
19301 #define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
19302 typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
19303     VkStructureType    sType;
19304     void*              pNext;
19305     VkBool32           perStageDescriptorSet;
19306     VkBool32           dynamicPipelineLayout;
19307 } VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
19308 
19309 
19310 
19311 // VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
19312 #define VK_QCOM_image_processing2 1
19313 #define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
19314 #define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
19315 
19316 typedef enum VkBlockMatchWindowCompareModeQCOM {
19317     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
19318     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
19319     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
19320 } VkBlockMatchWindowCompareModeQCOM;
19321 typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
19322     VkStructureType    sType;
19323     void*              pNext;
19324     VkBool32           textureBlockMatch2;
19325 } VkPhysicalDeviceImageProcessing2FeaturesQCOM;
19326 
19327 typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
19328     VkStructureType    sType;
19329     void*              pNext;
19330     VkExtent2D         maxBlockMatchWindow;
19331 } VkPhysicalDeviceImageProcessing2PropertiesQCOM;
19332 
19333 typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
19334     VkStructureType                      sType;
19335     const void*                          pNext;
19336     VkExtent2D                           windowExtent;
19337     VkBlockMatchWindowCompareModeQCOM    windowCompareMode;
19338 } VkSamplerBlockMatchWindowCreateInfoQCOM;
19339 
19340 
19341 
19342 // VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
19343 #define VK_QCOM_filter_cubic_weights 1
19344 #define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
19345 #define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
19346 
19347 typedef enum VkCubicFilterWeightsQCOM {
19348     VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
19349     VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
19350     VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
19351     VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
19352     VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
19353 } VkCubicFilterWeightsQCOM;
19354 typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
19355     VkStructureType    sType;
19356     void*              pNext;
19357     VkBool32           selectableCubicWeights;
19358 } VkPhysicalDeviceCubicWeightsFeaturesQCOM;
19359 
19360 typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
19361     VkStructureType             sType;
19362     const void*                 pNext;
19363     VkCubicFilterWeightsQCOM    cubicWeights;
19364 } VkSamplerCubicWeightsCreateInfoQCOM;
19365 
19366 typedef struct VkBlitImageCubicWeightsInfoQCOM {
19367     VkStructureType             sType;
19368     const void*                 pNext;
19369     VkCubicFilterWeightsQCOM    cubicWeights;
19370 } VkBlitImageCubicWeightsInfoQCOM;
19371 
19372 
19373 
19374 // VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
19375 #define VK_QCOM_ycbcr_degamma 1
19376 #define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
19377 #define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
19378 typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
19379     VkStructureType    sType;
19380     void*              pNext;
19381     VkBool32           ycbcrDegamma;
19382 } VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
19383 
19384 typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
19385     VkStructureType    sType;
19386     void*              pNext;
19387     VkBool32           enableYDegamma;
19388     VkBool32           enableCbCrDegamma;
19389 } VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
19390 
19391 
19392 
19393 // VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
19394 #define VK_QCOM_filter_cubic_clamp 1
19395 #define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
19396 #define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
19397 typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
19398     VkStructureType    sType;
19399     void*              pNext;
19400     VkBool32           cubicRangeClamp;
19401 } VkPhysicalDeviceCubicClampFeaturesQCOM;
19402 
19403 
19404 
19405 // VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
19406 #define VK_EXT_attachment_feedback_loop_dynamic_state 1
19407 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
19408 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
19409 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
19410     VkStructureType    sType;
19411     void*              pNext;
19412     VkBool32           attachmentFeedbackLoopDynamicState;
19413 } VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
19414 
19415 typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
19416 
19417 #ifndef VK_NO_PROTOTYPES
19418 VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
19419     VkCommandBuffer                             commandBuffer,
19420     VkImageAspectFlags                          aspectMask);
19421 #endif
19422 
19423 
19424 // VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
19425 #define VK_MSFT_layered_driver 1
19426 #define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
19427 #define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
19428 
19429 typedef enum VkLayeredDriverUnderlyingApiMSFT {
19430     VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
19431     VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
19432     VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
19433 } VkLayeredDriverUnderlyingApiMSFT;
19434 typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
19435     VkStructureType                     sType;
19436     void*                               pNext;
19437     VkLayeredDriverUnderlyingApiMSFT    underlyingAPI;
19438 } VkPhysicalDeviceLayeredDriverPropertiesMSFT;
19439 
19440 
19441 
19442 // VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
19443 #define VK_NV_descriptor_pool_overallocation 1
19444 #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
19445 #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
19446 typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
19447     VkStructureType    sType;
19448     void*              pNext;
19449     VkBool32           descriptorPoolOverallocation;
19450 } VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
19451 
19452 
19453 
19454 // VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
19455 #define VK_NV_raw_access_chains 1
19456 #define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
19457 #define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
19458 typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
19459     VkStructureType    sType;
19460     void*              pNext;
19461     VkBool32           shaderRawAccessChains;
19462 } VkPhysicalDeviceRawAccessChainsFeaturesNV;
19463 
19464 
19465 
19466 // VK_NV_command_buffer_inheritance is a preprocessor guard. Do not pass it to API calls.
19467 #define VK_NV_command_buffer_inheritance 1
19468 #define VK_NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION 1
19469 #define VK_NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME "VK_NV_command_buffer_inheritance"
19470 typedef struct VkPhysicalDeviceCommandBufferInheritanceFeaturesNV {
19471     VkStructureType    sType;
19472     void*              pNext;
19473     VkBool32           commandBufferInheritance;
19474 } VkPhysicalDeviceCommandBufferInheritanceFeaturesNV;
19475 
19476 
19477 
19478 // VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
19479 #define VK_NV_shader_atomic_float16_vector 1
19480 #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
19481 #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
19482 typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
19483     VkStructureType    sType;
19484     void*              pNext;
19485     VkBool32           shaderFloat16VectorAtomics;
19486 } VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
19487 
19488 
19489 
19490 // VK_EXT_shader_replicated_composites is a preprocessor guard. Do not pass it to API calls.
19491 #define VK_EXT_shader_replicated_composites 1
19492 #define VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION 1
19493 #define VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME "VK_EXT_shader_replicated_composites"
19494 typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
19495     VkStructureType    sType;
19496     void*              pNext;
19497     VkBool32           shaderReplicatedComposites;
19498 } VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT;
19499 
19500 
19501 
19502 // VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls.
19503 #define VK_NV_ray_tracing_validation 1
19504 #define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1
19505 #define VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME "VK_NV_ray_tracing_validation"
19506 typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
19507     VkStructureType    sType;
19508     void*              pNext;
19509     VkBool32           rayTracingValidation;
19510 } VkPhysicalDeviceRayTracingValidationFeaturesNV;
19511 
19512 
19513 
19514 // VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
19515 #define VK_MESA_image_alignment_control 1
19516 #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
19517 #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME "VK_MESA_image_alignment_control"
19518 typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA {
19519     VkStructureType    sType;
19520     void*              pNext;
19521     VkBool32           imageAlignmentControl;
19522 } VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
19523 
19524 typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA {
19525     VkStructureType    sType;
19526     void*              pNext;
19527     uint32_t           supportedImageAlignmentMask;
19528 } VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
19529 
19530 typedef struct VkImageAlignmentControlCreateInfoMESA {
19531     VkStructureType    sType;
19532     const void*        pNext;
19533     uint32_t           maximumRequestedAlignment;
19534 } VkImageAlignmentControlCreateInfoMESA;
19535 
19536 
19537 
19538 // VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
19539 #define VK_KHR_acceleration_structure 1
19540 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
19541 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
19542 
19543 typedef enum VkBuildAccelerationStructureModeKHR {
19544     VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
19545     VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
19546     VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
19547 } VkBuildAccelerationStructureModeKHR;
19548 
19549 typedef enum VkAccelerationStructureCreateFlagBitsKHR {
19550     VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
19551     VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
19552     VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
19553     VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
19554 } VkAccelerationStructureCreateFlagBitsKHR;
19555 typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
19556 typedef struct VkAccelerationStructureBuildRangeInfoKHR {
19557     uint32_t    primitiveCount;
19558     uint32_t    primitiveOffset;
19559     uint32_t    firstVertex;
19560     uint32_t    transformOffset;
19561 } VkAccelerationStructureBuildRangeInfoKHR;
19562 
19563 typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
19564     VkStructureType                  sType;
19565     const void*                      pNext;
19566     VkFormat                         vertexFormat;
19567     VkDeviceOrHostAddressConstKHR    vertexData;
19568     VkDeviceSize                     vertexStride;
19569     uint32_t                         maxVertex;
19570     VkIndexType                      indexType;
19571     VkDeviceOrHostAddressConstKHR    indexData;
19572     VkDeviceOrHostAddressConstKHR    transformData;
19573 } VkAccelerationStructureGeometryTrianglesDataKHR;
19574 
19575 typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
19576     VkStructureType                  sType;
19577     const void*                      pNext;
19578     VkDeviceOrHostAddressConstKHR    data;
19579     VkDeviceSize                     stride;
19580 } VkAccelerationStructureGeometryAabbsDataKHR;
19581 
19582 typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
19583     VkStructureType                  sType;
19584     const void*                      pNext;
19585     VkBool32                         arrayOfPointers;
19586     VkDeviceOrHostAddressConstKHR    data;
19587 } VkAccelerationStructureGeometryInstancesDataKHR;
19588 
19589 typedef union VkAccelerationStructureGeometryDataKHR {
19590     VkAccelerationStructureGeometryTrianglesDataKHR    triangles;
19591     VkAccelerationStructureGeometryAabbsDataKHR        aabbs;
19592     VkAccelerationStructureGeometryInstancesDataKHR    instances;
19593 } VkAccelerationStructureGeometryDataKHR;
19594 
19595 typedef struct VkAccelerationStructureGeometryKHR {
19596     VkStructureType                           sType;
19597     const void*                               pNext;
19598     VkGeometryTypeKHR                         geometryType;
19599     VkAccelerationStructureGeometryDataKHR    geometry;
19600     VkGeometryFlagsKHR                        flags;
19601 } VkAccelerationStructureGeometryKHR;
19602 
19603 typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
19604     VkStructureType                                     sType;
19605     const void*                                         pNext;
19606     VkAccelerationStructureTypeKHR                      type;
19607     VkBuildAccelerationStructureFlagsKHR                flags;
19608     VkBuildAccelerationStructureModeKHR                 mode;
19609     VkAccelerationStructureKHR                          srcAccelerationStructure;
19610     VkAccelerationStructureKHR                          dstAccelerationStructure;
19611     uint32_t                                            geometryCount;
19612     const VkAccelerationStructureGeometryKHR*           pGeometries;
19613     const VkAccelerationStructureGeometryKHR* const*    ppGeometries;
19614     VkDeviceOrHostAddressKHR                            scratchData;
19615 } VkAccelerationStructureBuildGeometryInfoKHR;
19616 
19617 typedef struct VkAccelerationStructureCreateInfoKHR {
19618     VkStructureType                          sType;
19619     const void*                              pNext;
19620     VkAccelerationStructureCreateFlagsKHR    createFlags;
19621     VkBuffer                                 buffer;
19622     VkDeviceSize                             offset;
19623     VkDeviceSize                             size;
19624     VkAccelerationStructureTypeKHR           type;
19625     VkDeviceAddress                          deviceAddress;
19626 } VkAccelerationStructureCreateInfoKHR;
19627 
19628 typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
19629     VkStructureType                      sType;
19630     const void*                          pNext;
19631     uint32_t                             accelerationStructureCount;
19632     const VkAccelerationStructureKHR*    pAccelerationStructures;
19633 } VkWriteDescriptorSetAccelerationStructureKHR;
19634 
19635 typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
19636     VkStructureType    sType;
19637     void*              pNext;
19638     VkBool32           accelerationStructure;
19639     VkBool32           accelerationStructureCaptureReplay;
19640     VkBool32           accelerationStructureIndirectBuild;
19641     VkBool32           accelerationStructureHostCommands;
19642     VkBool32           descriptorBindingAccelerationStructureUpdateAfterBind;
19643 } VkPhysicalDeviceAccelerationStructureFeaturesKHR;
19644 
19645 typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
19646     VkStructureType    sType;
19647     void*              pNext;
19648     uint64_t           maxGeometryCount;
19649     uint64_t           maxInstanceCount;
19650     uint64_t           maxPrimitiveCount;
19651     uint32_t           maxPerStageDescriptorAccelerationStructures;
19652     uint32_t           maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
19653     uint32_t           maxDescriptorSetAccelerationStructures;
19654     uint32_t           maxDescriptorSetUpdateAfterBindAccelerationStructures;
19655     uint32_t           minAccelerationStructureScratchOffsetAlignment;
19656 } VkPhysicalDeviceAccelerationStructurePropertiesKHR;
19657 
19658 typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
19659     VkStructureType               sType;
19660     const void*                   pNext;
19661     VkAccelerationStructureKHR    accelerationStructure;
19662 } VkAccelerationStructureDeviceAddressInfoKHR;
19663 
19664 typedef struct VkAccelerationStructureVersionInfoKHR {
19665     VkStructureType    sType;
19666     const void*        pNext;
19667     const uint8_t*     pVersionData;
19668 } VkAccelerationStructureVersionInfoKHR;
19669 
19670 typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
19671     VkStructureType                       sType;
19672     const void*                           pNext;
19673     VkAccelerationStructureKHR            src;
19674     VkDeviceOrHostAddressKHR              dst;
19675     VkCopyAccelerationStructureModeKHR    mode;
19676 } VkCopyAccelerationStructureToMemoryInfoKHR;
19677 
19678 typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
19679     VkStructureType                       sType;
19680     const void*                           pNext;
19681     VkDeviceOrHostAddressConstKHR         src;
19682     VkAccelerationStructureKHR            dst;
19683     VkCopyAccelerationStructureModeKHR    mode;
19684 } VkCopyMemoryToAccelerationStructureInfoKHR;
19685 
19686 typedef struct VkCopyAccelerationStructureInfoKHR {
19687     VkStructureType                       sType;
19688     const void*                           pNext;
19689     VkAccelerationStructureKHR            src;
19690     VkAccelerationStructureKHR            dst;
19691     VkCopyAccelerationStructureModeKHR    mode;
19692 } VkCopyAccelerationStructureInfoKHR;
19693 
19694 typedef struct VkAccelerationStructureBuildSizesInfoKHR {
19695     VkStructureType    sType;
19696     const void*        pNext;
19697     VkDeviceSize       accelerationStructureSize;
19698     VkDeviceSize       updateScratchSize;
19699     VkDeviceSize       buildScratchSize;
19700 } VkAccelerationStructureBuildSizesInfoKHR;
19701 
19702 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure);
19703 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
19704 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
19705 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);
19706 typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
19707 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
19708 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
19709 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
19710 typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
19711 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
19712 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
19713 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
19714 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
19715 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
19716 typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
19717 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkAccelerationStructureBuildGeometryInfoKHR*  pBuildInfo, const uint32_t*  pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR*           pSizeInfo);
19718 
19719 #ifndef VK_NO_PROTOTYPES
19720 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
19721     VkDevice                                    device,
19722     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
19723     const VkAllocationCallbacks*                pAllocator,
19724     VkAccelerationStructureKHR*                 pAccelerationStructure);
19725 
19726 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
19727     VkDevice                                    device,
19728     VkAccelerationStructureKHR                  accelerationStructure,
19729     const VkAllocationCallbacks*                pAllocator);
19730 
19731 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
19732     VkCommandBuffer                             commandBuffer,
19733     uint32_t                                    infoCount,
19734     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
19735     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
19736 
19737 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
19738     VkCommandBuffer                             commandBuffer,
19739     uint32_t                                    infoCount,
19740     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
19741     const VkDeviceAddress*                      pIndirectDeviceAddresses,
19742     const uint32_t*                             pIndirectStrides,
19743     const uint32_t* const*                      ppMaxPrimitiveCounts);
19744 
19745 VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
19746     VkDevice                                    device,
19747     VkDeferredOperationKHR                      deferredOperation,
19748     uint32_t                                    infoCount,
19749     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
19750     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
19751 
19752 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
19753     VkDevice                                    device,
19754     VkDeferredOperationKHR                      deferredOperation,
19755     const VkCopyAccelerationStructureInfoKHR*   pInfo);
19756 
19757 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
19758     VkDevice                                    device,
19759     VkDeferredOperationKHR                      deferredOperation,
19760     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
19761 
19762 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
19763     VkDevice                                    device,
19764     VkDeferredOperationKHR                      deferredOperation,
19765     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
19766 
19767 VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
19768     VkDevice                                    device,
19769     uint32_t                                    accelerationStructureCount,
19770     const VkAccelerationStructureKHR*           pAccelerationStructures,
19771     VkQueryType                                 queryType,
19772     size_t                                      dataSize,
19773     void*                                       pData,
19774     size_t                                      stride);
19775 
19776 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
19777     VkCommandBuffer                             commandBuffer,
19778     const VkCopyAccelerationStructureInfoKHR*   pInfo);
19779 
19780 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
19781     VkCommandBuffer                             commandBuffer,
19782     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
19783 
19784 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
19785     VkCommandBuffer                             commandBuffer,
19786     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
19787 
19788 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
19789     VkDevice                                    device,
19790     const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
19791 
19792 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
19793     VkCommandBuffer                             commandBuffer,
19794     uint32_t                                    accelerationStructureCount,
19795     const VkAccelerationStructureKHR*           pAccelerationStructures,
19796     VkQueryType                                 queryType,
19797     VkQueryPool                                 queryPool,
19798     uint32_t                                    firstQuery);
19799 
19800 VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
19801     VkDevice                                    device,
19802     const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
19803     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
19804 
19805 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
19806     VkDevice                                    device,
19807     VkAccelerationStructureBuildTypeKHR         buildType,
19808     const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
19809     const uint32_t*                             pMaxPrimitiveCounts,
19810     VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo);
19811 #endif
19812 
19813 
19814 // VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
19815 #define VK_KHR_ray_tracing_pipeline 1
19816 #define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
19817 #define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
19818 
19819 typedef enum VkShaderGroupShaderKHR {
19820     VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
19821     VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
19822     VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
19823     VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
19824     VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
19825 } VkShaderGroupShaderKHR;
19826 typedef struct VkRayTracingShaderGroupCreateInfoKHR {
19827     VkStructureType                   sType;
19828     const void*                       pNext;
19829     VkRayTracingShaderGroupTypeKHR    type;
19830     uint32_t                          generalShader;
19831     uint32_t                          closestHitShader;
19832     uint32_t                          anyHitShader;
19833     uint32_t                          intersectionShader;
19834     const void*                       pShaderGroupCaptureReplayHandle;
19835 } VkRayTracingShaderGroupCreateInfoKHR;
19836 
19837 typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
19838     VkStructureType    sType;
19839     const void*        pNext;
19840     uint32_t           maxPipelineRayPayloadSize;
19841     uint32_t           maxPipelineRayHitAttributeSize;
19842 } VkRayTracingPipelineInterfaceCreateInfoKHR;
19843 
19844 typedef struct VkRayTracingPipelineCreateInfoKHR {
19845     VkStructureType                                      sType;
19846     const void*                                          pNext;
19847     VkPipelineCreateFlags                                flags;
19848     uint32_t                                             stageCount;
19849     const VkPipelineShaderStageCreateInfo*               pStages;
19850     uint32_t                                             groupCount;
19851     const VkRayTracingShaderGroupCreateInfoKHR*          pGroups;
19852     uint32_t                                             maxPipelineRayRecursionDepth;
19853     const VkPipelineLibraryCreateInfoKHR*                pLibraryInfo;
19854     const VkRayTracingPipelineInterfaceCreateInfoKHR*    pLibraryInterface;
19855     const VkPipelineDynamicStateCreateInfo*              pDynamicState;
19856     VkPipelineLayout                                     layout;
19857     VkPipeline                                           basePipelineHandle;
19858     int32_t                                              basePipelineIndex;
19859 } VkRayTracingPipelineCreateInfoKHR;
19860 
19861 typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
19862     VkStructureType    sType;
19863     void*              pNext;
19864     VkBool32           rayTracingPipeline;
19865     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplay;
19866     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
19867     VkBool32           rayTracingPipelineTraceRaysIndirect;
19868     VkBool32           rayTraversalPrimitiveCulling;
19869 } VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
19870 
19871 typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
19872     VkStructureType    sType;
19873     void*              pNext;
19874     uint32_t           shaderGroupHandleSize;
19875     uint32_t           maxRayRecursionDepth;
19876     uint32_t           maxShaderGroupStride;
19877     uint32_t           shaderGroupBaseAlignment;
19878     uint32_t           shaderGroupHandleCaptureReplaySize;
19879     uint32_t           maxRayDispatchInvocationCount;
19880     uint32_t           shaderGroupHandleAlignment;
19881     uint32_t           maxRayHitAttributeSize;
19882 } VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
19883 
19884 typedef struct VkStridedDeviceAddressRegionKHR {
19885     VkDeviceAddress    deviceAddress;
19886     VkDeviceSize       stride;
19887     VkDeviceSize       size;
19888 } VkStridedDeviceAddressRegionKHR;
19889 
19890 typedef struct VkTraceRaysIndirectCommandKHR {
19891     uint32_t    width;
19892     uint32_t    height;
19893     uint32_t    depth;
19894 } VkTraceRaysIndirectCommandKHR;
19895 
19896 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);
19897 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
19898 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
19899 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
19900 typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
19901 typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
19902 
19903 #ifndef VK_NO_PROTOTYPES
19904 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
19905     VkCommandBuffer                             commandBuffer,
19906     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
19907     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
19908     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
19909     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
19910     uint32_t                                    width,
19911     uint32_t                                    height,
19912     uint32_t                                    depth);
19913 
19914 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
19915     VkDevice                                    device,
19916     VkDeferredOperationKHR                      deferredOperation,
19917     VkPipelineCache                             pipelineCache,
19918     uint32_t                                    createInfoCount,
19919     const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
19920     const VkAllocationCallbacks*                pAllocator,
19921     VkPipeline*                                 pPipelines);
19922 
19923 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
19924     VkDevice                                    device,
19925     VkPipeline                                  pipeline,
19926     uint32_t                                    firstGroup,
19927     uint32_t                                    groupCount,
19928     size_t                                      dataSize,
19929     void*                                       pData);
19930 
19931 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
19932     VkCommandBuffer                             commandBuffer,
19933     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
19934     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
19935     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
19936     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
19937     VkDeviceAddress                             indirectDeviceAddress);
19938 
19939 VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
19940     VkDevice                                    device,
19941     VkPipeline                                  pipeline,
19942     uint32_t                                    group,
19943     VkShaderGroupShaderKHR                      groupShader);
19944 
19945 VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
19946     VkCommandBuffer                             commandBuffer,
19947     uint32_t                                    pipelineStackSize);
19948 #endif
19949 
19950 
19951 // VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
19952 #define VK_KHR_ray_query 1
19953 #define VK_KHR_RAY_QUERY_SPEC_VERSION     1
19954 #define VK_KHR_RAY_QUERY_EXTENSION_NAME   "VK_KHR_ray_query"
19955 typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
19956     VkStructureType    sType;
19957     void*              pNext;
19958     VkBool32           rayQuery;
19959 } VkPhysicalDeviceRayQueryFeaturesKHR;
19960 
19961 
19962 
19963 // VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
19964 #define VK_EXT_mesh_shader 1
19965 #define VK_EXT_MESH_SHADER_SPEC_VERSION   1
19966 #define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
19967 typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
19968     VkStructureType    sType;
19969     void*              pNext;
19970     VkBool32           taskShader;
19971     VkBool32           meshShader;
19972     VkBool32           multiviewMeshShader;
19973     VkBool32           primitiveFragmentShadingRateMeshShader;
19974     VkBool32           meshShaderQueries;
19975 } VkPhysicalDeviceMeshShaderFeaturesEXT;
19976 
19977 typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
19978     VkStructureType    sType;
19979     void*              pNext;
19980     uint32_t           maxTaskWorkGroupTotalCount;
19981     uint32_t           maxTaskWorkGroupCount[3];
19982     uint32_t           maxTaskWorkGroupInvocations;
19983     uint32_t           maxTaskWorkGroupSize[3];
19984     uint32_t           maxTaskPayloadSize;
19985     uint32_t           maxTaskSharedMemorySize;
19986     uint32_t           maxTaskPayloadAndSharedMemorySize;
19987     uint32_t           maxMeshWorkGroupTotalCount;
19988     uint32_t           maxMeshWorkGroupCount[3];
19989     uint32_t           maxMeshWorkGroupInvocations;
19990     uint32_t           maxMeshWorkGroupSize[3];
19991     uint32_t           maxMeshSharedMemorySize;
19992     uint32_t           maxMeshPayloadAndSharedMemorySize;
19993     uint32_t           maxMeshOutputMemorySize;
19994     uint32_t           maxMeshPayloadAndOutputMemorySize;
19995     uint32_t           maxMeshOutputComponents;
19996     uint32_t           maxMeshOutputVertices;
19997     uint32_t           maxMeshOutputPrimitives;
19998     uint32_t           maxMeshOutputLayers;
19999     uint32_t           maxMeshMultiviewViewCount;
20000     uint32_t           meshOutputPerVertexGranularity;
20001     uint32_t           meshOutputPerPrimitiveGranularity;
20002     uint32_t           maxPreferredTaskWorkGroupInvocations;
20003     uint32_t           maxPreferredMeshWorkGroupInvocations;
20004     VkBool32           prefersLocalInvocationVertexOutput;
20005     VkBool32           prefersLocalInvocationPrimitiveOutput;
20006     VkBool32           prefersCompactVertexOutput;
20007     VkBool32           prefersCompactPrimitiveOutput;
20008 } VkPhysicalDeviceMeshShaderPropertiesEXT;
20009 
20010 typedef struct VkDrawMeshTasksIndirectCommandEXT {
20011     uint32_t    groupCountX;
20012     uint32_t    groupCountY;
20013     uint32_t    groupCountZ;
20014 } VkDrawMeshTasksIndirectCommandEXT;
20015 
20016 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
20017 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
20018 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
20019 
20020 #ifndef VK_NO_PROTOTYPES
20021 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
20022     VkCommandBuffer                             commandBuffer,
20023     uint32_t                                    groupCountX,
20024     uint32_t                                    groupCountY,
20025     uint32_t                                    groupCountZ);
20026 
20027 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
20028     VkCommandBuffer                             commandBuffer,
20029     VkBuffer                                    buffer,
20030     VkDeviceSize                                offset,
20031     uint32_t                                    drawCount,
20032     uint32_t                                    stride);
20033 
20034 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
20035     VkCommandBuffer                             commandBuffer,
20036     VkBuffer                                    buffer,
20037     VkDeviceSize                                offset,
20038     VkBuffer                                    countBuffer,
20039     VkDeviceSize                                countBufferOffset,
20040     uint32_t                                    maxDrawCount,
20041     uint32_t                                    stride);
20042 #endif
20043 
20044 #ifdef __cplusplus
20045 }
20046 #endif
20047 
20048 #endif
20049