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