• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef VULKAN_CORE_H_
2 #define VULKAN_CORE_H_ 1
3 
4 /*
5 ** Copyright 2015-2025 The Khronos Group Inc.
6 **
7 ** SPDX-License-Identifier: Apache-2.0
8 */
9 
10 /*
11 ** This header is generated from the Khronos Vulkan XML API Registry.
12 **
13 */
14 
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 
21 
22 // VK_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
23 #define VK_VERSION_1_0 1
24 #include "vk_platform.h"
25 
26 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
27 
28 
29 #ifndef VK_USE_64_BIT_PTR_DEFINES
30     #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
31         #define VK_USE_64_BIT_PTR_DEFINES 1
32     #else
33         #define VK_USE_64_BIT_PTR_DEFINES 0
34     #endif
35 #endif
36 
37 
38 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
39     #if (VK_USE_64_BIT_PTR_DEFINES==1)
40         #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
41             #define VK_NULL_HANDLE nullptr
42         #else
43             #define VK_NULL_HANDLE ((void*)0)
44         #endif
45     #else
46         #define VK_NULL_HANDLE 0ULL
47     #endif
48 #endif
49 #ifndef VK_NULL_HANDLE
50     #define VK_NULL_HANDLE 0
51 #endif
52 
53 
54 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
55     #if (VK_USE_64_BIT_PTR_DEFINES==1)
56         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
57     #else
58         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
59     #endif
60 #endif
61 
62 #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
63     ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
64 
65 // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
66 //#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
67 
68 // Vulkan 1.0 version number
69 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
70 
71 // Version of this file
72 #define VK_HEADER_VERSION 309
73 
74 // Complete version of this file
75 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
76 
77 // VK_MAKE_VERSION is deprecated, but no reason was given in the API XML
78 // DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
79 #define VK_MAKE_VERSION(major, minor, patch) \
80     ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
81 
82 // VK_VERSION_MAJOR is deprecated, but no reason was given in the API XML
83 // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
84 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U)
85 
86 // VK_VERSION_MINOR is deprecated, but no reason was given in the API XML
87 // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
88 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
89 
90 // VK_VERSION_PATCH is deprecated, but no reason was given in the API XML
91 // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
92 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
93 
94 #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
95 #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
96 #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
97 #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
98 typedef uint32_t VkBool32;
99 typedef uint64_t VkDeviceAddress;
100 typedef uint64_t VkDeviceSize;
101 typedef uint32_t VkFlags;
102 typedef uint32_t VkSampleMask;
103 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
104 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
105 VK_DEFINE_HANDLE(VkInstance)
106 VK_DEFINE_HANDLE(VkPhysicalDevice)
107 VK_DEFINE_HANDLE(VkDevice)
108 VK_DEFINE_HANDLE(VkQueue)
109 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
110 VK_DEFINE_HANDLE(VkCommandBuffer)
111 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
112 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
113 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
114 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
115 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
116 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
117 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
118 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
119 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
120 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
121 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
122 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
123 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
124 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
125 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
126 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
127 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
128 #define VK_ATTACHMENT_UNUSED              (~0U)
129 #define VK_FALSE                          0U
130 #define VK_LOD_CLAMP_NONE                 1000.0F
131 #define VK_QUEUE_FAMILY_IGNORED           (~0U)
132 #define VK_REMAINING_ARRAY_LAYERS         (~0U)
133 #define VK_REMAINING_MIP_LEVELS           (~0U)
134 #define VK_SUBPASS_EXTERNAL               (~0U)
135 #define VK_TRUE                           1U
136 #define VK_WHOLE_SIZE                     (~0ULL)
137 #define VK_MAX_MEMORY_TYPES               32U
138 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256U
139 #define VK_UUID_SIZE                      16U
140 #define VK_MAX_EXTENSION_NAME_SIZE        256U
141 #define VK_MAX_DESCRIPTION_SIZE           256U
142 #define VK_MAX_MEMORY_HEAPS               16U
143 
144 typedef enum VkResult {
145     VK_SUCCESS = 0,
146     VK_NOT_READY = 1,
147     VK_TIMEOUT = 2,
148     VK_EVENT_SET = 3,
149     VK_EVENT_RESET = 4,
150     VK_INCOMPLETE = 5,
151     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
152     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
153     VK_ERROR_INITIALIZATION_FAILED = -3,
154     VK_ERROR_DEVICE_LOST = -4,
155     VK_ERROR_MEMORY_MAP_FAILED = -5,
156     VK_ERROR_LAYER_NOT_PRESENT = -6,
157     VK_ERROR_EXTENSION_NOT_PRESENT = -7,
158     VK_ERROR_FEATURE_NOT_PRESENT = -8,
159     VK_ERROR_INCOMPATIBLE_DRIVER = -9,
160     VK_ERROR_TOO_MANY_OBJECTS = -10,
161     VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
162     VK_ERROR_FRAGMENTED_POOL = -12,
163     VK_ERROR_UNKNOWN = -13,
164     VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
165     VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
166     VK_ERROR_FRAGMENTATION = -1000161000,
167     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
168     VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
169     VK_ERROR_NOT_PERMITTED = -1000174001,
170     VK_ERROR_SURFACE_LOST_KHR = -1000000000,
171     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
172     VK_SUBOPTIMAL_KHR = 1000001003,
173     VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
174     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
175     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
176     VK_ERROR_INVALID_SHADER_NV = -1000012000,
177     VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000,
178     VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001,
179     VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002,
180     VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003,
181     VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004,
182     VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005,
183     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
184     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
185     VK_THREAD_IDLE_KHR = 1000268000,
186     VK_THREAD_DONE_KHR = 1000268001,
187     VK_OPERATION_DEFERRED_KHR = 1000268002,
188     VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
189     VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000,
190     VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
191     VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
192     VK_PIPELINE_BINARY_MISSING_KHR = 1000483000,
193     VK_ERROR_NOT_ENOUGH_SPACE_KHR = -1000483000,
194     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
195     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
196     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
197     VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED,
198     VK_ERROR_NOT_PERMITTED_KHR = VK_ERROR_NOT_PERMITTED,
199     VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
200     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
201     VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
202     VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
203   // VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT is a deprecated alias
204     VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = VK_INCOMPATIBLE_SHADER_BINARY_EXT,
205     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
206 } VkResult;
207 
208 typedef enum VkStructureType {
209     VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
210     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
211     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
212     VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
213     VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
214     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
215     VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
216     VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
217     VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
218     VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
219     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
220     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
221     VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
222     VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
223     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
224     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
225     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
226     VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
227     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
228     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
229     VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
230     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
231     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
232     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
233     VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
234     VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
235     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
236     VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
237     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
238     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
239     VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
240     VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
241     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
242     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
243     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
244     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
245     VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
246     VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
247     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
248     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
249     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
250     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
251     VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
252     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
253     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
254     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
255     VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
256     VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
257     VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
258     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
259     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
260     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
261     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
262     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
263     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
264     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
265     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
266     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
267     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
268     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
269     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
270     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
271     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
272     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
273     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
274     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
275     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
276     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
277     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
278     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
279     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
280     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
281     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
282     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
283     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
284     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
285     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
286     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
287     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
288     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
289     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
290     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
291     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
292     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
293     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
294     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
295     VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
296     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
297     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
298     VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
299     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
300     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
301     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
302     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
303     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
304     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
305     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
306     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
307     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
308     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
309     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
310     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
311     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
312     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
313     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
314     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
315     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
316     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
317     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
318     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
319     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
320     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
321     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
322     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
323     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
324     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
325     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
326     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
327     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
328     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
329     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
330     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
331     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
332     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
333     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
334     VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
335     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
336     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
337     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
338     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
339     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
340     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
341     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
342     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
343     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
344     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
345     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
346     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
347     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
348     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
349     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
350     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
351     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
352     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
353     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
354     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
355     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
356     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
357     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
358     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
359     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
360     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
361     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
362     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
363     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
364     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
365     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
366     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
367     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
368     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
369     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
370     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
371     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
372     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
373     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
374     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
375     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
376     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
377     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
378     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
379     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
380     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
381     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
382     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
383     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
384     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
385     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
386     VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
387     VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
388     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
389     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
390     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
391     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
392     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
393     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
394     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
395     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
396     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
397     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
398     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
399     VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
400     VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
401     VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
402     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
403     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
404     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
405     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
406     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
407     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
408     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
409     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
410     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
411     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
412     VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
413     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
414     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
415     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
416     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
417     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
418     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
419     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
420     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
421     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
422     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
423     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
424     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
425     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES = 55,
426     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES = 56,
427     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO = 1000174000,
428     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES = 1000388000,
429     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES = 1000388001,
430     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES = 1000416000,
431     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES = 1000528000,
432     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES = 1000544000,
433     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES = 1000259000,
434     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO = 1000259001,
435     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES = 1000259002,
436     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES = 1000525000,
437     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO = 1000190001,
438     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES = 1000190002,
439     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES = 1000265000,
440     VK_STRUCTURE_TYPE_MEMORY_MAP_INFO = 1000271000,
441     VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO = 1000271001,
442     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES = 1000470000,
443     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES = 1000470001,
444     VK_STRUCTURE_TYPE_RENDERING_AREA_INFO = 1000470003,
445     VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO = 1000470004,
446     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2 = 1000338002,
447     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2 = 1000338003,
448     VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO = 1000470005,
449     VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO = 1000470006,
450     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES = 1000080000,
451     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES = 1000232000,
452     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO = 1000232001,
453     VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO = 1000232002,
454     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES = 1000545000,
455     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES = 1000545001,
456     VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS = 1000545002,
457     VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO = 1000545003,
458     VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO = 1000545004,
459     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO = 1000545005,
460     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO = 1000545006,
461     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES = 1000466000,
462     VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO = 1000068000,
463     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES = 1000068001,
464     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES = 1000068002,
465     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES = 1000270000,
466     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES = 1000270001,
467     VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY = 1000270002,
468     VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY = 1000270003,
469     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO = 1000270004,
470     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO = 1000270005,
471     VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO = 1000270006,
472     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO = 1000270007,
473     VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE = 1000270008,
474     VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY = 1000270009,
475     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
476     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
477     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
478     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
479     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
480     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
481     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
482     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
483     VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
484     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
485     VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
486     VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
487     VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
488     VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
489     VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
490     VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
491     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
492     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
493     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
494     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
495     VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
496     VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
497     VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
498     VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
499     VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
500     VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
501     VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
502     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
503     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
504     VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
505     VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
506     VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
507     VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
508     VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
509     VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
510     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
511     VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
512     VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
513     VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
514     VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
515     VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
516     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
517     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
518     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
519     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
520     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
521     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
522     VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
523     VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
524     VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
525     VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX = 1000029004,
526     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
527     VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
528     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
529     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
530     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
531     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
532     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
533     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
534     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
535     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
536     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
537     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
538     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
539     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
540     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
541     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
542     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
543     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
544     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
545     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
546     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
547     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
548     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
549     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
550     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
551     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
552     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
553     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
554     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
555     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
556     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
557     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
558     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
559     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
560     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
561     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
562     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
563     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
564     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
565     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
566     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
567     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
568     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
569     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
570     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
571     VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
572     VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
573     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
574     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
575     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
576     VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
577     VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
578     VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
579     VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
580     VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
581     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
582     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
583     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
584     VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
585     VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
586     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
587     VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
588     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
589     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
590     VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
591     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
592     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
593     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
594     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
595     VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
596     VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
597     VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
598     VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
599     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
600     VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
601     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
602     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
603     VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
604     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
605     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
606     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
607     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
608     VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
609     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
610     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
611     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
612     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
613     VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
614     VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
615     VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
616     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
617     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
618     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
619     VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
620     VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
621     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
622     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
623     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
624     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
625     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
626     VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
627     VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
628     VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
629     VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
630     VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
631     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
632     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
633     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
634     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
635     VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
636     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
637     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
638     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
639     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
640     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
641     VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
642     VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
643     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
644     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
645 #ifdef VK_ENABLE_BETA_EXTENSIONS
646     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
647 #endif
648 #ifdef VK_ENABLE_BETA_EXTENSIONS
649     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
650 #endif
651 #ifdef VK_ENABLE_BETA_EXTENSIONS
652     VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
653 #endif
654 #ifdef VK_ENABLE_BETA_EXTENSIONS
655     VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
656 #endif
657 #ifdef VK_ENABLE_BETA_EXTENSIONS
658     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
659 #endif
660     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
661     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
662     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
663     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
664     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
665     VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
666     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
667     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
668     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
669     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
670     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
671     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
672     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
673     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
674     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
675     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
676     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
677     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
678     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
679     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
680     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
681     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
682     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
683     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
684     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
685     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
686     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
687     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
688     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
689     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
690     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
691     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
692     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
693     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
694     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
695     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
696     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
697     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
698     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
699     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
700     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
701     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
702 #ifdef VK_ENABLE_BETA_EXTENSIONS
703     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
704 #endif
705 #ifdef VK_ENABLE_BETA_EXTENSIONS
706     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
707 #endif
708     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
709     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
710     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
711     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
712     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
713     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
714     VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
715     VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
716     VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
717     VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
718     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
719     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
720     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
721     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
722     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
723     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
724     VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
725     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
726     VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
727     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
728     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
729     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
730     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
731     VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
732     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
733     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
734     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
735     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
736     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
737     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
738     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
739     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
740     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
741     VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
742     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
743     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
744     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
745     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
746     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
747     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
748     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
749     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
750     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
751     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
752     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
753     VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
754     VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
755     VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
756     VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
757     VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
758     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
759     VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
760     VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
761     VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
762     VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
763     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
764     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
765     VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
766     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
767     VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
768     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
769     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
770     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
771     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
772     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
773     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
774     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
775     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
776     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
777     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
778     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
779     VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
780     VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
781     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
782     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
783     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
784     VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
785     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
786     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
787     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
788     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
789     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
790     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
791     VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
792     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
793     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
794     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
795     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
796     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
797     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
798     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
799     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
800     VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
801     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
802     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
803     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
804     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
805     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
806     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
807     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
808     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
809     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
810     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
811     VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
812     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
813     VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000,
814     VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001,
815     VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002,
816     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000,
817     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001,
818     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002,
819     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003,
820     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004,
821     VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005,
822     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
823     VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
824     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
825     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
826     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
827     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
828     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
829     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
830     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
831     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
832     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
833     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
834     VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
835     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
836     VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
837     VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
838     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
839     VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
840     VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
841     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
842     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
843     VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
844     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
845     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
846     VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
847     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
848     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
849     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
850     VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
851     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
852     VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
853     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
854     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
855     VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
856     VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
857     VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
858     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
859     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
860     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
861     VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
862     VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
863     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
864     VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
865     VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
866     VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
867     VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
868     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
869     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
870     VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
871     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
872     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
873     VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
874     VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
875     VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
876     VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
877     VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
878     VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
879     VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
880     VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
881     VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
882     VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
883     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000,
884     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001,
885     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002,
886     VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003,
887     VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004,
888     VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005,
889     VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006,
890     VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007,
891     VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008,
892     VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010,
893     VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011,
894     VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012,
895     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009,
896     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
897     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
898     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
899     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
900     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
901     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
902     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
903     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
904     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
905     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
906     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
907     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
908     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
909     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
910     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
911     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
912     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
913     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
914     VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
915     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
916     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
917     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
918     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
919     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
920     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
921     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
922     VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
923     VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
924     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
925     VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
926     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
927     VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
928     VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
929     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
930     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
931     VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
932     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
933     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
934     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
935     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT = 1000361000,
936     VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
937     VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
938     VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
939     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
940     VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
941     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
942     VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
943     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
944     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
945     VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
946     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
947     VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
948     VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
949     VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
950     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
951     VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
952     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
953     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
954     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
955     VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
956     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
957     VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
958     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
959     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
960     VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
961     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
962     VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
963     VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
964     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
965     VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
966     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
967     VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
968     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
969     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
970     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
971     VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
972     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
973     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
974     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
975     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
976     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
977     VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
978     VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
979     VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
980     VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
981     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
982     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
983     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
984     VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
985     VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
986     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
987 #ifdef VK_ENABLE_BETA_EXTENSIONS
988     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
989 #endif
990 #ifdef VK_ENABLE_BETA_EXTENSIONS
991     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
992 #endif
993 #ifdef VK_ENABLE_BETA_EXTENSIONS
994     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
995 #endif
996     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
997     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
998     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
999     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
1000     VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
1001     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
1002     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
1003     VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
1004     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
1005     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
1006     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
1007     VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
1008     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
1009     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
1010     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
1011     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
1012     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
1013     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
1014     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
1015     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
1016     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
1017     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000,
1018     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001,
1019     VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002,
1020     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
1021     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001,
1022     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000,
1023     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001,
1024     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
1025     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
1026     VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
1027     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV = 1000429008,
1028     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV = 1000429009,
1029     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV = 1000429010,
1030     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
1031     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
1032     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
1033     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
1034     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
1035     VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
1036     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
1037     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
1038     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
1039     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
1040     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
1041     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1042     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1043     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
1044     VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
1045     VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
1046     VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
1047     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
1048     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
1049     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
1050     VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
1051     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
1052     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
1053     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
1054     VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
1055     VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
1056     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
1057     VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
1058     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
1059     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
1060     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
1061     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
1062     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
1063     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = 1000476000,
1064     VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = 1000476001,
1065     VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = 1000476002,
1066     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
1067     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
1068     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
1069     VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
1070     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = 1000483000,
1071     VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = 1000483001,
1072     VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = 1000483002,
1073     VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = 1000483003,
1074     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = 1000483004,
1075     VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = 1000483005,
1076     VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = 1000483006,
1077     VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = 1000483007,
1078     VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = 1000483008,
1079     VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = 1000483009,
1080     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
1081     VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
1082     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
1083     VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
1084     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
1085     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
1086     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
1087     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV = 1000491000,
1088     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491001,
1089     VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491002,
1090     VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV = 1000491004,
1091     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
1092     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
1093     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
1094     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
1095     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = 1000495000,
1096     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = 1000495001,
1097     VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
1098     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
1099     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
1100     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
1101     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
1102     VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
1103     VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
1104     VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
1105     VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
1106     VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
1107     VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
1108     VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
1109     VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
1110     VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
1111     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
1112     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
1113     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
1114     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
1115     VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
1116     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR = 1000201000,
1117     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR = 1000511000,
1118     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
1119     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
1120     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
1121     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
1122     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
1123     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR = 1000513000,
1124     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000513001,
1125     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR = 1000513002,
1126     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR = 1000513003,
1127     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR = 1000513004,
1128     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR = 1000513005,
1129     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR = 1000513006,
1130     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR = 1000513007,
1131     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR = 1000513008,
1132     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR = 1000513009,
1133     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR = 1000513010,
1134     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
1135     VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
1136     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
1137     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
1138     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
1139     VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
1140     VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
1141     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
1142     VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
1143     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
1144     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
1145     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
1146     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
1147     VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
1148     VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
1149     VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
1150     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
1151     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
1152     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
1153     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
1154     VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
1155     VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
1156     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
1157     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV = 1000551000,
1158     VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV = 1000551001,
1159     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553000,
1160     VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553001,
1161     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR = 1000553002,
1162     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000553005,
1163     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR = 1000553009,
1164     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553003,
1165     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553004,
1166     VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553006,
1167     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553007,
1168     VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553008,
1169     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
1170     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000,
1171     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV = 1000559000,
1172     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = 1000562000,
1173     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = 1000562001,
1174     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = 1000562002,
1175     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = 1000562003,
1176     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004,
1177     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
1178     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
1179     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
1180     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV = 1000569000,
1181     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000569001,
1182     VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV = 1000569002,
1183     VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV = 1000569003,
1184     VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV = 1000569004,
1185     VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV = 1000569005,
1186     VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV = 1000569006,
1187     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000569007,
1188     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV = 1000570000,
1189     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000570001,
1190     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570002,
1191     VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV = 1000570003,
1192     VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV = 1000570004,
1193     VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV = 1000570005,
1194     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT = 1000572000,
1195     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT = 1000572001,
1196     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT = 1000572002,
1197     VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT = 1000572003,
1198     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT = 1000572004,
1199     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT = 1000572006,
1200     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT = 1000572007,
1201     VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT = 1000572008,
1202     VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT = 1000572009,
1203     VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT = 1000572010,
1204     VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT = 1000572011,
1205     VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012,
1206     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013,
1207     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014,
1208     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR = 1000574000,
1209     VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR = 1000574002,
1210     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
1211     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
1212     VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
1213     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000,
1214     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,
1215     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR = 1000586000,
1216     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586001,
1217     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586002,
1218     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586003,
1219     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = 1000590000,
1220     VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI = 1000590001,
1221     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,
1222     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001,
1223     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002,
1224     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM = 1000596000,
1225     VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT = 1000602000,
1226     VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT = 1000602001,
1227     VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT = 1000602002,
1228     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR = 1000421000,
1229     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = 1000608000,
1230 #ifdef VK_ENABLE_BETA_EXTENSIONS
1231     VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV = 1000613000,
1232 #endif
1233 #ifdef VK_ENABLE_BETA_EXTENSIONS
1234     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV = 1000613001,
1235 #endif
1236 
1237     // ---- OHOS Add----
1238     VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS = 1000685000,
1239     VK_STRUCTURE_TYPE_NATIVE_BUFFER_OHOS = 1000453001,
1240     VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OHOS = 1000453002,
1241     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OHOS = 1000453003,
1242     VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS = 1000452000,
1243     VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS = 1000452001,
1244     VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS = 1000452002,
1245     VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS = 1000452003,
1246     VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS = 1000452004,
1247     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS = 1000452005,
1248     // ---- OHOS Add----
1249 
1250     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1251     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1252   // VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a deprecated alias
1253     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1254     VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1255     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1256     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1257     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1258     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1259     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1260     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1261     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1262     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1263     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1264     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1265     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1266     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1267     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1268     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1269     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1270     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1271     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1272     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1273     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1274     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1275     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1276     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1277     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1278     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1279     VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO,
1280     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES,
1281     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES,
1282     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1283     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1284     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1285     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1286     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1287     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1288     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1289     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1290     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1291     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1292     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
1293     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
1294     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
1295     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES,
1296     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1297     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1298     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
1299     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
1300   // VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT is a deprecated alias
1301     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
1302     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
1303     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
1304     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
1305     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
1306     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
1307     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
1308     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
1309     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
1310     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
1311     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
1312     VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
1313     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
1314     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
1315     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
1316     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
1317     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
1318     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
1319     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
1320     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1321     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1322     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
1323     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
1324     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
1325     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
1326     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
1327     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
1328     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
1329     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
1330     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
1331     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
1332     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
1333     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
1334     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
1335     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
1336     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1337     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
1338     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
1339     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
1340     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
1341     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
1342     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
1343     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
1344     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
1345     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
1346     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
1347     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
1348     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
1349     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
1350     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
1351     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
1352     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1353     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
1354     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
1355     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
1356     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
1357     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1358     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1359     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1360     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1361     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1362     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
1363     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1364     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
1365     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
1366     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
1367     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
1368     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1369     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
1370     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
1371     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
1372     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
1373     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
1374     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
1375   // VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL is a deprecated alias
1376     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
1377     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
1378     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
1379     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
1380     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
1381     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1382     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
1383     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES,
1384     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO,
1385     VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO,
1386     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
1387     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1388     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1389     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
1390     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1391     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
1392     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
1393     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
1394     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
1395     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1396     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
1397     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
1398     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
1399     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1400     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1401     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1402     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
1403     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1404     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES,
1405     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES,
1406     VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY,
1407     VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY,
1408     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO,
1409     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO,
1410     VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO,
1411     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO,
1412     VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE,
1413     VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY,
1414     VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO,
1415     VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO,
1416     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
1417     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
1418     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
1419     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
1420     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
1421     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
1422     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
1423     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
1424     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
1425     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
1426     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
1427     VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
1428     VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
1429     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
1430     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
1431     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
1432     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
1433     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
1434     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
1435     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
1436     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
1437     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
1438     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
1439     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
1440     VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
1441     VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
1442     VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
1443     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
1444     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
1445     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1446     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1447     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1448     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1449     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1450     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
1451     VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1452     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1453     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1454     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
1455     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
1456     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
1457     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
1458     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
1459     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR,
1460     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
1461     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
1462     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
1463     VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO,
1464     VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO,
1465     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1466     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1467     VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO,
1468     VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
1469     VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1470     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES,
1471     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1472     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1473     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES,
1474     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1475     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1476     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1477     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1478     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES,
1479     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES,
1480     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES,
1481     VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS,
1482     VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO,
1483     VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO,
1484     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO,
1485     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO,
1486     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1487 } VkStructureType;
1488 
1489 typedef enum VkPipelineCacheHeaderVersion {
1490     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1491     VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
1492 } VkPipelineCacheHeaderVersion;
1493 
1494 typedef enum VkImageLayout {
1495     VK_IMAGE_LAYOUT_UNDEFINED = 0,
1496     VK_IMAGE_LAYOUT_GENERAL = 1,
1497     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
1498     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
1499     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
1500     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
1501     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
1502     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
1503     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
1504     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
1505     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
1506     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
1507     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
1508     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
1509     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
1510     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
1511     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
1512     VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ = 1000232000,
1513     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
1514     VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
1515     VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
1516     VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
1517     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
1518     VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
1519     VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
1520     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
1521     VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
1522     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
1523     VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
1524     VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR = 1000553000,
1525     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
1526     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
1527     VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
1528     VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ,
1529     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
1530     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
1531     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
1532     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
1533     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
1534     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
1535     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
1536 } VkImageLayout;
1537 
1538 typedef enum VkObjectType {
1539     VK_OBJECT_TYPE_UNKNOWN = 0,
1540     VK_OBJECT_TYPE_INSTANCE = 1,
1541     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1542     VK_OBJECT_TYPE_DEVICE = 3,
1543     VK_OBJECT_TYPE_QUEUE = 4,
1544     VK_OBJECT_TYPE_SEMAPHORE = 5,
1545     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1546     VK_OBJECT_TYPE_FENCE = 7,
1547     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1548     VK_OBJECT_TYPE_BUFFER = 9,
1549     VK_OBJECT_TYPE_IMAGE = 10,
1550     VK_OBJECT_TYPE_EVENT = 11,
1551     VK_OBJECT_TYPE_QUERY_POOL = 12,
1552     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1553     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1554     VK_OBJECT_TYPE_SHADER_MODULE = 15,
1555     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1556     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1557     VK_OBJECT_TYPE_RENDER_PASS = 18,
1558     VK_OBJECT_TYPE_PIPELINE = 19,
1559     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1560     VK_OBJECT_TYPE_SAMPLER = 21,
1561     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1562     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1563     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1564     VK_OBJECT_TYPE_COMMAND_POOL = 25,
1565     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1566     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1567     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1568     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1569     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1570     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1571     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1572     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1573     VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
1574     VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
1575     VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
1576     VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
1577     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1578     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
1579     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1580     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1581     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1582     VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
1583     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
1584     VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
1585     VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
1586     VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
1587     VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
1588     VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
1589     VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
1590     VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000,
1591     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT = 1000572000,
1592     VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT = 1000572001,
1593     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1594     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1595     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1596     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1597 } VkObjectType;
1598 
1599 typedef enum VkVendorId {
1600     VK_VENDOR_ID_KHRONOS = 0x10000,
1601     VK_VENDOR_ID_VIV = 0x10001,
1602     VK_VENDOR_ID_VSI = 0x10002,
1603     VK_VENDOR_ID_KAZAN = 0x10003,
1604     VK_VENDOR_ID_CODEPLAY = 0x10004,
1605     VK_VENDOR_ID_MESA = 0x10005,
1606     VK_VENDOR_ID_POCL = 0x10006,
1607     VK_VENDOR_ID_MOBILEYE = 0x10007,
1608     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1609 } VkVendorId;
1610 
1611 typedef enum VkSystemAllocationScope {
1612     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1613     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1614     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1615     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1616     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1617     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1618 } VkSystemAllocationScope;
1619 
1620 typedef enum VkInternalAllocationType {
1621     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1622     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1623 } VkInternalAllocationType;
1624 
1625 typedef enum VkFormat {
1626     VK_FORMAT_UNDEFINED = 0,
1627     VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1628     VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1629     VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1630     VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1631     VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1632     VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1633     VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1634     VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1635     VK_FORMAT_R8_UNORM = 9,
1636     VK_FORMAT_R8_SNORM = 10,
1637     VK_FORMAT_R8_USCALED = 11,
1638     VK_FORMAT_R8_SSCALED = 12,
1639     VK_FORMAT_R8_UINT = 13,
1640     VK_FORMAT_R8_SINT = 14,
1641     VK_FORMAT_R8_SRGB = 15,
1642     VK_FORMAT_R8G8_UNORM = 16,
1643     VK_FORMAT_R8G8_SNORM = 17,
1644     VK_FORMAT_R8G8_USCALED = 18,
1645     VK_FORMAT_R8G8_SSCALED = 19,
1646     VK_FORMAT_R8G8_UINT = 20,
1647     VK_FORMAT_R8G8_SINT = 21,
1648     VK_FORMAT_R8G8_SRGB = 22,
1649     VK_FORMAT_R8G8B8_UNORM = 23,
1650     VK_FORMAT_R8G8B8_SNORM = 24,
1651     VK_FORMAT_R8G8B8_USCALED = 25,
1652     VK_FORMAT_R8G8B8_SSCALED = 26,
1653     VK_FORMAT_R8G8B8_UINT = 27,
1654     VK_FORMAT_R8G8B8_SINT = 28,
1655     VK_FORMAT_R8G8B8_SRGB = 29,
1656     VK_FORMAT_B8G8R8_UNORM = 30,
1657     VK_FORMAT_B8G8R8_SNORM = 31,
1658     VK_FORMAT_B8G8R8_USCALED = 32,
1659     VK_FORMAT_B8G8R8_SSCALED = 33,
1660     VK_FORMAT_B8G8R8_UINT = 34,
1661     VK_FORMAT_B8G8R8_SINT = 35,
1662     VK_FORMAT_B8G8R8_SRGB = 36,
1663     VK_FORMAT_R8G8B8A8_UNORM = 37,
1664     VK_FORMAT_R8G8B8A8_SNORM = 38,
1665     VK_FORMAT_R8G8B8A8_USCALED = 39,
1666     VK_FORMAT_R8G8B8A8_SSCALED = 40,
1667     VK_FORMAT_R8G8B8A8_UINT = 41,
1668     VK_FORMAT_R8G8B8A8_SINT = 42,
1669     VK_FORMAT_R8G8B8A8_SRGB = 43,
1670     VK_FORMAT_B8G8R8A8_UNORM = 44,
1671     VK_FORMAT_B8G8R8A8_SNORM = 45,
1672     VK_FORMAT_B8G8R8A8_USCALED = 46,
1673     VK_FORMAT_B8G8R8A8_SSCALED = 47,
1674     VK_FORMAT_B8G8R8A8_UINT = 48,
1675     VK_FORMAT_B8G8R8A8_SINT = 49,
1676     VK_FORMAT_B8G8R8A8_SRGB = 50,
1677     VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1678     VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1679     VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1680     VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1681     VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1682     VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1683     VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1684     VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1685     VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1686     VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1687     VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1688     VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1689     VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1690     VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1691     VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1692     VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1693     VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1694     VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1695     VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1696     VK_FORMAT_R16_UNORM = 70,
1697     VK_FORMAT_R16_SNORM = 71,
1698     VK_FORMAT_R16_USCALED = 72,
1699     VK_FORMAT_R16_SSCALED = 73,
1700     VK_FORMAT_R16_UINT = 74,
1701     VK_FORMAT_R16_SINT = 75,
1702     VK_FORMAT_R16_SFLOAT = 76,
1703     VK_FORMAT_R16G16_UNORM = 77,
1704     VK_FORMAT_R16G16_SNORM = 78,
1705     VK_FORMAT_R16G16_USCALED = 79,
1706     VK_FORMAT_R16G16_SSCALED = 80,
1707     VK_FORMAT_R16G16_UINT = 81,
1708     VK_FORMAT_R16G16_SINT = 82,
1709     VK_FORMAT_R16G16_SFLOAT = 83,
1710     VK_FORMAT_R16G16B16_UNORM = 84,
1711     VK_FORMAT_R16G16B16_SNORM = 85,
1712     VK_FORMAT_R16G16B16_USCALED = 86,
1713     VK_FORMAT_R16G16B16_SSCALED = 87,
1714     VK_FORMAT_R16G16B16_UINT = 88,
1715     VK_FORMAT_R16G16B16_SINT = 89,
1716     VK_FORMAT_R16G16B16_SFLOAT = 90,
1717     VK_FORMAT_R16G16B16A16_UNORM = 91,
1718     VK_FORMAT_R16G16B16A16_SNORM = 92,
1719     VK_FORMAT_R16G16B16A16_USCALED = 93,
1720     VK_FORMAT_R16G16B16A16_SSCALED = 94,
1721     VK_FORMAT_R16G16B16A16_UINT = 95,
1722     VK_FORMAT_R16G16B16A16_SINT = 96,
1723     VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1724     VK_FORMAT_R32_UINT = 98,
1725     VK_FORMAT_R32_SINT = 99,
1726     VK_FORMAT_R32_SFLOAT = 100,
1727     VK_FORMAT_R32G32_UINT = 101,
1728     VK_FORMAT_R32G32_SINT = 102,
1729     VK_FORMAT_R32G32_SFLOAT = 103,
1730     VK_FORMAT_R32G32B32_UINT = 104,
1731     VK_FORMAT_R32G32B32_SINT = 105,
1732     VK_FORMAT_R32G32B32_SFLOAT = 106,
1733     VK_FORMAT_R32G32B32A32_UINT = 107,
1734     VK_FORMAT_R32G32B32A32_SINT = 108,
1735     VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1736     VK_FORMAT_R64_UINT = 110,
1737     VK_FORMAT_R64_SINT = 111,
1738     VK_FORMAT_R64_SFLOAT = 112,
1739     VK_FORMAT_R64G64_UINT = 113,
1740     VK_FORMAT_R64G64_SINT = 114,
1741     VK_FORMAT_R64G64_SFLOAT = 115,
1742     VK_FORMAT_R64G64B64_UINT = 116,
1743     VK_FORMAT_R64G64B64_SINT = 117,
1744     VK_FORMAT_R64G64B64_SFLOAT = 118,
1745     VK_FORMAT_R64G64B64A64_UINT = 119,
1746     VK_FORMAT_R64G64B64A64_SINT = 120,
1747     VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1748     VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1749     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1750     VK_FORMAT_D16_UNORM = 124,
1751     VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1752     VK_FORMAT_D32_SFLOAT = 126,
1753     VK_FORMAT_S8_UINT = 127,
1754     VK_FORMAT_D16_UNORM_S8_UINT = 128,
1755     VK_FORMAT_D24_UNORM_S8_UINT = 129,
1756     VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1757     VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1758     VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1759     VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1760     VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1761     VK_FORMAT_BC2_UNORM_BLOCK = 135,
1762     VK_FORMAT_BC2_SRGB_BLOCK = 136,
1763     VK_FORMAT_BC3_UNORM_BLOCK = 137,
1764     VK_FORMAT_BC3_SRGB_BLOCK = 138,
1765     VK_FORMAT_BC4_UNORM_BLOCK = 139,
1766     VK_FORMAT_BC4_SNORM_BLOCK = 140,
1767     VK_FORMAT_BC5_UNORM_BLOCK = 141,
1768     VK_FORMAT_BC5_SNORM_BLOCK = 142,
1769     VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1770     VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1771     VK_FORMAT_BC7_UNORM_BLOCK = 145,
1772     VK_FORMAT_BC7_SRGB_BLOCK = 146,
1773     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1774     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1775     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1776     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1777     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1778     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1779     VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1780     VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1781     VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1782     VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1783     VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1784     VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1785     VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1786     VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1787     VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1788     VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1789     VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1790     VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1791     VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1792     VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1793     VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1794     VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1795     VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1796     VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1797     VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1798     VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1799     VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1800     VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1801     VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1802     VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1803     VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1804     VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1805     VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1806     VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1807     VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1808     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1809     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1810     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
1811     VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1812     VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1813     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1814     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1815     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1816     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1817     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1818     VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1819     VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1820     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1821     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1822     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1823     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1824     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1825     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1826     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1827     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1828     VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1829     VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1830     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1831     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1832     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1833     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1834     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1835     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1836     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1837     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1838     VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1839     VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1840     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1841     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1842     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1843     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1844     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1845     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
1846     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
1847     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
1848     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
1849     VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
1850     VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
1851     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
1852     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
1853     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
1854     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
1855     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
1856     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
1857     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
1858     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
1859     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
1860     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
1861     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
1862     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
1863     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
1864     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
1865     VK_FORMAT_A1B5G5R5_UNORM_PACK16 = 1000470000,
1866     VK_FORMAT_A8_UNORM = 1000470001,
1867     VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1868     VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1869     VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1870     VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1871     VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1872     VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1873     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1874     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
1875     VK_FORMAT_R16G16_SFIXED5_NV = 1000464000,
1876     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
1877     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
1878     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
1879     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
1880     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
1881     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
1882     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
1883     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
1884     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
1885     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
1886     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
1887     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
1888     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
1889     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
1890     VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
1891     VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
1892     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
1893     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
1894     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
1895     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
1896     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
1897     VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
1898     VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
1899     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
1900     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
1901     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
1902     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
1903     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
1904     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
1905     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
1906     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
1907     VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
1908     VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
1909     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
1910     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
1911     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
1912     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
1913     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
1914     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
1915     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
1916     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
1917     VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
1918     VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
1919     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
1920     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
1921     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
1922     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
1923     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
1924     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
1925     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
1926     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
1927     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
1928     VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
1929     VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
1930   // VK_FORMAT_R16G16_S10_5_NV is a deprecated alias
1931     VK_FORMAT_R16G16_S10_5_NV = VK_FORMAT_R16G16_SFIXED5_NV,
1932     VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = VK_FORMAT_A1B5G5R5_UNORM_PACK16,
1933     VK_FORMAT_A8_UNORM_KHR = VK_FORMAT_A8_UNORM,
1934     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
1935 } VkFormat;
1936 
1937 typedef enum VkImageTiling {
1938     VK_IMAGE_TILING_OPTIMAL = 0,
1939     VK_IMAGE_TILING_LINEAR = 1,
1940     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
1941     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
1942 } VkImageTiling;
1943 
1944 typedef enum VkImageType {
1945     VK_IMAGE_TYPE_1D = 0,
1946     VK_IMAGE_TYPE_2D = 1,
1947     VK_IMAGE_TYPE_3D = 2,
1948     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
1949 } VkImageType;
1950 
1951 typedef enum VkPhysicalDeviceType {
1952     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
1953     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
1954     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
1955     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
1956     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
1957     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
1958 } VkPhysicalDeviceType;
1959 
1960 typedef enum VkQueryType {
1961     VK_QUERY_TYPE_OCCLUSION = 0,
1962     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
1963     VK_QUERY_TYPE_TIMESTAMP = 2,
1964     VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
1965     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
1966     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
1967     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
1968     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
1969     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
1970     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
1971     VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
1972     VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
1973     VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
1974     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
1975     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
1976     VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
1977     VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
1978     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
1979 } VkQueryType;
1980 
1981 typedef enum VkSharingMode {
1982     VK_SHARING_MODE_EXCLUSIVE = 0,
1983     VK_SHARING_MODE_CONCURRENT = 1,
1984     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
1985 } VkSharingMode;
1986 
1987 typedef enum VkComponentSwizzle {
1988     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
1989     VK_COMPONENT_SWIZZLE_ZERO = 1,
1990     VK_COMPONENT_SWIZZLE_ONE = 2,
1991     VK_COMPONENT_SWIZZLE_R = 3,
1992     VK_COMPONENT_SWIZZLE_G = 4,
1993     VK_COMPONENT_SWIZZLE_B = 5,
1994     VK_COMPONENT_SWIZZLE_A = 6,
1995     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
1996 } VkComponentSwizzle;
1997 
1998 typedef enum VkImageViewType {
1999     VK_IMAGE_VIEW_TYPE_1D = 0,
2000     VK_IMAGE_VIEW_TYPE_2D = 1,
2001     VK_IMAGE_VIEW_TYPE_3D = 2,
2002     VK_IMAGE_VIEW_TYPE_CUBE = 3,
2003     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
2004     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
2005     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
2006     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
2007 } VkImageViewType;
2008 
2009 typedef enum VkBlendFactor {
2010     VK_BLEND_FACTOR_ZERO = 0,
2011     VK_BLEND_FACTOR_ONE = 1,
2012     VK_BLEND_FACTOR_SRC_COLOR = 2,
2013     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
2014     VK_BLEND_FACTOR_DST_COLOR = 4,
2015     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
2016     VK_BLEND_FACTOR_SRC_ALPHA = 6,
2017     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
2018     VK_BLEND_FACTOR_DST_ALPHA = 8,
2019     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
2020     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
2021     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
2022     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
2023     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
2024     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
2025     VK_BLEND_FACTOR_SRC1_COLOR = 15,
2026     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
2027     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
2028     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
2029     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
2030 } VkBlendFactor;
2031 
2032 typedef enum VkBlendOp {
2033     VK_BLEND_OP_ADD = 0,
2034     VK_BLEND_OP_SUBTRACT = 1,
2035     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
2036     VK_BLEND_OP_MIN = 3,
2037     VK_BLEND_OP_MAX = 4,
2038     VK_BLEND_OP_ZERO_EXT = 1000148000,
2039     VK_BLEND_OP_SRC_EXT = 1000148001,
2040     VK_BLEND_OP_DST_EXT = 1000148002,
2041     VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
2042     VK_BLEND_OP_DST_OVER_EXT = 1000148004,
2043     VK_BLEND_OP_SRC_IN_EXT = 1000148005,
2044     VK_BLEND_OP_DST_IN_EXT = 1000148006,
2045     VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
2046     VK_BLEND_OP_DST_OUT_EXT = 1000148008,
2047     VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
2048     VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
2049     VK_BLEND_OP_XOR_EXT = 1000148011,
2050     VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
2051     VK_BLEND_OP_SCREEN_EXT = 1000148013,
2052     VK_BLEND_OP_OVERLAY_EXT = 1000148014,
2053     VK_BLEND_OP_DARKEN_EXT = 1000148015,
2054     VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
2055     VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
2056     VK_BLEND_OP_COLORBURN_EXT = 1000148018,
2057     VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
2058     VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
2059     VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
2060     VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
2061     VK_BLEND_OP_INVERT_EXT = 1000148023,
2062     VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
2063     VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
2064     VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
2065     VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
2066     VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
2067     VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
2068     VK_BLEND_OP_HARDMIX_EXT = 1000148030,
2069     VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
2070     VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
2071     VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
2072     VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
2073     VK_BLEND_OP_PLUS_EXT = 1000148035,
2074     VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
2075     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
2076     VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
2077     VK_BLEND_OP_MINUS_EXT = 1000148039,
2078     VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
2079     VK_BLEND_OP_CONTRAST_EXT = 1000148041,
2080     VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
2081     VK_BLEND_OP_RED_EXT = 1000148043,
2082     VK_BLEND_OP_GREEN_EXT = 1000148044,
2083     VK_BLEND_OP_BLUE_EXT = 1000148045,
2084     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
2085 } VkBlendOp;
2086 
2087 typedef enum VkCompareOp {
2088     VK_COMPARE_OP_NEVER = 0,
2089     VK_COMPARE_OP_LESS = 1,
2090     VK_COMPARE_OP_EQUAL = 2,
2091     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
2092     VK_COMPARE_OP_GREATER = 4,
2093     VK_COMPARE_OP_NOT_EQUAL = 5,
2094     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
2095     VK_COMPARE_OP_ALWAYS = 7,
2096     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
2097 } VkCompareOp;
2098 
2099 typedef enum VkDynamicState {
2100     VK_DYNAMIC_STATE_VIEWPORT = 0,
2101     VK_DYNAMIC_STATE_SCISSOR = 1,
2102     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
2103     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
2104     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
2105     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
2106     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
2107     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
2108     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
2109     VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
2110     VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
2111     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
2112     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
2113     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
2114     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
2115     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
2116     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
2117     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
2118     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
2119     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
2120     VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
2121     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
2122     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
2123     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
2124     VK_DYNAMIC_STATE_LINE_STIPPLE = 1000259000,
2125     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
2126     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
2127     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
2128     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
2129     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
2130     VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
2131     VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
2132     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
2133     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
2134     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
2135     VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
2136     VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
2137     VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
2138     VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
2139     VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
2140     VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
2141     VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
2142     VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
2143     VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
2144     VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
2145     VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
2146     VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
2147     VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
2148     VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
2149     VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
2150     VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
2151     VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
2152     VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
2153     VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
2154     VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
2155     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
2156     VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
2157     VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
2158     VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
2159     VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
2160     VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
2161     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
2162     VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
2163     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
2164     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
2165     VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
2166     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
2167     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
2168     VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
2169     VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
2170     VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
2171     VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
2172     VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT = 1000582000,
2173     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE,
2174     VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
2175     VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
2176     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
2177     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
2178     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
2179     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
2180     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
2181     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
2182     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
2183     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
2184     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
2185     VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
2186     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
2187     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2188     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2189     VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = VK_DYNAMIC_STATE_LINE_STIPPLE,
2190     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
2191 } VkDynamicState;
2192 
2193 typedef enum VkFrontFace {
2194     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
2195     VK_FRONT_FACE_CLOCKWISE = 1,
2196     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
2197 } VkFrontFace;
2198 
2199 typedef enum VkVertexInputRate {
2200     VK_VERTEX_INPUT_RATE_VERTEX = 0,
2201     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
2202     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
2203 } VkVertexInputRate;
2204 
2205 typedef enum VkPrimitiveTopology {
2206     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
2207     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
2208     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
2209     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
2210     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
2211     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
2212     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
2213     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
2214     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
2215     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
2216     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
2217     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
2218 } VkPrimitiveTopology;
2219 
2220 typedef enum VkPolygonMode {
2221     VK_POLYGON_MODE_FILL = 0,
2222     VK_POLYGON_MODE_LINE = 1,
2223     VK_POLYGON_MODE_POINT = 2,
2224     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
2225     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
2226 } VkPolygonMode;
2227 
2228 typedef enum VkStencilOp {
2229     VK_STENCIL_OP_KEEP = 0,
2230     VK_STENCIL_OP_ZERO = 1,
2231     VK_STENCIL_OP_REPLACE = 2,
2232     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
2233     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
2234     VK_STENCIL_OP_INVERT = 5,
2235     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
2236     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
2237     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
2238 } VkStencilOp;
2239 
2240 typedef enum VkLogicOp {
2241     VK_LOGIC_OP_CLEAR = 0,
2242     VK_LOGIC_OP_AND = 1,
2243     VK_LOGIC_OP_AND_REVERSE = 2,
2244     VK_LOGIC_OP_COPY = 3,
2245     VK_LOGIC_OP_AND_INVERTED = 4,
2246     VK_LOGIC_OP_NO_OP = 5,
2247     VK_LOGIC_OP_XOR = 6,
2248     VK_LOGIC_OP_OR = 7,
2249     VK_LOGIC_OP_NOR = 8,
2250     VK_LOGIC_OP_EQUIVALENT = 9,
2251     VK_LOGIC_OP_INVERT = 10,
2252     VK_LOGIC_OP_OR_REVERSE = 11,
2253     VK_LOGIC_OP_COPY_INVERTED = 12,
2254     VK_LOGIC_OP_OR_INVERTED = 13,
2255     VK_LOGIC_OP_NAND = 14,
2256     VK_LOGIC_OP_SET = 15,
2257     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
2258 } VkLogicOp;
2259 
2260 typedef enum VkBorderColor {
2261     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2262     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2263     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2264     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2265     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2266     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2267     VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2268     VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2269     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2270 } VkBorderColor;
2271 
2272 typedef enum VkFilter {
2273     VK_FILTER_NEAREST = 0,
2274     VK_FILTER_LINEAR = 1,
2275     VK_FILTER_CUBIC_EXT = 1000015000,
2276     VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
2277     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2278 } VkFilter;
2279 
2280 typedef enum VkSamplerAddressMode {
2281     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2282     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2283     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2284     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2285     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2286   // VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR is a deprecated alias
2287     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2288     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2289 } VkSamplerAddressMode;
2290 
2291 typedef enum VkSamplerMipmapMode {
2292     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2293     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2294     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2295 } VkSamplerMipmapMode;
2296 
2297 typedef enum VkDescriptorType {
2298     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2299     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2300     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2301     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2302     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2303     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2304     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2305     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2306     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2307     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2308     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2309     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2310     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2311     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2312     VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
2313     VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
2314     VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
2315     VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570000,
2316     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2317     VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2318     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2319 } VkDescriptorType;
2320 
2321 typedef enum VkAttachmentLoadOp {
2322     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2323     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2324     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2325     VK_ATTACHMENT_LOAD_OP_NONE = 1000400000,
2326     VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE,
2327     VK_ATTACHMENT_LOAD_OP_NONE_KHR = VK_ATTACHMENT_LOAD_OP_NONE,
2328     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2329 } VkAttachmentLoadOp;
2330 
2331 typedef enum VkAttachmentStoreOp {
2332     VK_ATTACHMENT_STORE_OP_STORE = 0,
2333     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2334     VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2335     VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2336     VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2337     VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2338     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2339 } VkAttachmentStoreOp;
2340 
2341 typedef enum VkPipelineBindPoint {
2342     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2343     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2344 #ifdef VK_ENABLE_BETA_EXTENSIONS
2345     VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
2346 #endif
2347     VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2348     VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2349     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2350     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2351 } VkPipelineBindPoint;
2352 
2353 typedef enum VkCommandBufferLevel {
2354     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2355     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2356     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2357 } VkCommandBufferLevel;
2358 
2359 typedef enum VkIndexType {
2360     VK_INDEX_TYPE_UINT16 = 0,
2361     VK_INDEX_TYPE_UINT32 = 1,
2362     VK_INDEX_TYPE_UINT8 = 1000265000,
2363     VK_INDEX_TYPE_NONE_KHR = 1000165000,
2364     VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2365     VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8,
2366     VK_INDEX_TYPE_UINT8_KHR = VK_INDEX_TYPE_UINT8,
2367     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2368 } VkIndexType;
2369 
2370 typedef enum VkSubpassContents {
2371     VK_SUBPASS_CONTENTS_INLINE = 0,
2372     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2373     VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000,
2374     VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR,
2375     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2376 } VkSubpassContents;
2377 
2378 typedef enum VkAccessFlagBits {
2379     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2380     VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2381     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2382     VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2383     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2384     VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2385     VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2386     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2387     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2388     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2389     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2390     VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2391     VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2392     VK_ACCESS_HOST_READ_BIT = 0x00002000,
2393     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2394     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2395     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
2396     VK_ACCESS_NONE = 0,
2397     VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2398     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2399     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
2400     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
2401     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2402     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
2403     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
2404     VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2405     VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
2406     VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
2407     VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
2408     VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
2409     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
2410     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
2411     VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
2412     VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
2413     VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
2414     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2415 } VkAccessFlagBits;
2416 typedef VkFlags VkAccessFlags;
2417 
2418 typedef enum VkImageAspectFlagBits {
2419     VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2420     VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2421     VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2422     VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
2423     VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2424     VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2425     VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2426     VK_IMAGE_ASPECT_NONE = 0,
2427     VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2428     VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2429     VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2430     VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
2431     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
2432     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
2433     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
2434     VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
2435     VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2436 } VkImageAspectFlagBits;
2437 typedef VkFlags VkImageAspectFlags;
2438 
2439 typedef enum VkFormatFeatureFlagBits {
2440     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
2441     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
2442     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
2443     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
2444     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
2445     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
2446     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
2447     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
2448     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
2449     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
2450     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
2451     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
2452     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
2453     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2454     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2455     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2456     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2457     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2458     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2459     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2460     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2461     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2462     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
2463     VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
2464     VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
2465     VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
2466     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
2467     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
2468     VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
2469     VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
2470     VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
2471     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2472     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2473     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2474     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2475     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2476     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2477     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2478     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2479     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,
2480     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
2481     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2482     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2483 } VkFormatFeatureFlagBits;
2484 typedef VkFlags VkFormatFeatureFlags;
2485 
2486 typedef enum VkImageCreateFlagBits {
2487     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2488     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2489     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2490     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
2491     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
2492     VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2493     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
2494     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
2495     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2496     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
2497     VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
2498     VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
2499     VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
2500     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
2501     VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
2502     VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
2503     VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
2504     VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
2505     VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000,
2506     VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
2507     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2508     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2509     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2510     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2511     VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
2512     VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
2513     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2514 } VkImageCreateFlagBits;
2515 typedef VkFlags VkImageCreateFlags;
2516 
2517 typedef enum VkSampleCountFlagBits {
2518     VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2519     VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2520     VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2521     VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2522     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2523     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2524     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2525     VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2526 } VkSampleCountFlagBits;
2527 typedef VkFlags VkSampleCountFlags;
2528 
2529 typedef enum VkImageUsageFlagBits {
2530     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2531     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
2532     VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
2533     VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
2534     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
2535     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
2536     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
2537     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
2538     VK_IMAGE_USAGE_HOST_TRANSFER_BIT = 0x00400000,
2539     VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
2540     VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
2541     VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
2542     VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
2543     VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
2544     VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
2545     VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
2546     VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
2547     VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
2548     VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
2549     VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
2550     VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
2551     VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x02000000,
2552     VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x04000000,
2553     VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2554     VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = VK_IMAGE_USAGE_HOST_TRANSFER_BIT,
2555     VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2556 } VkImageUsageFlagBits;
2557 typedef VkFlags VkImageUsageFlags;
2558 
2559 typedef enum VkInstanceCreateFlagBits {
2560     VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
2561     VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2562 } VkInstanceCreateFlagBits;
2563 typedef VkFlags VkInstanceCreateFlags;
2564 
2565 typedef enum VkMemoryHeapFlagBits {
2566     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
2567     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2568     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2569     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2570 } VkMemoryHeapFlagBits;
2571 typedef VkFlags VkMemoryHeapFlags;
2572 
2573 typedef enum VkMemoryPropertyFlagBits {
2574     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2575     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2576     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2577     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2578     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
2579     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
2580     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
2581     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
2582     VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
2583     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2584 } VkMemoryPropertyFlagBits;
2585 typedef VkFlags VkMemoryPropertyFlags;
2586 
2587 typedef enum VkQueueFlagBits {
2588     VK_QUEUE_GRAPHICS_BIT = 0x00000001,
2589     VK_QUEUE_COMPUTE_BIT = 0x00000002,
2590     VK_QUEUE_TRANSFER_BIT = 0x00000004,
2591     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
2592     VK_QUEUE_PROTECTED_BIT = 0x00000010,
2593     VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
2594     VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
2595     VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
2596     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2597 } VkQueueFlagBits;
2598 typedef VkFlags VkQueueFlags;
2599 typedef VkFlags VkDeviceCreateFlags;
2600 
2601 typedef enum VkDeviceQueueCreateFlagBits {
2602     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2603     VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2604 } VkDeviceQueueCreateFlagBits;
2605 typedef VkFlags VkDeviceQueueCreateFlags;
2606 
2607 typedef enum VkPipelineStageFlagBits {
2608     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
2609     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
2610     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
2611     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
2612     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
2613     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
2614     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
2615     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
2616     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
2617     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
2618     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
2619     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
2620     VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
2621     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2622     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
2623     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
2624     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
2625     VK_PIPELINE_STAGE_NONE = 0,
2626     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
2627     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
2628     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
2629     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
2630     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2631     VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
2632     VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
2633     VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
2634     VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
2635     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2636     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2637     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2638     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2639     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
2640     VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
2641     VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
2642     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2643 } VkPipelineStageFlagBits;
2644 typedef VkFlags VkPipelineStageFlags;
2645 
2646 typedef enum VkMemoryMapFlagBits {
2647     VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
2648     VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2649 } VkMemoryMapFlagBits;
2650 typedef VkFlags VkMemoryMapFlags;
2651 
2652 typedef enum VkSparseMemoryBindFlagBits {
2653     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2654     VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2655 } VkSparseMemoryBindFlagBits;
2656 typedef VkFlags VkSparseMemoryBindFlags;
2657 
2658 typedef enum VkSparseImageFormatFlagBits {
2659     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
2660     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
2661     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
2662     VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2663 } VkSparseImageFormatFlagBits;
2664 typedef VkFlags VkSparseImageFormatFlags;
2665 
2666 typedef enum VkFenceCreateFlagBits {
2667     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2668     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2669 } VkFenceCreateFlagBits;
2670 typedef VkFlags VkFenceCreateFlags;
2671 typedef VkFlags VkSemaphoreCreateFlags;
2672 
2673 typedef enum VkEventCreateFlagBits {
2674     VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
2675     VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
2676     VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2677 } VkEventCreateFlagBits;
2678 typedef VkFlags VkEventCreateFlags;
2679 
2680 typedef enum VkQueryPipelineStatisticFlagBits {
2681     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
2682     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
2683     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
2684     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
2685     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
2686     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
2687     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
2688     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
2689     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
2690     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
2691     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
2692     VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
2693     VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
2694     VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
2695     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2696 } VkQueryPipelineStatisticFlagBits;
2697 typedef VkFlags VkQueryPipelineStatisticFlags;
2698 typedef VkFlags VkQueryPoolCreateFlags;
2699 
2700 typedef enum VkQueryResultFlagBits {
2701     VK_QUERY_RESULT_64_BIT = 0x00000001,
2702     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
2703     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
2704     VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
2705     VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
2706     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2707 } VkQueryResultFlagBits;
2708 typedef VkFlags VkQueryResultFlags;
2709 
2710 typedef enum VkBufferCreateFlagBits {
2711     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2712     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2713     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2714     VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
2715     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
2716     VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
2717     VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
2718     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2719     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2720     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2721 } VkBufferCreateFlagBits;
2722 typedef VkFlags VkBufferCreateFlags;
2723 
2724 typedef enum VkBufferUsageFlagBits {
2725     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2726     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
2727     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
2728     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
2729     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
2730     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
2731     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
2732     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
2733     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
2734     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
2735     VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
2736     VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
2737     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2738     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
2739     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
2740 #ifdef VK_ENABLE_BETA_EXTENSIONS
2741     VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
2742 #endif
2743     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
2744     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
2745     VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
2746     VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
2747     VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
2748     VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
2749     VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
2750     VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
2751     VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
2752     VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
2753     VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
2754     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2755     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2756     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2757 } VkBufferUsageFlagBits;
2758 typedef VkFlags VkBufferUsageFlags;
2759 typedef VkFlags VkBufferViewCreateFlags;
2760 
2761 typedef enum VkImageViewCreateFlagBits {
2762     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
2763     VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
2764     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
2765     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2766 } VkImageViewCreateFlagBits;
2767 typedef VkFlags VkImageViewCreateFlags;
2768 typedef VkFlags VkShaderModuleCreateFlags;
2769 
2770 typedef enum VkPipelineCacheCreateFlagBits {
2771     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
2772     VK_PIPELINE_CACHE_CREATE_INTERNALLY_SYNCHRONIZED_MERGE_BIT_KHR = 0x00000008,
2773     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
2774     VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2775 } VkPipelineCacheCreateFlagBits;
2776 typedef VkFlags VkPipelineCacheCreateFlags;
2777 
2778 typedef enum VkColorComponentFlagBits {
2779     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2780     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2781     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2782     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
2783     VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2784 } VkColorComponentFlagBits;
2785 typedef VkFlags VkColorComponentFlags;
2786 
2787 typedef enum VkPipelineCreateFlagBits {
2788     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2789     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2790     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
2791     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2792     VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
2793     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
2794     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
2795     VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT = 0x08000000,
2796     VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT = 0x40000000,
2797     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
2798     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
2799     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
2800     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
2801     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
2802     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
2803     VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
2804     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
2805     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
2806     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
2807     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
2808     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
2809     VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
2810     VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
2811     VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
2812     VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
2813     VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
2814     VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
2815     VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
2816     VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
2817     VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
2818 #ifdef VK_ENABLE_BETA_EXTENSIONS
2819     VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
2820 #endif
2821     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
2822     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
2823     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
2824   // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a deprecated alias
2825     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
2826   // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a deprecated alias
2827     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2828     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
2829     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
2830     VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT,
2831     VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT,
2832     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2833 } VkPipelineCreateFlagBits;
2834 typedef VkFlags VkPipelineCreateFlags;
2835 
2836 typedef enum VkPipelineShaderStageCreateFlagBits {
2837     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
2838     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
2839     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
2840     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
2841     VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2842 } VkPipelineShaderStageCreateFlagBits;
2843 typedef VkFlags VkPipelineShaderStageCreateFlags;
2844 
2845 typedef enum VkShaderStageFlagBits {
2846     VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
2847     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2848     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
2849     VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2850     VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2851     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
2852     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
2853     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2854     VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
2855     VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
2856     VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
2857     VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
2858     VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
2859     VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
2860     VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
2861     VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
2862     VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
2863     VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
2864     VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
2865     VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
2866     VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
2867     VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
2868     VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
2869     VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
2870     VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
2871     VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
2872     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2873 } VkShaderStageFlagBits;
2874 
2875 typedef enum VkCullModeFlagBits {
2876     VK_CULL_MODE_NONE = 0,
2877     VK_CULL_MODE_FRONT_BIT = 0x00000001,
2878     VK_CULL_MODE_BACK_BIT = 0x00000002,
2879     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2880     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2881 } VkCullModeFlagBits;
2882 typedef VkFlags VkCullModeFlags;
2883 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
2884 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
2885 typedef VkFlags VkPipelineTessellationStateCreateFlags;
2886 typedef VkFlags VkPipelineViewportStateCreateFlags;
2887 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
2888 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
2889 
2890 typedef enum VkPipelineDepthStencilStateCreateFlagBits {
2891     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
2892     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
2893     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,
2894     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,
2895     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2896 } VkPipelineDepthStencilStateCreateFlagBits;
2897 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
2898 
2899 typedef enum VkPipelineColorBlendStateCreateFlagBits {
2900     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
2901     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
2902     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2903 } VkPipelineColorBlendStateCreateFlagBits;
2904 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
2905 typedef VkFlags VkPipelineDynamicStateCreateFlags;
2906 
2907 typedef enum VkPipelineLayoutCreateFlagBits {
2908     VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
2909     VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2910 } VkPipelineLayoutCreateFlagBits;
2911 typedef VkFlags VkPipelineLayoutCreateFlags;
2912 typedef VkFlags VkShaderStageFlags;
2913 
2914 typedef enum VkSamplerCreateFlagBits {
2915     VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
2916     VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
2917     VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
2918     VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
2919     VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
2920     VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2921 } VkSamplerCreateFlagBits;
2922 typedef VkFlags VkSamplerCreateFlags;
2923 
2924 typedef enum VkDescriptorPoolCreateFlagBits {
2925     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
2926     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
2927     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
2928     VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
2929     VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
2930     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
2931     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
2932     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2933 } VkDescriptorPoolCreateFlagBits;
2934 typedef VkFlags VkDescriptorPoolCreateFlags;
2935 typedef VkFlags VkDescriptorPoolResetFlags;
2936 
2937 typedef enum VkDescriptorSetLayoutCreateFlagBits {
2938     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
2939     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT = 0x00000001,
2940     VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
2941     VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
2942     VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
2943     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
2944     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
2945     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT,
2946     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
2947     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
2948     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2949 } VkDescriptorSetLayoutCreateFlagBits;
2950 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
2951 
2952 typedef enum VkAttachmentDescriptionFlagBits {
2953     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
2954     VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2955 } VkAttachmentDescriptionFlagBits;
2956 typedef VkFlags VkAttachmentDescriptionFlags;
2957 
2958 typedef enum VkDependencyFlagBits {
2959     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
2960     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2961     VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
2962     VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
2963     VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR = 0x00000020,
2964     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
2965     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
2966     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2967 } VkDependencyFlagBits;
2968 typedef VkFlags VkDependencyFlags;
2969 
2970 typedef enum VkFramebufferCreateFlagBits {
2971     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
2972     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
2973     VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2974 } VkFramebufferCreateFlagBits;
2975 typedef VkFlags VkFramebufferCreateFlags;
2976 
2977 typedef enum VkRenderPassCreateFlagBits {
2978     VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
2979     VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2980 } VkRenderPassCreateFlagBits;
2981 typedef VkFlags VkRenderPassCreateFlags;
2982 
2983 typedef enum VkSubpassDescriptionFlagBits {
2984     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2985     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
2986     VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
2987     VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
2988     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
2989     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
2990     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
2991     VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
2992     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
2993     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
2994     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
2995     VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2996 } VkSubpassDescriptionFlagBits;
2997 typedef VkFlags VkSubpassDescriptionFlags;
2998 
2999 typedef enum VkCommandPoolCreateFlagBits {
3000     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
3001     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
3002     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
3003     VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3004 } VkCommandPoolCreateFlagBits;
3005 typedef VkFlags VkCommandPoolCreateFlags;
3006 
3007 typedef enum VkCommandPoolResetFlagBits {
3008     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
3009     VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3010 } VkCommandPoolResetFlagBits;
3011 typedef VkFlags VkCommandPoolResetFlags;
3012 
3013 typedef enum VkCommandBufferUsageFlagBits {
3014     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
3015     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
3016     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
3017     VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3018 } VkCommandBufferUsageFlagBits;
3019 typedef VkFlags VkCommandBufferUsageFlags;
3020 
3021 typedef enum VkQueryControlFlagBits {
3022     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
3023     VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3024 } VkQueryControlFlagBits;
3025 typedef VkFlags VkQueryControlFlags;
3026 
3027 typedef enum VkCommandBufferResetFlagBits {
3028     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
3029     VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3030 } VkCommandBufferResetFlagBits;
3031 typedef VkFlags VkCommandBufferResetFlags;
3032 
3033 typedef enum VkStencilFaceFlagBits {
3034     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
3035     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
3036     VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
3037   // VK_STENCIL_FRONT_AND_BACK is a deprecated alias
3038     VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
3039     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3040 } VkStencilFaceFlagBits;
3041 typedef VkFlags VkStencilFaceFlags;
3042 typedef struct VkExtent2D {
3043     uint32_t    width;
3044     uint32_t    height;
3045 } VkExtent2D;
3046 
3047 typedef struct VkExtent3D {
3048     uint32_t    width;
3049     uint32_t    height;
3050     uint32_t    depth;
3051 } VkExtent3D;
3052 
3053 typedef struct VkOffset2D {
3054     int32_t    x;
3055     int32_t    y;
3056 } VkOffset2D;
3057 
3058 typedef struct VkOffset3D {
3059     int32_t    x;
3060     int32_t    y;
3061     int32_t    z;
3062 } VkOffset3D;
3063 
3064 typedef struct VkRect2D {
3065     VkOffset2D    offset;
3066     VkExtent2D    extent;
3067 } VkRect2D;
3068 
3069 typedef struct VkBaseInStructure {
3070     VkStructureType                    sType;
3071     const struct VkBaseInStructure*    pNext;
3072 } VkBaseInStructure;
3073 
3074 typedef struct VkBaseOutStructure {
3075     VkStructureType               sType;
3076     struct VkBaseOutStructure*    pNext;
3077 } VkBaseOutStructure;
3078 
3079 typedef struct VkBufferMemoryBarrier {
3080     VkStructureType    sType;
3081     const void*        pNext;
3082     VkAccessFlags      srcAccessMask;
3083     VkAccessFlags      dstAccessMask;
3084     uint32_t           srcQueueFamilyIndex;
3085     uint32_t           dstQueueFamilyIndex;
3086     VkBuffer           buffer;
3087     VkDeviceSize       offset;
3088     VkDeviceSize       size;
3089 } VkBufferMemoryBarrier;
3090 
3091 typedef struct VkDispatchIndirectCommand {
3092     uint32_t    x;
3093     uint32_t    y;
3094     uint32_t    z;
3095 } VkDispatchIndirectCommand;
3096 
3097 typedef struct VkDrawIndexedIndirectCommand {
3098     uint32_t    indexCount;
3099     uint32_t    instanceCount;
3100     uint32_t    firstIndex;
3101     int32_t     vertexOffset;
3102     uint32_t    firstInstance;
3103 } VkDrawIndexedIndirectCommand;
3104 
3105 typedef struct VkDrawIndirectCommand {
3106     uint32_t    vertexCount;
3107     uint32_t    instanceCount;
3108     uint32_t    firstVertex;
3109     uint32_t    firstInstance;
3110 } VkDrawIndirectCommand;
3111 
3112 typedef struct VkImageSubresourceRange {
3113     VkImageAspectFlags    aspectMask;
3114     uint32_t              baseMipLevel;
3115     uint32_t              levelCount;
3116     uint32_t              baseArrayLayer;
3117     uint32_t              layerCount;
3118 } VkImageSubresourceRange;
3119 
3120 typedef struct VkImageMemoryBarrier {
3121     VkStructureType            sType;
3122     const void*                pNext;
3123     VkAccessFlags              srcAccessMask;
3124     VkAccessFlags              dstAccessMask;
3125     VkImageLayout              oldLayout;
3126     VkImageLayout              newLayout;
3127     uint32_t                   srcQueueFamilyIndex;
3128     uint32_t                   dstQueueFamilyIndex;
3129     VkImage                    image;
3130     VkImageSubresourceRange    subresourceRange;
3131 } VkImageMemoryBarrier;
3132 
3133 typedef struct VkMemoryBarrier {
3134     VkStructureType    sType;
3135     const void*        pNext;
3136     VkAccessFlags      srcAccessMask;
3137     VkAccessFlags      dstAccessMask;
3138 } VkMemoryBarrier;
3139 
3140 typedef struct VkPipelineCacheHeaderVersionOne {
3141     uint32_t                        headerSize;
3142     VkPipelineCacheHeaderVersion    headerVersion;
3143     uint32_t                        vendorID;
3144     uint32_t                        deviceID;
3145     uint8_t                         pipelineCacheUUID[VK_UUID_SIZE];
3146 } VkPipelineCacheHeaderVersionOne;
3147 
3148 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
3149     void*                                       pUserData,
3150     size_t                                      size,
3151     size_t                                      alignment,
3152     VkSystemAllocationScope                     allocationScope);
3153 
3154 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
3155     void*                                       pUserData,
3156     void*                                       pMemory);
3157 
3158 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
3159     void*                                       pUserData,
3160     size_t                                      size,
3161     VkInternalAllocationType                    allocationType,
3162     VkSystemAllocationScope                     allocationScope);
3163 
3164 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
3165     void*                                       pUserData,
3166     size_t                                      size,
3167     VkInternalAllocationType                    allocationType,
3168     VkSystemAllocationScope                     allocationScope);
3169 
3170 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
3171     void*                                       pUserData,
3172     void*                                       pOriginal,
3173     size_t                                      size,
3174     size_t                                      alignment,
3175     VkSystemAllocationScope                     allocationScope);
3176 
3177 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
3178 typedef struct VkAllocationCallbacks {
3179     void*                                   pUserData;
3180     PFN_vkAllocationFunction                pfnAllocation;
3181     PFN_vkReallocationFunction              pfnReallocation;
3182     PFN_vkFreeFunction                      pfnFree;
3183     PFN_vkInternalAllocationNotification    pfnInternalAllocation;
3184     PFN_vkInternalFreeNotification          pfnInternalFree;
3185 } VkAllocationCallbacks;
3186 
3187 typedef struct VkApplicationInfo {
3188     VkStructureType    sType;
3189     const void*        pNext;
3190     const char*        pApplicationName;
3191     uint32_t           applicationVersion;
3192     const char*        pEngineName;
3193     uint32_t           engineVersion;
3194     uint32_t           apiVersion;
3195 } VkApplicationInfo;
3196 
3197 typedef struct VkFormatProperties {
3198     VkFormatFeatureFlags    linearTilingFeatures;
3199     VkFormatFeatureFlags    optimalTilingFeatures;
3200     VkFormatFeatureFlags    bufferFeatures;
3201 } VkFormatProperties;
3202 
3203 typedef struct VkImageFormatProperties {
3204     VkExtent3D            maxExtent;
3205     uint32_t              maxMipLevels;
3206     uint32_t              maxArrayLayers;
3207     VkSampleCountFlags    sampleCounts;
3208     VkDeviceSize          maxResourceSize;
3209 } VkImageFormatProperties;
3210 
3211 typedef struct VkInstanceCreateInfo {
3212     VkStructureType             sType;
3213     const void*                 pNext;
3214     VkInstanceCreateFlags       flags;
3215     const VkApplicationInfo*    pApplicationInfo;
3216     uint32_t                    enabledLayerCount;
3217     const char* const*          ppEnabledLayerNames;
3218     uint32_t                    enabledExtensionCount;
3219     const char* const*          ppEnabledExtensionNames;
3220 } VkInstanceCreateInfo;
3221 
3222 typedef struct VkMemoryHeap {
3223     VkDeviceSize         size;
3224     VkMemoryHeapFlags    flags;
3225 } VkMemoryHeap;
3226 
3227 typedef struct VkMemoryType {
3228     VkMemoryPropertyFlags    propertyFlags;
3229     uint32_t                 heapIndex;
3230 } VkMemoryType;
3231 
3232 typedef struct VkPhysicalDeviceFeatures {
3233     VkBool32    robustBufferAccess;
3234     VkBool32    fullDrawIndexUint32;
3235     VkBool32    imageCubeArray;
3236     VkBool32    independentBlend;
3237     VkBool32    geometryShader;
3238     VkBool32    tessellationShader;
3239     VkBool32    sampleRateShading;
3240     VkBool32    dualSrcBlend;
3241     VkBool32    logicOp;
3242     VkBool32    multiDrawIndirect;
3243     VkBool32    drawIndirectFirstInstance;
3244     VkBool32    depthClamp;
3245     VkBool32    depthBiasClamp;
3246     VkBool32    fillModeNonSolid;
3247     VkBool32    depthBounds;
3248     VkBool32    wideLines;
3249     VkBool32    largePoints;
3250     VkBool32    alphaToOne;
3251     VkBool32    multiViewport;
3252     VkBool32    samplerAnisotropy;
3253     VkBool32    textureCompressionETC2;
3254     VkBool32    textureCompressionASTC_LDR;
3255     VkBool32    textureCompressionBC;
3256     VkBool32    occlusionQueryPrecise;
3257     VkBool32    pipelineStatisticsQuery;
3258     VkBool32    vertexPipelineStoresAndAtomics;
3259     VkBool32    fragmentStoresAndAtomics;
3260     VkBool32    shaderTessellationAndGeometryPointSize;
3261     VkBool32    shaderImageGatherExtended;
3262     VkBool32    shaderStorageImageExtendedFormats;
3263     VkBool32    shaderStorageImageMultisample;
3264     VkBool32    shaderStorageImageReadWithoutFormat;
3265     VkBool32    shaderStorageImageWriteWithoutFormat;
3266     VkBool32    shaderUniformBufferArrayDynamicIndexing;
3267     VkBool32    shaderSampledImageArrayDynamicIndexing;
3268     VkBool32    shaderStorageBufferArrayDynamicIndexing;
3269     VkBool32    shaderStorageImageArrayDynamicIndexing;
3270     VkBool32    shaderClipDistance;
3271     VkBool32    shaderCullDistance;
3272     VkBool32    shaderFloat64;
3273     VkBool32    shaderInt64;
3274     VkBool32    shaderInt16;
3275     VkBool32    shaderResourceResidency;
3276     VkBool32    shaderResourceMinLod;
3277     VkBool32    sparseBinding;
3278     VkBool32    sparseResidencyBuffer;
3279     VkBool32    sparseResidencyImage2D;
3280     VkBool32    sparseResidencyImage3D;
3281     VkBool32    sparseResidency2Samples;
3282     VkBool32    sparseResidency4Samples;
3283     VkBool32    sparseResidency8Samples;
3284     VkBool32    sparseResidency16Samples;
3285     VkBool32    sparseResidencyAliased;
3286     VkBool32    variableMultisampleRate;
3287     VkBool32    inheritedQueries;
3288 } VkPhysicalDeviceFeatures;
3289 
3290 typedef struct VkPhysicalDeviceLimits {
3291     uint32_t              maxImageDimension1D;
3292     uint32_t              maxImageDimension2D;
3293     uint32_t              maxImageDimension3D;
3294     uint32_t              maxImageDimensionCube;
3295     uint32_t              maxImageArrayLayers;
3296     uint32_t              maxTexelBufferElements;
3297     uint32_t              maxUniformBufferRange;
3298     uint32_t              maxStorageBufferRange;
3299     uint32_t              maxPushConstantsSize;
3300     uint32_t              maxMemoryAllocationCount;
3301     uint32_t              maxSamplerAllocationCount;
3302     VkDeviceSize          bufferImageGranularity;
3303     VkDeviceSize          sparseAddressSpaceSize;
3304     uint32_t              maxBoundDescriptorSets;
3305     uint32_t              maxPerStageDescriptorSamplers;
3306     uint32_t              maxPerStageDescriptorUniformBuffers;
3307     uint32_t              maxPerStageDescriptorStorageBuffers;
3308     uint32_t              maxPerStageDescriptorSampledImages;
3309     uint32_t              maxPerStageDescriptorStorageImages;
3310     uint32_t              maxPerStageDescriptorInputAttachments;
3311     uint32_t              maxPerStageResources;
3312     uint32_t              maxDescriptorSetSamplers;
3313     uint32_t              maxDescriptorSetUniformBuffers;
3314     uint32_t              maxDescriptorSetUniformBuffersDynamic;
3315     uint32_t              maxDescriptorSetStorageBuffers;
3316     uint32_t              maxDescriptorSetStorageBuffersDynamic;
3317     uint32_t              maxDescriptorSetSampledImages;
3318     uint32_t              maxDescriptorSetStorageImages;
3319     uint32_t              maxDescriptorSetInputAttachments;
3320     uint32_t              maxVertexInputAttributes;
3321     uint32_t              maxVertexInputBindings;
3322     uint32_t              maxVertexInputAttributeOffset;
3323     uint32_t              maxVertexInputBindingStride;
3324     uint32_t              maxVertexOutputComponents;
3325     uint32_t              maxTessellationGenerationLevel;
3326     uint32_t              maxTessellationPatchSize;
3327     uint32_t              maxTessellationControlPerVertexInputComponents;
3328     uint32_t              maxTessellationControlPerVertexOutputComponents;
3329     uint32_t              maxTessellationControlPerPatchOutputComponents;
3330     uint32_t              maxTessellationControlTotalOutputComponents;
3331     uint32_t              maxTessellationEvaluationInputComponents;
3332     uint32_t              maxTessellationEvaluationOutputComponents;
3333     uint32_t              maxGeometryShaderInvocations;
3334     uint32_t              maxGeometryInputComponents;
3335     uint32_t              maxGeometryOutputComponents;
3336     uint32_t              maxGeometryOutputVertices;
3337     uint32_t              maxGeometryTotalOutputComponents;
3338     uint32_t              maxFragmentInputComponents;
3339     uint32_t              maxFragmentOutputAttachments;
3340     uint32_t              maxFragmentDualSrcAttachments;
3341     uint32_t              maxFragmentCombinedOutputResources;
3342     uint32_t              maxComputeSharedMemorySize;
3343     uint32_t              maxComputeWorkGroupCount[3];
3344     uint32_t              maxComputeWorkGroupInvocations;
3345     uint32_t              maxComputeWorkGroupSize[3];
3346     uint32_t              subPixelPrecisionBits;
3347     uint32_t              subTexelPrecisionBits;
3348     uint32_t              mipmapPrecisionBits;
3349     uint32_t              maxDrawIndexedIndexValue;
3350     uint32_t              maxDrawIndirectCount;
3351     float                 maxSamplerLodBias;
3352     float                 maxSamplerAnisotropy;
3353     uint32_t              maxViewports;
3354     uint32_t              maxViewportDimensions[2];
3355     float                 viewportBoundsRange[2];
3356     uint32_t              viewportSubPixelBits;
3357     size_t                minMemoryMapAlignment;
3358     VkDeviceSize          minTexelBufferOffsetAlignment;
3359     VkDeviceSize          minUniformBufferOffsetAlignment;
3360     VkDeviceSize          minStorageBufferOffsetAlignment;
3361     int32_t               minTexelOffset;
3362     uint32_t              maxTexelOffset;
3363     int32_t               minTexelGatherOffset;
3364     uint32_t              maxTexelGatherOffset;
3365     float                 minInterpolationOffset;
3366     float                 maxInterpolationOffset;
3367     uint32_t              subPixelInterpolationOffsetBits;
3368     uint32_t              maxFramebufferWidth;
3369     uint32_t              maxFramebufferHeight;
3370     uint32_t              maxFramebufferLayers;
3371     VkSampleCountFlags    framebufferColorSampleCounts;
3372     VkSampleCountFlags    framebufferDepthSampleCounts;
3373     VkSampleCountFlags    framebufferStencilSampleCounts;
3374     VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
3375     uint32_t              maxColorAttachments;
3376     VkSampleCountFlags    sampledImageColorSampleCounts;
3377     VkSampleCountFlags    sampledImageIntegerSampleCounts;
3378     VkSampleCountFlags    sampledImageDepthSampleCounts;
3379     VkSampleCountFlags    sampledImageStencilSampleCounts;
3380     VkSampleCountFlags    storageImageSampleCounts;
3381     uint32_t              maxSampleMaskWords;
3382     VkBool32              timestampComputeAndGraphics;
3383     float                 timestampPeriod;
3384     uint32_t              maxClipDistances;
3385     uint32_t              maxCullDistances;
3386     uint32_t              maxCombinedClipAndCullDistances;
3387     uint32_t              discreteQueuePriorities;
3388     float                 pointSizeRange[2];
3389     float                 lineWidthRange[2];
3390     float                 pointSizeGranularity;
3391     float                 lineWidthGranularity;
3392     VkBool32              strictLines;
3393     VkBool32              standardSampleLocations;
3394     VkDeviceSize          optimalBufferCopyOffsetAlignment;
3395     VkDeviceSize          optimalBufferCopyRowPitchAlignment;
3396     VkDeviceSize          nonCoherentAtomSize;
3397 } VkPhysicalDeviceLimits;
3398 
3399 typedef struct VkPhysicalDeviceMemoryProperties {
3400     uint32_t        memoryTypeCount;
3401     VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
3402     uint32_t        memoryHeapCount;
3403     VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
3404 } VkPhysicalDeviceMemoryProperties;
3405 
3406 typedef struct VkPhysicalDeviceSparseProperties {
3407     VkBool32    residencyStandard2DBlockShape;
3408     VkBool32    residencyStandard2DMultisampleBlockShape;
3409     VkBool32    residencyStandard3DBlockShape;
3410     VkBool32    residencyAlignedMipSize;
3411     VkBool32    residencyNonResidentStrict;
3412 } VkPhysicalDeviceSparseProperties;
3413 
3414 typedef struct VkPhysicalDeviceProperties {
3415     uint32_t                            apiVersion;
3416     uint32_t                            driverVersion;
3417     uint32_t                            vendorID;
3418     uint32_t                            deviceID;
3419     VkPhysicalDeviceType                deviceType;
3420     char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3421     uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
3422     VkPhysicalDeviceLimits              limits;
3423     VkPhysicalDeviceSparseProperties    sparseProperties;
3424 } VkPhysicalDeviceProperties;
3425 
3426 typedef struct VkQueueFamilyProperties {
3427     VkQueueFlags    queueFlags;
3428     uint32_t        queueCount;
3429     uint32_t        timestampValidBits;
3430     VkExtent3D      minImageTransferGranularity;
3431 } VkQueueFamilyProperties;
3432 
3433 typedef struct VkDeviceQueueCreateInfo {
3434     VkStructureType             sType;
3435     const void*                 pNext;
3436     VkDeviceQueueCreateFlags    flags;
3437     uint32_t                    queueFamilyIndex;
3438     uint32_t                    queueCount;
3439     const float*                pQueuePriorities;
3440 } VkDeviceQueueCreateInfo;
3441 
3442 typedef struct VkDeviceCreateInfo {
3443     VkStructureType                    sType;
3444     const void*                        pNext;
3445     VkDeviceCreateFlags                flags;
3446     uint32_t                           queueCreateInfoCount;
3447     const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
3448     // enabledLayerCount is deprecated and should not be used
3449     uint32_t                           enabledLayerCount;
3450     // ppEnabledLayerNames is deprecated and should not be used
3451     const char* const*                 ppEnabledLayerNames;
3452     uint32_t                           enabledExtensionCount;
3453     const char* const*                 ppEnabledExtensionNames;
3454     const VkPhysicalDeviceFeatures*    pEnabledFeatures;
3455 } VkDeviceCreateInfo;
3456 
3457 typedef struct VkExtensionProperties {
3458     char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
3459     uint32_t    specVersion;
3460 } VkExtensionProperties;
3461 
3462 typedef struct VkLayerProperties {
3463     char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
3464     uint32_t    specVersion;
3465     uint32_t    implementationVersion;
3466     char        description[VK_MAX_DESCRIPTION_SIZE];
3467 } VkLayerProperties;
3468 
3469 typedef struct VkSubmitInfo {
3470     VkStructureType                sType;
3471     const void*                    pNext;
3472     uint32_t                       waitSemaphoreCount;
3473     const VkSemaphore*             pWaitSemaphores;
3474     const VkPipelineStageFlags*    pWaitDstStageMask;
3475     uint32_t                       commandBufferCount;
3476     const VkCommandBuffer*         pCommandBuffers;
3477     uint32_t                       signalSemaphoreCount;
3478     const VkSemaphore*             pSignalSemaphores;
3479 } VkSubmitInfo;
3480 
3481 typedef struct VkMappedMemoryRange {
3482     VkStructureType    sType;
3483     const void*        pNext;
3484     VkDeviceMemory     memory;
3485     VkDeviceSize       offset;
3486     VkDeviceSize       size;
3487 } VkMappedMemoryRange;
3488 
3489 typedef struct VkMemoryAllocateInfo {
3490     VkStructureType    sType;
3491     const void*        pNext;
3492     VkDeviceSize       allocationSize;
3493     uint32_t           memoryTypeIndex;
3494 } VkMemoryAllocateInfo;
3495 
3496 typedef struct VkMemoryRequirements {
3497     VkDeviceSize    size;
3498     VkDeviceSize    alignment;
3499     uint32_t        memoryTypeBits;
3500 } VkMemoryRequirements;
3501 
3502 typedef struct VkSparseMemoryBind {
3503     VkDeviceSize               resourceOffset;
3504     VkDeviceSize               size;
3505     VkDeviceMemory             memory;
3506     VkDeviceSize               memoryOffset;
3507     VkSparseMemoryBindFlags    flags;
3508 } VkSparseMemoryBind;
3509 
3510 typedef struct VkSparseBufferMemoryBindInfo {
3511     VkBuffer                     buffer;
3512     uint32_t                     bindCount;
3513     const VkSparseMemoryBind*    pBinds;
3514 } VkSparseBufferMemoryBindInfo;
3515 
3516 typedef struct VkSparseImageOpaqueMemoryBindInfo {
3517     VkImage                      image;
3518     uint32_t                     bindCount;
3519     const VkSparseMemoryBind*    pBinds;
3520 } VkSparseImageOpaqueMemoryBindInfo;
3521 
3522 typedef struct VkImageSubresource {
3523     VkImageAspectFlags    aspectMask;
3524     uint32_t              mipLevel;
3525     uint32_t              arrayLayer;
3526 } VkImageSubresource;
3527 
3528 typedef struct VkSparseImageMemoryBind {
3529     VkImageSubresource         subresource;
3530     VkOffset3D                 offset;
3531     VkExtent3D                 extent;
3532     VkDeviceMemory             memory;
3533     VkDeviceSize               memoryOffset;
3534     VkSparseMemoryBindFlags    flags;
3535 } VkSparseImageMemoryBind;
3536 
3537 typedef struct VkSparseImageMemoryBindInfo {
3538     VkImage                           image;
3539     uint32_t                          bindCount;
3540     const VkSparseImageMemoryBind*    pBinds;
3541 } VkSparseImageMemoryBindInfo;
3542 
3543 typedef struct VkBindSparseInfo {
3544     VkStructureType                             sType;
3545     const void*                                 pNext;
3546     uint32_t                                    waitSemaphoreCount;
3547     const VkSemaphore*                          pWaitSemaphores;
3548     uint32_t                                    bufferBindCount;
3549     const VkSparseBufferMemoryBindInfo*         pBufferBinds;
3550     uint32_t                                    imageOpaqueBindCount;
3551     const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
3552     uint32_t                                    imageBindCount;
3553     const VkSparseImageMemoryBindInfo*          pImageBinds;
3554     uint32_t                                    signalSemaphoreCount;
3555     const VkSemaphore*                          pSignalSemaphores;
3556 } VkBindSparseInfo;
3557 
3558 typedef struct VkSparseImageFormatProperties {
3559     VkImageAspectFlags          aspectMask;
3560     VkExtent3D                  imageGranularity;
3561     VkSparseImageFormatFlags    flags;
3562 } VkSparseImageFormatProperties;
3563 
3564 typedef struct VkSparseImageMemoryRequirements {
3565     VkSparseImageFormatProperties    formatProperties;
3566     uint32_t                         imageMipTailFirstLod;
3567     VkDeviceSize                     imageMipTailSize;
3568     VkDeviceSize                     imageMipTailOffset;
3569     VkDeviceSize                     imageMipTailStride;
3570 } VkSparseImageMemoryRequirements;
3571 
3572 typedef struct VkFenceCreateInfo {
3573     VkStructureType       sType;
3574     const void*           pNext;
3575     VkFenceCreateFlags    flags;
3576 } VkFenceCreateInfo;
3577 
3578 typedef struct VkSemaphoreCreateInfo {
3579     VkStructureType           sType;
3580     const void*               pNext;
3581     VkSemaphoreCreateFlags    flags;
3582 } VkSemaphoreCreateInfo;
3583 
3584 typedef struct VkEventCreateInfo {
3585     VkStructureType       sType;
3586     const void*           pNext;
3587     VkEventCreateFlags    flags;
3588 } VkEventCreateInfo;
3589 
3590 typedef struct VkQueryPoolCreateInfo {
3591     VkStructureType                  sType;
3592     const void*                      pNext;
3593     VkQueryPoolCreateFlags           flags;
3594     VkQueryType                      queryType;
3595     uint32_t                         queryCount;
3596     VkQueryPipelineStatisticFlags    pipelineStatistics;
3597 } VkQueryPoolCreateInfo;
3598 
3599 typedef struct VkBufferCreateInfo {
3600     VkStructureType        sType;
3601     const void*            pNext;
3602     VkBufferCreateFlags    flags;
3603     VkDeviceSize           size;
3604     VkBufferUsageFlags     usage;
3605     VkSharingMode          sharingMode;
3606     uint32_t               queueFamilyIndexCount;
3607     const uint32_t*        pQueueFamilyIndices;
3608 } VkBufferCreateInfo;
3609 
3610 typedef struct VkBufferViewCreateInfo {
3611     VkStructureType            sType;
3612     const void*                pNext;
3613     VkBufferViewCreateFlags    flags;
3614     VkBuffer                   buffer;
3615     VkFormat                   format;
3616     VkDeviceSize               offset;
3617     VkDeviceSize               range;
3618 } VkBufferViewCreateInfo;
3619 
3620 typedef struct VkImageCreateInfo {
3621     VkStructureType          sType;
3622     const void*              pNext;
3623     VkImageCreateFlags       flags;
3624     VkImageType              imageType;
3625     VkFormat                 format;
3626     VkExtent3D               extent;
3627     uint32_t                 mipLevels;
3628     uint32_t                 arrayLayers;
3629     VkSampleCountFlagBits    samples;
3630     VkImageTiling            tiling;
3631     VkImageUsageFlags        usage;
3632     VkSharingMode            sharingMode;
3633     uint32_t                 queueFamilyIndexCount;
3634     const uint32_t*          pQueueFamilyIndices;
3635     VkImageLayout            initialLayout;
3636 } VkImageCreateInfo;
3637 
3638 typedef struct VkSubresourceLayout {
3639     VkDeviceSize    offset;
3640     VkDeviceSize    size;
3641     VkDeviceSize    rowPitch;
3642     VkDeviceSize    arrayPitch;
3643     VkDeviceSize    depthPitch;
3644 } VkSubresourceLayout;
3645 
3646 typedef struct VkComponentMapping {
3647     VkComponentSwizzle    r;
3648     VkComponentSwizzle    g;
3649     VkComponentSwizzle    b;
3650     VkComponentSwizzle    a;
3651 } VkComponentMapping;
3652 
3653 typedef struct VkImageViewCreateInfo {
3654     VkStructureType            sType;
3655     const void*                pNext;
3656     VkImageViewCreateFlags     flags;
3657     VkImage                    image;
3658     VkImageViewType            viewType;
3659     VkFormat                   format;
3660     VkComponentMapping         components;
3661     VkImageSubresourceRange    subresourceRange;
3662 } VkImageViewCreateInfo;
3663 
3664 typedef struct VkShaderModuleCreateInfo {
3665     VkStructureType              sType;
3666     const void*                  pNext;
3667     VkShaderModuleCreateFlags    flags;
3668     size_t                       codeSize;
3669     const uint32_t*              pCode;
3670 } VkShaderModuleCreateInfo;
3671 
3672 typedef struct VkPipelineCacheCreateInfo {
3673     VkStructureType               sType;
3674     const void*                   pNext;
3675     VkPipelineCacheCreateFlags    flags;
3676     size_t                        initialDataSize;
3677     const void*                   pInitialData;
3678 } VkPipelineCacheCreateInfo;
3679 
3680 typedef struct VkSpecializationMapEntry {
3681     uint32_t    constantID;
3682     uint32_t    offset;
3683     size_t      size;
3684 } VkSpecializationMapEntry;
3685 
3686 typedef struct VkSpecializationInfo {
3687     uint32_t                           mapEntryCount;
3688     const VkSpecializationMapEntry*    pMapEntries;
3689     size_t                             dataSize;
3690     const void*                        pData;
3691 } VkSpecializationInfo;
3692 
3693 typedef struct VkPipelineShaderStageCreateInfo {
3694     VkStructureType                     sType;
3695     const void*                         pNext;
3696     VkPipelineShaderStageCreateFlags    flags;
3697     VkShaderStageFlagBits               stage;
3698     VkShaderModule                      module;
3699     const char*                         pName;
3700     const VkSpecializationInfo*         pSpecializationInfo;
3701 } VkPipelineShaderStageCreateInfo;
3702 
3703 typedef struct VkComputePipelineCreateInfo {
3704     VkStructureType                    sType;
3705     const void*                        pNext;
3706     VkPipelineCreateFlags              flags;
3707     VkPipelineShaderStageCreateInfo    stage;
3708     VkPipelineLayout                   layout;
3709     VkPipeline                         basePipelineHandle;
3710     int32_t                            basePipelineIndex;
3711 } VkComputePipelineCreateInfo;
3712 
3713 typedef struct VkVertexInputBindingDescription {
3714     uint32_t             binding;
3715     uint32_t             stride;
3716     VkVertexInputRate    inputRate;
3717 } VkVertexInputBindingDescription;
3718 
3719 typedef struct VkVertexInputAttributeDescription {
3720     uint32_t    location;
3721     uint32_t    binding;
3722     VkFormat    format;
3723     uint32_t    offset;
3724 } VkVertexInputAttributeDescription;
3725 
3726 typedef struct VkPipelineVertexInputStateCreateInfo {
3727     VkStructureType                             sType;
3728     const void*                                 pNext;
3729     VkPipelineVertexInputStateCreateFlags       flags;
3730     uint32_t                                    vertexBindingDescriptionCount;
3731     const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
3732     uint32_t                                    vertexAttributeDescriptionCount;
3733     const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
3734 } VkPipelineVertexInputStateCreateInfo;
3735 
3736 typedef struct VkPipelineInputAssemblyStateCreateInfo {
3737     VkStructureType                            sType;
3738     const void*                                pNext;
3739     VkPipelineInputAssemblyStateCreateFlags    flags;
3740     VkPrimitiveTopology                        topology;
3741     VkBool32                                   primitiveRestartEnable;
3742 } VkPipelineInputAssemblyStateCreateInfo;
3743 
3744 typedef struct VkPipelineTessellationStateCreateInfo {
3745     VkStructureType                           sType;
3746     const void*                               pNext;
3747     VkPipelineTessellationStateCreateFlags    flags;
3748     uint32_t                                  patchControlPoints;
3749 } VkPipelineTessellationStateCreateInfo;
3750 
3751 typedef struct VkViewport {
3752     float    x;
3753     float    y;
3754     float    width;
3755     float    height;
3756     float    minDepth;
3757     float    maxDepth;
3758 } VkViewport;
3759 
3760 typedef struct VkPipelineViewportStateCreateInfo {
3761     VkStructureType                       sType;
3762     const void*                           pNext;
3763     VkPipelineViewportStateCreateFlags    flags;
3764     uint32_t                              viewportCount;
3765     const VkViewport*                     pViewports;
3766     uint32_t                              scissorCount;
3767     const VkRect2D*                       pScissors;
3768 } VkPipelineViewportStateCreateInfo;
3769 
3770 typedef struct VkPipelineRasterizationStateCreateInfo {
3771     VkStructureType                            sType;
3772     const void*                                pNext;
3773     VkPipelineRasterizationStateCreateFlags    flags;
3774     VkBool32                                   depthClampEnable;
3775     VkBool32                                   rasterizerDiscardEnable;
3776     VkPolygonMode                              polygonMode;
3777     VkCullModeFlags                            cullMode;
3778     VkFrontFace                                frontFace;
3779     VkBool32                                   depthBiasEnable;
3780     float                                      depthBiasConstantFactor;
3781     float                                      depthBiasClamp;
3782     float                                      depthBiasSlopeFactor;
3783     float                                      lineWidth;
3784 } VkPipelineRasterizationStateCreateInfo;
3785 
3786 typedef struct VkPipelineMultisampleStateCreateInfo {
3787     VkStructureType                          sType;
3788     const void*                              pNext;
3789     VkPipelineMultisampleStateCreateFlags    flags;
3790     VkSampleCountFlagBits                    rasterizationSamples;
3791     VkBool32                                 sampleShadingEnable;
3792     float                                    minSampleShading;
3793     const VkSampleMask*                      pSampleMask;
3794     VkBool32                                 alphaToCoverageEnable;
3795     VkBool32                                 alphaToOneEnable;
3796 } VkPipelineMultisampleStateCreateInfo;
3797 
3798 typedef struct VkStencilOpState {
3799     VkStencilOp    failOp;
3800     VkStencilOp    passOp;
3801     VkStencilOp    depthFailOp;
3802     VkCompareOp    compareOp;
3803     uint32_t       compareMask;
3804     uint32_t       writeMask;
3805     uint32_t       reference;
3806 } VkStencilOpState;
3807 
3808 typedef struct VkPipelineDepthStencilStateCreateInfo {
3809     VkStructureType                           sType;
3810     const void*                               pNext;
3811     VkPipelineDepthStencilStateCreateFlags    flags;
3812     VkBool32                                  depthTestEnable;
3813     VkBool32                                  depthWriteEnable;
3814     VkCompareOp                               depthCompareOp;
3815     VkBool32                                  depthBoundsTestEnable;
3816     VkBool32                                  stencilTestEnable;
3817     VkStencilOpState                          front;
3818     VkStencilOpState                          back;
3819     float                                     minDepthBounds;
3820     float                                     maxDepthBounds;
3821 } VkPipelineDepthStencilStateCreateInfo;
3822 
3823 typedef struct VkPipelineColorBlendAttachmentState {
3824     VkBool32                 blendEnable;
3825     VkBlendFactor            srcColorBlendFactor;
3826     VkBlendFactor            dstColorBlendFactor;
3827     VkBlendOp                colorBlendOp;
3828     VkBlendFactor            srcAlphaBlendFactor;
3829     VkBlendFactor            dstAlphaBlendFactor;
3830     VkBlendOp                alphaBlendOp;
3831     VkColorComponentFlags    colorWriteMask;
3832 } VkPipelineColorBlendAttachmentState;
3833 
3834 typedef struct VkPipelineColorBlendStateCreateInfo {
3835     VkStructureType                               sType;
3836     const void*                                   pNext;
3837     VkPipelineColorBlendStateCreateFlags          flags;
3838     VkBool32                                      logicOpEnable;
3839     VkLogicOp                                     logicOp;
3840     uint32_t                                      attachmentCount;
3841     const VkPipelineColorBlendAttachmentState*    pAttachments;
3842     float                                         blendConstants[4];
3843 } VkPipelineColorBlendStateCreateInfo;
3844 
3845 typedef struct VkPipelineDynamicStateCreateInfo {
3846     VkStructureType                      sType;
3847     const void*                          pNext;
3848     VkPipelineDynamicStateCreateFlags    flags;
3849     uint32_t                             dynamicStateCount;
3850     const VkDynamicState*                pDynamicStates;
3851 } VkPipelineDynamicStateCreateInfo;
3852 
3853 typedef struct VkGraphicsPipelineCreateInfo {
3854     VkStructureType                                  sType;
3855     const void*                                      pNext;
3856     VkPipelineCreateFlags                            flags;
3857     uint32_t                                         stageCount;
3858     const VkPipelineShaderStageCreateInfo*           pStages;
3859     const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
3860     const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
3861     const VkPipelineTessellationStateCreateInfo*     pTessellationState;
3862     const VkPipelineViewportStateCreateInfo*         pViewportState;
3863     const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
3864     const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
3865     const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
3866     const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
3867     const VkPipelineDynamicStateCreateInfo*          pDynamicState;
3868     VkPipelineLayout                                 layout;
3869     VkRenderPass                                     renderPass;
3870     uint32_t                                         subpass;
3871     VkPipeline                                       basePipelineHandle;
3872     int32_t                                          basePipelineIndex;
3873 } VkGraphicsPipelineCreateInfo;
3874 
3875 typedef struct VkPushConstantRange {
3876     VkShaderStageFlags    stageFlags;
3877     uint32_t              offset;
3878     uint32_t              size;
3879 } VkPushConstantRange;
3880 
3881 typedef struct VkPipelineLayoutCreateInfo {
3882     VkStructureType                 sType;
3883     const void*                     pNext;
3884     VkPipelineLayoutCreateFlags     flags;
3885     uint32_t                        setLayoutCount;
3886     const VkDescriptorSetLayout*    pSetLayouts;
3887     uint32_t                        pushConstantRangeCount;
3888     const VkPushConstantRange*      pPushConstantRanges;
3889 } VkPipelineLayoutCreateInfo;
3890 
3891 typedef struct VkSamplerCreateInfo {
3892     VkStructureType         sType;
3893     const void*             pNext;
3894     VkSamplerCreateFlags    flags;
3895     VkFilter                magFilter;
3896     VkFilter                minFilter;
3897     VkSamplerMipmapMode     mipmapMode;
3898     VkSamplerAddressMode    addressModeU;
3899     VkSamplerAddressMode    addressModeV;
3900     VkSamplerAddressMode    addressModeW;
3901     float                   mipLodBias;
3902     VkBool32                anisotropyEnable;
3903     float                   maxAnisotropy;
3904     VkBool32                compareEnable;
3905     VkCompareOp             compareOp;
3906     float                   minLod;
3907     float                   maxLod;
3908     VkBorderColor           borderColor;
3909     VkBool32                unnormalizedCoordinates;
3910 } VkSamplerCreateInfo;
3911 
3912 typedef struct VkCopyDescriptorSet {
3913     VkStructureType    sType;
3914     const void*        pNext;
3915     VkDescriptorSet    srcSet;
3916     uint32_t           srcBinding;
3917     uint32_t           srcArrayElement;
3918     VkDescriptorSet    dstSet;
3919     uint32_t           dstBinding;
3920     uint32_t           dstArrayElement;
3921     uint32_t           descriptorCount;
3922 } VkCopyDescriptorSet;
3923 
3924 typedef struct VkDescriptorBufferInfo {
3925     VkBuffer        buffer;
3926     VkDeviceSize    offset;
3927     VkDeviceSize    range;
3928 } VkDescriptorBufferInfo;
3929 
3930 typedef struct VkDescriptorImageInfo {
3931     VkSampler        sampler;
3932     VkImageView      imageView;
3933     VkImageLayout    imageLayout;
3934 } VkDescriptorImageInfo;
3935 
3936 typedef struct VkDescriptorPoolSize {
3937     VkDescriptorType    type;
3938     uint32_t            descriptorCount;
3939 } VkDescriptorPoolSize;
3940 
3941 typedef struct VkDescriptorPoolCreateInfo {
3942     VkStructureType                sType;
3943     const void*                    pNext;
3944     VkDescriptorPoolCreateFlags    flags;
3945     uint32_t                       maxSets;
3946     uint32_t                       poolSizeCount;
3947     const VkDescriptorPoolSize*    pPoolSizes;
3948 } VkDescriptorPoolCreateInfo;
3949 
3950 typedef struct VkDescriptorSetAllocateInfo {
3951     VkStructureType                 sType;
3952     const void*                     pNext;
3953     VkDescriptorPool                descriptorPool;
3954     uint32_t                        descriptorSetCount;
3955     const VkDescriptorSetLayout*    pSetLayouts;
3956 } VkDescriptorSetAllocateInfo;
3957 
3958 typedef struct VkDescriptorSetLayoutBinding {
3959     uint32_t              binding;
3960     VkDescriptorType      descriptorType;
3961     uint32_t              descriptorCount;
3962     VkShaderStageFlags    stageFlags;
3963     const VkSampler*      pImmutableSamplers;
3964 } VkDescriptorSetLayoutBinding;
3965 
3966 typedef struct VkDescriptorSetLayoutCreateInfo {
3967     VkStructureType                        sType;
3968     const void*                            pNext;
3969     VkDescriptorSetLayoutCreateFlags       flags;
3970     uint32_t                               bindingCount;
3971     const VkDescriptorSetLayoutBinding*    pBindings;
3972 } VkDescriptorSetLayoutCreateInfo;
3973 
3974 typedef struct VkWriteDescriptorSet {
3975     VkStructureType                  sType;
3976     const void*                      pNext;
3977     VkDescriptorSet                  dstSet;
3978     uint32_t                         dstBinding;
3979     uint32_t                         dstArrayElement;
3980     uint32_t                         descriptorCount;
3981     VkDescriptorType                 descriptorType;
3982     const VkDescriptorImageInfo*     pImageInfo;
3983     const VkDescriptorBufferInfo*    pBufferInfo;
3984     const VkBufferView*              pTexelBufferView;
3985 } VkWriteDescriptorSet;
3986 
3987 typedef struct VkAttachmentDescription {
3988     VkAttachmentDescriptionFlags    flags;
3989     VkFormat                        format;
3990     VkSampleCountFlagBits           samples;
3991     VkAttachmentLoadOp              loadOp;
3992     VkAttachmentStoreOp             storeOp;
3993     VkAttachmentLoadOp              stencilLoadOp;
3994     VkAttachmentStoreOp             stencilStoreOp;
3995     VkImageLayout                   initialLayout;
3996     VkImageLayout                   finalLayout;
3997 } VkAttachmentDescription;
3998 
3999 typedef struct VkAttachmentReference {
4000     uint32_t         attachment;
4001     VkImageLayout    layout;
4002 } VkAttachmentReference;
4003 
4004 typedef struct VkFramebufferCreateInfo {
4005     VkStructureType             sType;
4006     const void*                 pNext;
4007     VkFramebufferCreateFlags    flags;
4008     VkRenderPass                renderPass;
4009     uint32_t                    attachmentCount;
4010     const VkImageView*          pAttachments;
4011     uint32_t                    width;
4012     uint32_t                    height;
4013     uint32_t                    layers;
4014 } VkFramebufferCreateInfo;
4015 
4016 typedef struct VkSubpassDescription {
4017     VkSubpassDescriptionFlags       flags;
4018     VkPipelineBindPoint             pipelineBindPoint;
4019     uint32_t                        inputAttachmentCount;
4020     const VkAttachmentReference*    pInputAttachments;
4021     uint32_t                        colorAttachmentCount;
4022     const VkAttachmentReference*    pColorAttachments;
4023     const VkAttachmentReference*    pResolveAttachments;
4024     const VkAttachmentReference*    pDepthStencilAttachment;
4025     uint32_t                        preserveAttachmentCount;
4026     const uint32_t*                 pPreserveAttachments;
4027 } VkSubpassDescription;
4028 
4029 typedef struct VkSubpassDependency {
4030     uint32_t                srcSubpass;
4031     uint32_t                dstSubpass;
4032     VkPipelineStageFlags    srcStageMask;
4033     VkPipelineStageFlags    dstStageMask;
4034     VkAccessFlags           srcAccessMask;
4035     VkAccessFlags           dstAccessMask;
4036     VkDependencyFlags       dependencyFlags;
4037 } VkSubpassDependency;
4038 
4039 typedef struct VkRenderPassCreateInfo {
4040     VkStructureType                   sType;
4041     const void*                       pNext;
4042     VkRenderPassCreateFlags           flags;
4043     uint32_t                          attachmentCount;
4044     const VkAttachmentDescription*    pAttachments;
4045     uint32_t                          subpassCount;
4046     const VkSubpassDescription*       pSubpasses;
4047     uint32_t                          dependencyCount;
4048     const VkSubpassDependency*        pDependencies;
4049 } VkRenderPassCreateInfo;
4050 
4051 typedef struct VkCommandPoolCreateInfo {
4052     VkStructureType             sType;
4053     const void*                 pNext;
4054     VkCommandPoolCreateFlags    flags;
4055     uint32_t                    queueFamilyIndex;
4056 } VkCommandPoolCreateInfo;
4057 
4058 typedef struct VkCommandBufferAllocateInfo {
4059     VkStructureType         sType;
4060     const void*             pNext;
4061     VkCommandPool           commandPool;
4062     VkCommandBufferLevel    level;
4063     uint32_t                commandBufferCount;
4064 } VkCommandBufferAllocateInfo;
4065 
4066 typedef struct VkCommandBufferInheritanceInfo {
4067     VkStructureType                  sType;
4068     const void*                      pNext;
4069     VkRenderPass                     renderPass;
4070     uint32_t                         subpass;
4071     VkFramebuffer                    framebuffer;
4072     VkBool32                         occlusionQueryEnable;
4073     VkQueryControlFlags              queryFlags;
4074     VkQueryPipelineStatisticFlags    pipelineStatistics;
4075 } VkCommandBufferInheritanceInfo;
4076 
4077 typedef struct VkCommandBufferBeginInfo {
4078     VkStructureType                          sType;
4079     const void*                              pNext;
4080     VkCommandBufferUsageFlags                flags;
4081     const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
4082 } VkCommandBufferBeginInfo;
4083 
4084 typedef struct VkBufferCopy {
4085     VkDeviceSize    srcOffset;
4086     VkDeviceSize    dstOffset;
4087     VkDeviceSize    size;
4088 } VkBufferCopy;
4089 
4090 typedef struct VkImageSubresourceLayers {
4091     VkImageAspectFlags    aspectMask;
4092     uint32_t              mipLevel;
4093     uint32_t              baseArrayLayer;
4094     uint32_t              layerCount;
4095 } VkImageSubresourceLayers;
4096 
4097 typedef struct VkBufferImageCopy {
4098     VkDeviceSize                bufferOffset;
4099     uint32_t                    bufferRowLength;
4100     uint32_t                    bufferImageHeight;
4101     VkImageSubresourceLayers    imageSubresource;
4102     VkOffset3D                  imageOffset;
4103     VkExtent3D                  imageExtent;
4104 } VkBufferImageCopy;
4105 
4106 typedef union VkClearColorValue {
4107     float       float32[4];
4108     int32_t     int32[4];
4109     uint32_t    uint32[4];
4110 } VkClearColorValue;
4111 
4112 typedef struct VkClearDepthStencilValue {
4113     float       depth;
4114     uint32_t    stencil;
4115 } VkClearDepthStencilValue;
4116 
4117 typedef union VkClearValue {
4118     VkClearColorValue           color;
4119     VkClearDepthStencilValue    depthStencil;
4120 } VkClearValue;
4121 
4122 typedef struct VkClearAttachment {
4123     VkImageAspectFlags    aspectMask;
4124     uint32_t              colorAttachment;
4125     VkClearValue          clearValue;
4126 } VkClearAttachment;
4127 
4128 typedef struct VkClearRect {
4129     VkRect2D    rect;
4130     uint32_t    baseArrayLayer;
4131     uint32_t    layerCount;
4132 } VkClearRect;
4133 
4134 typedef struct VkImageBlit {
4135     VkImageSubresourceLayers    srcSubresource;
4136     VkOffset3D                  srcOffsets[2];
4137     VkImageSubresourceLayers    dstSubresource;
4138     VkOffset3D                  dstOffsets[2];
4139 } VkImageBlit;
4140 
4141 typedef struct VkImageCopy {
4142     VkImageSubresourceLayers    srcSubresource;
4143     VkOffset3D                  srcOffset;
4144     VkImageSubresourceLayers    dstSubresource;
4145     VkOffset3D                  dstOffset;
4146     VkExtent3D                  extent;
4147 } VkImageCopy;
4148 
4149 typedef struct VkImageResolve {
4150     VkImageSubresourceLayers    srcSubresource;
4151     VkOffset3D                  srcOffset;
4152     VkImageSubresourceLayers    dstSubresource;
4153     VkOffset3D                  dstOffset;
4154     VkExtent3D                  extent;
4155 } VkImageResolve;
4156 
4157 typedef struct VkRenderPassBeginInfo {
4158     VkStructureType        sType;
4159     const void*            pNext;
4160     VkRenderPass           renderPass;
4161     VkFramebuffer          framebuffer;
4162     VkRect2D               renderArea;
4163     uint32_t               clearValueCount;
4164     const VkClearValue*    pClearValues;
4165 } VkRenderPassBeginInfo;
4166 
4167 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
4168 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
4169 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
4170 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
4171 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
4172 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
4173 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
4174 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
4175 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4176 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
4177 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
4178 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
4179 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
4180 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4181 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4182 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4183 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4184 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
4185 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
4186 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
4187 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
4188 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
4189 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
4190 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
4191 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
4192 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4193 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4194 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
4195 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4196 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4197 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
4198 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
4199 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4200 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
4201 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
4202 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
4203 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
4204 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
4205 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
4206 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
4207 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
4208 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
4209 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
4210 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
4211 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
4212 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
4213 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
4214 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
4215 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
4216 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);
4217 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
4218 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
4219 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
4220 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
4221 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
4222 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
4223 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
4224 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
4225 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
4226 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
4227 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
4228 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
4229 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
4230 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
4231 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
4232 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4233 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4234 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
4235 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
4236 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
4237 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
4238 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
4239 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
4240 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
4241 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
4242 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
4243 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
4244 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
4245 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
4246 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
4247 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
4248 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
4249 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
4250 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
4251 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
4252 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
4253 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
4254 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
4255 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
4256 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4257 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
4258 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
4259 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
4260 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4261 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
4262 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
4263 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4264 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4265 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
4266 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4267 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
4268 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
4269 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
4270 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);
4271 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4272 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
4273 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
4274 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
4275 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4276 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4277 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4278 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4279 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
4280 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
4281 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
4282 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4283 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4284 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4285 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4286 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4287 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4288 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4289 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4290 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4291 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4292 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);
4293 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);
4294 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4295 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4296 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4297 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4298 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4299 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4300 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4301 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4302 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4303 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4304 
4305 #ifndef VK_NO_PROTOTYPES
4306 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4307     const VkInstanceCreateInfo*                 pCreateInfo,
4308     const VkAllocationCallbacks*                pAllocator,
4309     VkInstance*                                 pInstance);
4310 
4311 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4312     VkInstance                                  instance,
4313     const VkAllocationCallbacks*                pAllocator);
4314 
4315 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4316     VkInstance                                  instance,
4317     uint32_t*                                   pPhysicalDeviceCount,
4318     VkPhysicalDevice*                           pPhysicalDevices);
4319 
4320 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4321     VkPhysicalDevice                            physicalDevice,
4322     VkPhysicalDeviceFeatures*                   pFeatures);
4323 
4324 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4325     VkPhysicalDevice                            physicalDevice,
4326     VkFormat                                    format,
4327     VkFormatProperties*                         pFormatProperties);
4328 
4329 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4330     VkPhysicalDevice                            physicalDevice,
4331     VkFormat                                    format,
4332     VkImageType                                 type,
4333     VkImageTiling                               tiling,
4334     VkImageUsageFlags                           usage,
4335     VkImageCreateFlags                          flags,
4336     VkImageFormatProperties*                    pImageFormatProperties);
4337 
4338 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4339     VkPhysicalDevice                            physicalDevice,
4340     VkPhysicalDeviceProperties*                 pProperties);
4341 
4342 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4343     VkPhysicalDevice                            physicalDevice,
4344     uint32_t*                                   pQueueFamilyPropertyCount,
4345     VkQueueFamilyProperties*                    pQueueFamilyProperties);
4346 
4347 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4348     VkPhysicalDevice                            physicalDevice,
4349     VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
4350 
4351 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4352     VkInstance                                  instance,
4353     const char*                                 pName);
4354 
4355 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4356     VkDevice                                    device,
4357     const char*                                 pName);
4358 
4359 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4360     VkPhysicalDevice                            physicalDevice,
4361     const VkDeviceCreateInfo*                   pCreateInfo,
4362     const VkAllocationCallbacks*                pAllocator,
4363     VkDevice*                                   pDevice);
4364 
4365 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4366     VkDevice                                    device,
4367     const VkAllocationCallbacks*                pAllocator);
4368 
4369 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4370     const char*                                 pLayerName,
4371     uint32_t*                                   pPropertyCount,
4372     VkExtensionProperties*                      pProperties);
4373 
4374 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4375     VkPhysicalDevice                            physicalDevice,
4376     const char*                                 pLayerName,
4377     uint32_t*                                   pPropertyCount,
4378     VkExtensionProperties*                      pProperties);
4379 
4380 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4381     uint32_t*                                   pPropertyCount,
4382     VkLayerProperties*                          pProperties);
4383 
4384 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4385     VkPhysicalDevice                            physicalDevice,
4386     uint32_t*                                   pPropertyCount,
4387     VkLayerProperties*                          pProperties);
4388 
4389 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4390     VkDevice                                    device,
4391     uint32_t                                    queueFamilyIndex,
4392     uint32_t                                    queueIndex,
4393     VkQueue*                                    pQueue);
4394 
4395 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4396     VkQueue                                     queue,
4397     uint32_t                                    submitCount,
4398     const VkSubmitInfo*                         pSubmits,
4399     VkFence                                     fence);
4400 
4401 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4402     VkQueue                                     queue);
4403 
4404 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4405     VkDevice                                    device);
4406 
4407 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4408     VkDevice                                    device,
4409     const VkMemoryAllocateInfo*                 pAllocateInfo,
4410     const VkAllocationCallbacks*                pAllocator,
4411     VkDeviceMemory*                             pMemory);
4412 
4413 VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4414     VkDevice                                    device,
4415     VkDeviceMemory                              memory,
4416     const VkAllocationCallbacks*                pAllocator);
4417 
4418 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4419     VkDevice                                    device,
4420     VkDeviceMemory                              memory,
4421     VkDeviceSize                                offset,
4422     VkDeviceSize                                size,
4423     VkMemoryMapFlags                            flags,
4424     void**                                      ppData);
4425 
4426 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4427     VkDevice                                    device,
4428     VkDeviceMemory                              memory);
4429 
4430 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4431     VkDevice                                    device,
4432     uint32_t                                    memoryRangeCount,
4433     const VkMappedMemoryRange*                  pMemoryRanges);
4434 
4435 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4436     VkDevice                                    device,
4437     uint32_t                                    memoryRangeCount,
4438     const VkMappedMemoryRange*                  pMemoryRanges);
4439 
4440 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4441     VkDevice                                    device,
4442     VkDeviceMemory                              memory,
4443     VkDeviceSize*                               pCommittedMemoryInBytes);
4444 
4445 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4446     VkDevice                                    device,
4447     VkBuffer                                    buffer,
4448     VkDeviceMemory                              memory,
4449     VkDeviceSize                                memoryOffset);
4450 
4451 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4452     VkDevice                                    device,
4453     VkImage                                     image,
4454     VkDeviceMemory                              memory,
4455     VkDeviceSize                                memoryOffset);
4456 
4457 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
4458     VkDevice                                    device,
4459     VkBuffer                                    buffer,
4460     VkMemoryRequirements*                       pMemoryRequirements);
4461 
4462 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
4463     VkDevice                                    device,
4464     VkImage                                     image,
4465     VkMemoryRequirements*                       pMemoryRequirements);
4466 
4467 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
4468     VkDevice                                    device,
4469     VkImage                                     image,
4470     uint32_t*                                   pSparseMemoryRequirementCount,
4471     VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
4472 
4473 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
4474     VkPhysicalDevice                            physicalDevice,
4475     VkFormat                                    format,
4476     VkImageType                                 type,
4477     VkSampleCountFlagBits                       samples,
4478     VkImageUsageFlags                           usage,
4479     VkImageTiling                               tiling,
4480     uint32_t*                                   pPropertyCount,
4481     VkSparseImageFormatProperties*              pProperties);
4482 
4483 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
4484     VkQueue                                     queue,
4485     uint32_t                                    bindInfoCount,
4486     const VkBindSparseInfo*                     pBindInfo,
4487     VkFence                                     fence);
4488 
4489 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
4490     VkDevice                                    device,
4491     const VkFenceCreateInfo*                    pCreateInfo,
4492     const VkAllocationCallbacks*                pAllocator,
4493     VkFence*                                    pFence);
4494 
4495 VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
4496     VkDevice                                    device,
4497     VkFence                                     fence,
4498     const VkAllocationCallbacks*                pAllocator);
4499 
4500 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
4501     VkDevice                                    device,
4502     uint32_t                                    fenceCount,
4503     const VkFence*                              pFences);
4504 
4505 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
4506     VkDevice                                    device,
4507     VkFence                                     fence);
4508 
4509 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
4510     VkDevice                                    device,
4511     uint32_t                                    fenceCount,
4512     const VkFence*                              pFences,
4513     VkBool32                                    waitAll,
4514     uint64_t                                    timeout);
4515 
4516 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
4517     VkDevice                                    device,
4518     const VkSemaphoreCreateInfo*                pCreateInfo,
4519     const VkAllocationCallbacks*                pAllocator,
4520     VkSemaphore*                                pSemaphore);
4521 
4522 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
4523     VkDevice                                    device,
4524     VkSemaphore                                 semaphore,
4525     const VkAllocationCallbacks*                pAllocator);
4526 
4527 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
4528     VkDevice                                    device,
4529     const VkEventCreateInfo*                    pCreateInfo,
4530     const VkAllocationCallbacks*                pAllocator,
4531     VkEvent*                                    pEvent);
4532 
4533 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
4534     VkDevice                                    device,
4535     VkEvent                                     event,
4536     const VkAllocationCallbacks*                pAllocator);
4537 
4538 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
4539     VkDevice                                    device,
4540     VkEvent                                     event);
4541 
4542 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
4543     VkDevice                                    device,
4544     VkEvent                                     event);
4545 
4546 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
4547     VkDevice                                    device,
4548     VkEvent                                     event);
4549 
4550 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
4551     VkDevice                                    device,
4552     const VkQueryPoolCreateInfo*                pCreateInfo,
4553     const VkAllocationCallbacks*                pAllocator,
4554     VkQueryPool*                                pQueryPool);
4555 
4556 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
4557     VkDevice                                    device,
4558     VkQueryPool                                 queryPool,
4559     const VkAllocationCallbacks*                pAllocator);
4560 
4561 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
4562     VkDevice                                    device,
4563     VkQueryPool                                 queryPool,
4564     uint32_t                                    firstQuery,
4565     uint32_t                                    queryCount,
4566     size_t                                      dataSize,
4567     void*                                       pData,
4568     VkDeviceSize                                stride,
4569     VkQueryResultFlags                          flags);
4570 
4571 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
4572     VkDevice                                    device,
4573     const VkBufferCreateInfo*                   pCreateInfo,
4574     const VkAllocationCallbacks*                pAllocator,
4575     VkBuffer*                                   pBuffer);
4576 
4577 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
4578     VkDevice                                    device,
4579     VkBuffer                                    buffer,
4580     const VkAllocationCallbacks*                pAllocator);
4581 
4582 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
4583     VkDevice                                    device,
4584     const VkBufferViewCreateInfo*               pCreateInfo,
4585     const VkAllocationCallbacks*                pAllocator,
4586     VkBufferView*                               pView);
4587 
4588 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
4589     VkDevice                                    device,
4590     VkBufferView                                bufferView,
4591     const VkAllocationCallbacks*                pAllocator);
4592 
4593 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
4594     VkDevice                                    device,
4595     const VkImageCreateInfo*                    pCreateInfo,
4596     const VkAllocationCallbacks*                pAllocator,
4597     VkImage*                                    pImage);
4598 
4599 VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
4600     VkDevice                                    device,
4601     VkImage                                     image,
4602     const VkAllocationCallbacks*                pAllocator);
4603 
4604 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
4605     VkDevice                                    device,
4606     VkImage                                     image,
4607     const VkImageSubresource*                   pSubresource,
4608     VkSubresourceLayout*                        pLayout);
4609 
4610 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
4611     VkDevice                                    device,
4612     const VkImageViewCreateInfo*                pCreateInfo,
4613     const VkAllocationCallbacks*                pAllocator,
4614     VkImageView*                                pView);
4615 
4616 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
4617     VkDevice                                    device,
4618     VkImageView                                 imageView,
4619     const VkAllocationCallbacks*                pAllocator);
4620 
4621 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
4622     VkDevice                                    device,
4623     const VkShaderModuleCreateInfo*             pCreateInfo,
4624     const VkAllocationCallbacks*                pAllocator,
4625     VkShaderModule*                             pShaderModule);
4626 
4627 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
4628     VkDevice                                    device,
4629     VkShaderModule                              shaderModule,
4630     const VkAllocationCallbacks*                pAllocator);
4631 
4632 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
4633     VkDevice                                    device,
4634     const VkPipelineCacheCreateInfo*            pCreateInfo,
4635     const VkAllocationCallbacks*                pAllocator,
4636     VkPipelineCache*                            pPipelineCache);
4637 
4638 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
4639     VkDevice                                    device,
4640     VkPipelineCache                             pipelineCache,
4641     const VkAllocationCallbacks*                pAllocator);
4642 
4643 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
4644     VkDevice                                    device,
4645     VkPipelineCache                             pipelineCache,
4646     size_t*                                     pDataSize,
4647     void*                                       pData);
4648 
4649 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
4650     VkDevice                                    device,
4651     VkPipelineCache                             dstCache,
4652     uint32_t                                    srcCacheCount,
4653     const VkPipelineCache*                      pSrcCaches);
4654 
4655 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
4656     VkDevice                                    device,
4657     VkPipelineCache                             pipelineCache,
4658     uint32_t                                    createInfoCount,
4659     const VkGraphicsPipelineCreateInfo*         pCreateInfos,
4660     const VkAllocationCallbacks*                pAllocator,
4661     VkPipeline*                                 pPipelines);
4662 
4663 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
4664     VkDevice                                    device,
4665     VkPipelineCache                             pipelineCache,
4666     uint32_t                                    createInfoCount,
4667     const VkComputePipelineCreateInfo*          pCreateInfos,
4668     const VkAllocationCallbacks*                pAllocator,
4669     VkPipeline*                                 pPipelines);
4670 
4671 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
4672     VkDevice                                    device,
4673     VkPipeline                                  pipeline,
4674     const VkAllocationCallbacks*                pAllocator);
4675 
4676 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
4677     VkDevice                                    device,
4678     const VkPipelineLayoutCreateInfo*           pCreateInfo,
4679     const VkAllocationCallbacks*                pAllocator,
4680     VkPipelineLayout*                           pPipelineLayout);
4681 
4682 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
4683     VkDevice                                    device,
4684     VkPipelineLayout                            pipelineLayout,
4685     const VkAllocationCallbacks*                pAllocator);
4686 
4687 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
4688     VkDevice                                    device,
4689     const VkSamplerCreateInfo*                  pCreateInfo,
4690     const VkAllocationCallbacks*                pAllocator,
4691     VkSampler*                                  pSampler);
4692 
4693 VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
4694     VkDevice                                    device,
4695     VkSampler                                   sampler,
4696     const VkAllocationCallbacks*                pAllocator);
4697 
4698 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
4699     VkDevice                                    device,
4700     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
4701     const VkAllocationCallbacks*                pAllocator,
4702     VkDescriptorSetLayout*                      pSetLayout);
4703 
4704 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
4705     VkDevice                                    device,
4706     VkDescriptorSetLayout                       descriptorSetLayout,
4707     const VkAllocationCallbacks*                pAllocator);
4708 
4709 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
4710     VkDevice                                    device,
4711     const VkDescriptorPoolCreateInfo*           pCreateInfo,
4712     const VkAllocationCallbacks*                pAllocator,
4713     VkDescriptorPool*                           pDescriptorPool);
4714 
4715 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
4716     VkDevice                                    device,
4717     VkDescriptorPool                            descriptorPool,
4718     const VkAllocationCallbacks*                pAllocator);
4719 
4720 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
4721     VkDevice                                    device,
4722     VkDescriptorPool                            descriptorPool,
4723     VkDescriptorPoolResetFlags                  flags);
4724 
4725 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
4726     VkDevice                                    device,
4727     const VkDescriptorSetAllocateInfo*          pAllocateInfo,
4728     VkDescriptorSet*                            pDescriptorSets);
4729 
4730 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
4731     VkDevice                                    device,
4732     VkDescriptorPool                            descriptorPool,
4733     uint32_t                                    descriptorSetCount,
4734     const VkDescriptorSet*                      pDescriptorSets);
4735 
4736 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
4737     VkDevice                                    device,
4738     uint32_t                                    descriptorWriteCount,
4739     const VkWriteDescriptorSet*                 pDescriptorWrites,
4740     uint32_t                                    descriptorCopyCount,
4741     const VkCopyDescriptorSet*                  pDescriptorCopies);
4742 
4743 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
4744     VkDevice                                    device,
4745     const VkFramebufferCreateInfo*              pCreateInfo,
4746     const VkAllocationCallbacks*                pAllocator,
4747     VkFramebuffer*                              pFramebuffer);
4748 
4749 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
4750     VkDevice                                    device,
4751     VkFramebuffer                               framebuffer,
4752     const VkAllocationCallbacks*                pAllocator);
4753 
4754 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
4755     VkDevice                                    device,
4756     const VkRenderPassCreateInfo*               pCreateInfo,
4757     const VkAllocationCallbacks*                pAllocator,
4758     VkRenderPass*                               pRenderPass);
4759 
4760 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
4761     VkDevice                                    device,
4762     VkRenderPass                                renderPass,
4763     const VkAllocationCallbacks*                pAllocator);
4764 
4765 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
4766     VkDevice                                    device,
4767     VkRenderPass                                renderPass,
4768     VkExtent2D*                                 pGranularity);
4769 
4770 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
4771     VkDevice                                    device,
4772     const VkCommandPoolCreateInfo*              pCreateInfo,
4773     const VkAllocationCallbacks*                pAllocator,
4774     VkCommandPool*                              pCommandPool);
4775 
4776 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
4777     VkDevice                                    device,
4778     VkCommandPool                               commandPool,
4779     const VkAllocationCallbacks*                pAllocator);
4780 
4781 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
4782     VkDevice                                    device,
4783     VkCommandPool                               commandPool,
4784     VkCommandPoolResetFlags                     flags);
4785 
4786 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
4787     VkDevice                                    device,
4788     const VkCommandBufferAllocateInfo*          pAllocateInfo,
4789     VkCommandBuffer*                            pCommandBuffers);
4790 
4791 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
4792     VkDevice                                    device,
4793     VkCommandPool                               commandPool,
4794     uint32_t                                    commandBufferCount,
4795     const VkCommandBuffer*                      pCommandBuffers);
4796 
4797 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
4798     VkCommandBuffer                             commandBuffer,
4799     const VkCommandBufferBeginInfo*             pBeginInfo);
4800 
4801 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
4802     VkCommandBuffer                             commandBuffer);
4803 
4804 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
4805     VkCommandBuffer                             commandBuffer,
4806     VkCommandBufferResetFlags                   flags);
4807 
4808 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
4809     VkCommandBuffer                             commandBuffer,
4810     VkPipelineBindPoint                         pipelineBindPoint,
4811     VkPipeline                                  pipeline);
4812 
4813 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
4814     VkCommandBuffer                             commandBuffer,
4815     uint32_t                                    firstViewport,
4816     uint32_t                                    viewportCount,
4817     const VkViewport*                           pViewports);
4818 
4819 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
4820     VkCommandBuffer                             commandBuffer,
4821     uint32_t                                    firstScissor,
4822     uint32_t                                    scissorCount,
4823     const VkRect2D*                             pScissors);
4824 
4825 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
4826     VkCommandBuffer                             commandBuffer,
4827     float                                       lineWidth);
4828 
4829 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
4830     VkCommandBuffer                             commandBuffer,
4831     float                                       depthBiasConstantFactor,
4832     float                                       depthBiasClamp,
4833     float                                       depthBiasSlopeFactor);
4834 
4835 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
4836     VkCommandBuffer                             commandBuffer,
4837     const float                                 blendConstants[4]);
4838 
4839 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
4840     VkCommandBuffer                             commandBuffer,
4841     float                                       minDepthBounds,
4842     float                                       maxDepthBounds);
4843 
4844 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
4845     VkCommandBuffer                             commandBuffer,
4846     VkStencilFaceFlags                          faceMask,
4847     uint32_t                                    compareMask);
4848 
4849 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
4850     VkCommandBuffer                             commandBuffer,
4851     VkStencilFaceFlags                          faceMask,
4852     uint32_t                                    writeMask);
4853 
4854 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
4855     VkCommandBuffer                             commandBuffer,
4856     VkStencilFaceFlags                          faceMask,
4857     uint32_t                                    reference);
4858 
4859 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
4860     VkCommandBuffer                             commandBuffer,
4861     VkPipelineBindPoint                         pipelineBindPoint,
4862     VkPipelineLayout                            layout,
4863     uint32_t                                    firstSet,
4864     uint32_t                                    descriptorSetCount,
4865     const VkDescriptorSet*                      pDescriptorSets,
4866     uint32_t                                    dynamicOffsetCount,
4867     const uint32_t*                             pDynamicOffsets);
4868 
4869 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
4870     VkCommandBuffer                             commandBuffer,
4871     VkBuffer                                    buffer,
4872     VkDeviceSize                                offset,
4873     VkIndexType                                 indexType);
4874 
4875 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
4876     VkCommandBuffer                             commandBuffer,
4877     uint32_t                                    firstBinding,
4878     uint32_t                                    bindingCount,
4879     const VkBuffer*                             pBuffers,
4880     const VkDeviceSize*                         pOffsets);
4881 
4882 VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
4883     VkCommandBuffer                             commandBuffer,
4884     uint32_t                                    vertexCount,
4885     uint32_t                                    instanceCount,
4886     uint32_t                                    firstVertex,
4887     uint32_t                                    firstInstance);
4888 
4889 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
4890     VkCommandBuffer                             commandBuffer,
4891     uint32_t                                    indexCount,
4892     uint32_t                                    instanceCount,
4893     uint32_t                                    firstIndex,
4894     int32_t                                     vertexOffset,
4895     uint32_t                                    firstInstance);
4896 
4897 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
4898     VkCommandBuffer                             commandBuffer,
4899     VkBuffer                                    buffer,
4900     VkDeviceSize                                offset,
4901     uint32_t                                    drawCount,
4902     uint32_t                                    stride);
4903 
4904 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
4905     VkCommandBuffer                             commandBuffer,
4906     VkBuffer                                    buffer,
4907     VkDeviceSize                                offset,
4908     uint32_t                                    drawCount,
4909     uint32_t                                    stride);
4910 
4911 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
4912     VkCommandBuffer                             commandBuffer,
4913     uint32_t                                    groupCountX,
4914     uint32_t                                    groupCountY,
4915     uint32_t                                    groupCountZ);
4916 
4917 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
4918     VkCommandBuffer                             commandBuffer,
4919     VkBuffer                                    buffer,
4920     VkDeviceSize                                offset);
4921 
4922 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
4923     VkCommandBuffer                             commandBuffer,
4924     VkBuffer                                    srcBuffer,
4925     VkBuffer                                    dstBuffer,
4926     uint32_t                                    regionCount,
4927     const VkBufferCopy*                         pRegions);
4928 
4929 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
4930     VkCommandBuffer                             commandBuffer,
4931     VkImage                                     srcImage,
4932     VkImageLayout                               srcImageLayout,
4933     VkImage                                     dstImage,
4934     VkImageLayout                               dstImageLayout,
4935     uint32_t                                    regionCount,
4936     const VkImageCopy*                          pRegions);
4937 
4938 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
4939     VkCommandBuffer                             commandBuffer,
4940     VkImage                                     srcImage,
4941     VkImageLayout                               srcImageLayout,
4942     VkImage                                     dstImage,
4943     VkImageLayout                               dstImageLayout,
4944     uint32_t                                    regionCount,
4945     const VkImageBlit*                          pRegions,
4946     VkFilter                                    filter);
4947 
4948 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
4949     VkCommandBuffer                             commandBuffer,
4950     VkBuffer                                    srcBuffer,
4951     VkImage                                     dstImage,
4952     VkImageLayout                               dstImageLayout,
4953     uint32_t                                    regionCount,
4954     const VkBufferImageCopy*                    pRegions);
4955 
4956 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
4957     VkCommandBuffer                             commandBuffer,
4958     VkImage                                     srcImage,
4959     VkImageLayout                               srcImageLayout,
4960     VkBuffer                                    dstBuffer,
4961     uint32_t                                    regionCount,
4962     const VkBufferImageCopy*                    pRegions);
4963 
4964 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
4965     VkCommandBuffer                             commandBuffer,
4966     VkBuffer                                    dstBuffer,
4967     VkDeviceSize                                dstOffset,
4968     VkDeviceSize                                dataSize,
4969     const void*                                 pData);
4970 
4971 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
4972     VkCommandBuffer                             commandBuffer,
4973     VkBuffer                                    dstBuffer,
4974     VkDeviceSize                                dstOffset,
4975     VkDeviceSize                                size,
4976     uint32_t                                    data);
4977 
4978 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
4979     VkCommandBuffer                             commandBuffer,
4980     VkImage                                     image,
4981     VkImageLayout                               imageLayout,
4982     const VkClearColorValue*                    pColor,
4983     uint32_t                                    rangeCount,
4984     const VkImageSubresourceRange*              pRanges);
4985 
4986 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
4987     VkCommandBuffer                             commandBuffer,
4988     VkImage                                     image,
4989     VkImageLayout                               imageLayout,
4990     const VkClearDepthStencilValue*             pDepthStencil,
4991     uint32_t                                    rangeCount,
4992     const VkImageSubresourceRange*              pRanges);
4993 
4994 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
4995     VkCommandBuffer                             commandBuffer,
4996     uint32_t                                    attachmentCount,
4997     const VkClearAttachment*                    pAttachments,
4998     uint32_t                                    rectCount,
4999     const VkClearRect*                          pRects);
5000 
5001 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
5002     VkCommandBuffer                             commandBuffer,
5003     VkImage                                     srcImage,
5004     VkImageLayout                               srcImageLayout,
5005     VkImage                                     dstImage,
5006     VkImageLayout                               dstImageLayout,
5007     uint32_t                                    regionCount,
5008     const VkImageResolve*                       pRegions);
5009 
5010 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
5011     VkCommandBuffer                             commandBuffer,
5012     VkEvent                                     event,
5013     VkPipelineStageFlags                        stageMask);
5014 
5015 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
5016     VkCommandBuffer                             commandBuffer,
5017     VkEvent                                     event,
5018     VkPipelineStageFlags                        stageMask);
5019 
5020 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
5021     VkCommandBuffer                             commandBuffer,
5022     uint32_t                                    eventCount,
5023     const VkEvent*                              pEvents,
5024     VkPipelineStageFlags                        srcStageMask,
5025     VkPipelineStageFlags                        dstStageMask,
5026     uint32_t                                    memoryBarrierCount,
5027     const VkMemoryBarrier*                      pMemoryBarriers,
5028     uint32_t                                    bufferMemoryBarrierCount,
5029     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
5030     uint32_t                                    imageMemoryBarrierCount,
5031     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
5032 
5033 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
5034     VkCommandBuffer                             commandBuffer,
5035     VkPipelineStageFlags                        srcStageMask,
5036     VkPipelineStageFlags                        dstStageMask,
5037     VkDependencyFlags                           dependencyFlags,
5038     uint32_t                                    memoryBarrierCount,
5039     const VkMemoryBarrier*                      pMemoryBarriers,
5040     uint32_t                                    bufferMemoryBarrierCount,
5041     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
5042     uint32_t                                    imageMemoryBarrierCount,
5043     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
5044 
5045 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
5046     VkCommandBuffer                             commandBuffer,
5047     VkQueryPool                                 queryPool,
5048     uint32_t                                    query,
5049     VkQueryControlFlags                         flags);
5050 
5051 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
5052     VkCommandBuffer                             commandBuffer,
5053     VkQueryPool                                 queryPool,
5054     uint32_t                                    query);
5055 
5056 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
5057     VkCommandBuffer                             commandBuffer,
5058     VkQueryPool                                 queryPool,
5059     uint32_t                                    firstQuery,
5060     uint32_t                                    queryCount);
5061 
5062 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
5063     VkCommandBuffer                             commandBuffer,
5064     VkPipelineStageFlagBits                     pipelineStage,
5065     VkQueryPool                                 queryPool,
5066     uint32_t                                    query);
5067 
5068 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
5069     VkCommandBuffer                             commandBuffer,
5070     VkQueryPool                                 queryPool,
5071     uint32_t                                    firstQuery,
5072     uint32_t                                    queryCount,
5073     VkBuffer                                    dstBuffer,
5074     VkDeviceSize                                dstOffset,
5075     VkDeviceSize                                stride,
5076     VkQueryResultFlags                          flags);
5077 
5078 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
5079     VkCommandBuffer                             commandBuffer,
5080     VkPipelineLayout                            layout,
5081     VkShaderStageFlags                          stageFlags,
5082     uint32_t                                    offset,
5083     uint32_t                                    size,
5084     const void*                                 pValues);
5085 
5086 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
5087     VkCommandBuffer                             commandBuffer,
5088     const VkRenderPassBeginInfo*                pRenderPassBegin,
5089     VkSubpassContents                           contents);
5090 
5091 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
5092     VkCommandBuffer                             commandBuffer,
5093     VkSubpassContents                           contents);
5094 
5095 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
5096     VkCommandBuffer                             commandBuffer);
5097 
5098 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
5099     VkCommandBuffer                             commandBuffer,
5100     uint32_t                                    commandBufferCount,
5101     const VkCommandBuffer*                      pCommandBuffers);
5102 #endif
5103 
5104 
5105 // VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
5106 #define VK_VERSION_1_1 1
5107 // Vulkan 1.1 version number
5108 #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
5109 
5110 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
5111 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
5112 #define VK_MAX_DEVICE_GROUP_SIZE          32U
5113 #define VK_LUID_SIZE                      8U
5114 #define VK_QUEUE_FAMILY_EXTERNAL          (~1U)
5115 
5116 typedef enum VkPointClippingBehavior {
5117     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
5118     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
5119     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
5120     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
5121     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
5122 } VkPointClippingBehavior;
5123 
5124 typedef enum VkTessellationDomainOrigin {
5125     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
5126     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
5127     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
5128     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
5129     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
5130 } VkTessellationDomainOrigin;
5131 
5132 typedef enum VkSamplerYcbcrModelConversion {
5133     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
5134     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
5135     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
5136     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
5137     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
5138     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
5139     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
5140     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
5141     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
5142     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
5143     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
5144 } VkSamplerYcbcrModelConversion;
5145 
5146 typedef enum VkSamplerYcbcrRange {
5147     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
5148     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
5149     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
5150     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
5151     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
5152 } VkSamplerYcbcrRange;
5153 
5154 typedef enum VkChromaLocation {
5155     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
5156     VK_CHROMA_LOCATION_MIDPOINT = 1,
5157     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
5158     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
5159     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
5160 } VkChromaLocation;
5161 
5162 typedef enum VkDescriptorUpdateTemplateType {
5163     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
5164     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS = 1,
5165     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS,
5166     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
5167     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
5168 } VkDescriptorUpdateTemplateType;
5169 
5170 typedef enum VkSubgroupFeatureFlagBits {
5171     VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
5172     VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
5173     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
5174     VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
5175     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
5176     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
5177     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
5178     VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
5179     VK_SUBGROUP_FEATURE_ROTATE_BIT = 0x00000200,
5180     VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT = 0x00000400,
5181     VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
5182     VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_BIT,
5183     VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT,
5184     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5185 } VkSubgroupFeatureFlagBits;
5186 typedef VkFlags VkSubgroupFeatureFlags;
5187 
5188 typedef enum VkPeerMemoryFeatureFlagBits {
5189     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
5190     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
5191     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
5192     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
5193     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
5194     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
5195     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
5196     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
5197     VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5198 } VkPeerMemoryFeatureFlagBits;
5199 typedef VkFlags VkPeerMemoryFeatureFlags;
5200 
5201 typedef enum VkMemoryAllocateFlagBits {
5202     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
5203     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
5204     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
5205     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
5206     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
5207     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
5208     VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5209 } VkMemoryAllocateFlagBits;
5210 typedef VkFlags VkMemoryAllocateFlags;
5211 typedef VkFlags VkCommandPoolTrimFlags;
5212 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
5213 
5214 typedef enum VkExternalMemoryHandleTypeFlagBits {
5215     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5216     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5217     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5218     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
5219     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
5220     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
5221     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
5222     VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
5223     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
5224     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
5225     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
5226     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
5227     VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
5228     VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
5229     VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT = 0x00010000,
5230     VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT = 0x00020000,
5231     VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT = 0x00040000,
5232     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OHOS_NATIVE_BUFFER_BIT_OHOS = 0x00002000,
5233     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5234     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5235     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5236     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5237     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5238     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5239     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5240     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5241 } VkExternalMemoryHandleTypeFlagBits;
5242 typedef VkFlags VkExternalMemoryHandleTypeFlags;
5243 
5244 typedef enum VkExternalMemoryFeatureFlagBits {
5245     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
5246     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
5247     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
5248     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5249     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5250     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
5251     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5252 } VkExternalMemoryFeatureFlagBits;
5253 typedef VkFlags VkExternalMemoryFeatureFlags;
5254 
5255 typedef enum VkExternalFenceHandleTypeFlagBits {
5256     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5257     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5258     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5259     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
5260     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5261     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5262     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5263     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
5264     VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5265 } VkExternalFenceHandleTypeFlagBits;
5266 typedef VkFlags VkExternalFenceHandleTypeFlags;
5267 
5268 typedef enum VkExternalFenceFeatureFlagBits {
5269     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5270     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5271     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5272     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
5273     VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5274 } VkExternalFenceFeatureFlagBits;
5275 typedef VkFlags VkExternalFenceFeatureFlags;
5276 
5277 typedef enum VkFenceImportFlagBits {
5278     VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
5279     VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
5280     VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5281 } VkFenceImportFlagBits;
5282 typedef VkFlags VkFenceImportFlags;
5283 
5284 typedef enum VkSemaphoreImportFlagBits {
5285     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
5286     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
5287     VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5288 } VkSemaphoreImportFlagBits;
5289 typedef VkFlags VkSemaphoreImportFlags;
5290 
5291 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
5292     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5293     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5294     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5295     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5296     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5297     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5298     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5299     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5300     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5301     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5302     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5303     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5304     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5305 } VkExternalSemaphoreHandleTypeFlagBits;
5306 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5307 
5308 typedef enum VkExternalSemaphoreFeatureFlagBits {
5309     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5310     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5311     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5312     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5313     VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5314 } VkExternalSemaphoreFeatureFlagBits;
5315 typedef VkFlags VkExternalSemaphoreFeatureFlags;
5316 typedef struct VkPhysicalDeviceSubgroupProperties {
5317     VkStructureType           sType;
5318     void*                     pNext;
5319     uint32_t                  subgroupSize;
5320     VkShaderStageFlags        supportedStages;
5321     VkSubgroupFeatureFlags    supportedOperations;
5322     VkBool32                  quadOperationsInAllStages;
5323 } VkPhysicalDeviceSubgroupProperties;
5324 
5325 typedef struct VkBindBufferMemoryInfo {
5326     VkStructureType    sType;
5327     const void*        pNext;
5328     VkBuffer           buffer;
5329     VkDeviceMemory     memory;
5330     VkDeviceSize       memoryOffset;
5331 } VkBindBufferMemoryInfo;
5332 
5333 typedef struct VkBindImageMemoryInfo {
5334     VkStructureType    sType;
5335     const void*        pNext;
5336     VkImage            image;
5337     VkDeviceMemory     memory;
5338     VkDeviceSize       memoryOffset;
5339 } VkBindImageMemoryInfo;
5340 
5341 typedef struct VkPhysicalDevice16BitStorageFeatures {
5342     VkStructureType    sType;
5343     void*              pNext;
5344     VkBool32           storageBuffer16BitAccess;
5345     VkBool32           uniformAndStorageBuffer16BitAccess;
5346     VkBool32           storagePushConstant16;
5347     VkBool32           storageInputOutput16;
5348 } VkPhysicalDevice16BitStorageFeatures;
5349 
5350 typedef struct VkMemoryDedicatedRequirements {
5351     VkStructureType    sType;
5352     void*              pNext;
5353     VkBool32           prefersDedicatedAllocation;
5354     VkBool32           requiresDedicatedAllocation;
5355 } VkMemoryDedicatedRequirements;
5356 
5357 typedef struct VkMemoryDedicatedAllocateInfo {
5358     VkStructureType    sType;
5359     const void*        pNext;
5360     VkImage            image;
5361     VkBuffer           buffer;
5362 } VkMemoryDedicatedAllocateInfo;
5363 
5364 typedef struct VkMemoryAllocateFlagsInfo {
5365     VkStructureType          sType;
5366     const void*              pNext;
5367     VkMemoryAllocateFlags    flags;
5368     uint32_t                 deviceMask;
5369 } VkMemoryAllocateFlagsInfo;
5370 
5371 typedef struct VkDeviceGroupRenderPassBeginInfo {
5372     VkStructureType    sType;
5373     const void*        pNext;
5374     uint32_t           deviceMask;
5375     uint32_t           deviceRenderAreaCount;
5376     const VkRect2D*    pDeviceRenderAreas;
5377 } VkDeviceGroupRenderPassBeginInfo;
5378 
5379 typedef struct VkDeviceGroupCommandBufferBeginInfo {
5380     VkStructureType    sType;
5381     const void*        pNext;
5382     uint32_t           deviceMask;
5383 } VkDeviceGroupCommandBufferBeginInfo;
5384 
5385 typedef struct VkDeviceGroupSubmitInfo {
5386     VkStructureType    sType;
5387     const void*        pNext;
5388     uint32_t           waitSemaphoreCount;
5389     const uint32_t*    pWaitSemaphoreDeviceIndices;
5390     uint32_t           commandBufferCount;
5391     const uint32_t*    pCommandBufferDeviceMasks;
5392     uint32_t           signalSemaphoreCount;
5393     const uint32_t*    pSignalSemaphoreDeviceIndices;
5394 } VkDeviceGroupSubmitInfo;
5395 
5396 typedef struct VkDeviceGroupBindSparseInfo {
5397     VkStructureType    sType;
5398     const void*        pNext;
5399     uint32_t           resourceDeviceIndex;
5400     uint32_t           memoryDeviceIndex;
5401 } VkDeviceGroupBindSparseInfo;
5402 
5403 typedef struct VkBindBufferMemoryDeviceGroupInfo {
5404     VkStructureType    sType;
5405     const void*        pNext;
5406     uint32_t           deviceIndexCount;
5407     const uint32_t*    pDeviceIndices;
5408 } VkBindBufferMemoryDeviceGroupInfo;
5409 
5410 typedef struct VkBindImageMemoryDeviceGroupInfo {
5411     VkStructureType    sType;
5412     const void*        pNext;
5413     uint32_t           deviceIndexCount;
5414     const uint32_t*    pDeviceIndices;
5415     uint32_t           splitInstanceBindRegionCount;
5416     const VkRect2D*    pSplitInstanceBindRegions;
5417 } VkBindImageMemoryDeviceGroupInfo;
5418 
5419 typedef struct VkPhysicalDeviceGroupProperties {
5420     VkStructureType     sType;
5421     void*               pNext;
5422     uint32_t            physicalDeviceCount;
5423     VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5424     VkBool32            subsetAllocation;
5425 } VkPhysicalDeviceGroupProperties;
5426 
5427 typedef struct VkDeviceGroupDeviceCreateInfo {
5428     VkStructureType            sType;
5429     const void*                pNext;
5430     uint32_t                   physicalDeviceCount;
5431     const VkPhysicalDevice*    pPhysicalDevices;
5432 } VkDeviceGroupDeviceCreateInfo;
5433 
5434 typedef struct VkBufferMemoryRequirementsInfo2 {
5435     VkStructureType    sType;
5436     const void*        pNext;
5437     VkBuffer           buffer;
5438 } VkBufferMemoryRequirementsInfo2;
5439 
5440 typedef struct VkImageMemoryRequirementsInfo2 {
5441     VkStructureType    sType;
5442     const void*        pNext;
5443     VkImage            image;
5444 } VkImageMemoryRequirementsInfo2;
5445 
5446 typedef struct VkImageSparseMemoryRequirementsInfo2 {
5447     VkStructureType    sType;
5448     const void*        pNext;
5449     VkImage            image;
5450 } VkImageSparseMemoryRequirementsInfo2;
5451 
5452 typedef struct VkMemoryRequirements2 {
5453     VkStructureType         sType;
5454     void*                   pNext;
5455     VkMemoryRequirements    memoryRequirements;
5456 } VkMemoryRequirements2;
5457 
5458 typedef struct VkSparseImageMemoryRequirements2 {
5459     VkStructureType                    sType;
5460     void*                              pNext;
5461     VkSparseImageMemoryRequirements    memoryRequirements;
5462 } VkSparseImageMemoryRequirements2;
5463 
5464 typedef struct VkPhysicalDeviceFeatures2 {
5465     VkStructureType             sType;
5466     void*                       pNext;
5467     VkPhysicalDeviceFeatures    features;
5468 } VkPhysicalDeviceFeatures2;
5469 
5470 typedef struct VkPhysicalDeviceProperties2 {
5471     VkStructureType               sType;
5472     void*                         pNext;
5473     VkPhysicalDeviceProperties    properties;
5474 } VkPhysicalDeviceProperties2;
5475 
5476 typedef struct VkFormatProperties2 {
5477     VkStructureType       sType;
5478     void*                 pNext;
5479     VkFormatProperties    formatProperties;
5480 } VkFormatProperties2;
5481 
5482 typedef struct VkImageFormatProperties2 {
5483     VkStructureType            sType;
5484     void*                      pNext;
5485     VkImageFormatProperties    imageFormatProperties;
5486 } VkImageFormatProperties2;
5487 
5488 typedef struct VkPhysicalDeviceImageFormatInfo2 {
5489     VkStructureType       sType;
5490     const void*           pNext;
5491     VkFormat              format;
5492     VkImageType           type;
5493     VkImageTiling         tiling;
5494     VkImageUsageFlags     usage;
5495     VkImageCreateFlags    flags;
5496 } VkPhysicalDeviceImageFormatInfo2;
5497 
5498 typedef struct VkQueueFamilyProperties2 {
5499     VkStructureType            sType;
5500     void*                      pNext;
5501     VkQueueFamilyProperties    queueFamilyProperties;
5502 } VkQueueFamilyProperties2;
5503 
5504 typedef struct VkPhysicalDeviceMemoryProperties2 {
5505     VkStructureType                     sType;
5506     void*                               pNext;
5507     VkPhysicalDeviceMemoryProperties    memoryProperties;
5508 } VkPhysicalDeviceMemoryProperties2;
5509 
5510 typedef struct VkSparseImageFormatProperties2 {
5511     VkStructureType                  sType;
5512     void*                            pNext;
5513     VkSparseImageFormatProperties    properties;
5514 } VkSparseImageFormatProperties2;
5515 
5516 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
5517     VkStructureType          sType;
5518     const void*              pNext;
5519     VkFormat                 format;
5520     VkImageType              type;
5521     VkSampleCountFlagBits    samples;
5522     VkImageUsageFlags        usage;
5523     VkImageTiling            tiling;
5524 } VkPhysicalDeviceSparseImageFormatInfo2;
5525 
5526 typedef struct VkPhysicalDevicePointClippingProperties {
5527     VkStructureType            sType;
5528     void*                      pNext;
5529     VkPointClippingBehavior    pointClippingBehavior;
5530 } VkPhysicalDevicePointClippingProperties;
5531 
5532 typedef struct VkInputAttachmentAspectReference {
5533     uint32_t              subpass;
5534     uint32_t              inputAttachmentIndex;
5535     VkImageAspectFlags    aspectMask;
5536 } VkInputAttachmentAspectReference;
5537 
5538 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
5539     VkStructureType                            sType;
5540     const void*                                pNext;
5541     uint32_t                                   aspectReferenceCount;
5542     const VkInputAttachmentAspectReference*    pAspectReferences;
5543 } VkRenderPassInputAttachmentAspectCreateInfo;
5544 
5545 typedef struct VkImageViewUsageCreateInfo {
5546     VkStructureType      sType;
5547     const void*          pNext;
5548     VkImageUsageFlags    usage;
5549 } VkImageViewUsageCreateInfo;
5550 
5551 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
5552     VkStructureType               sType;
5553     const void*                   pNext;
5554     VkTessellationDomainOrigin    domainOrigin;
5555 } VkPipelineTessellationDomainOriginStateCreateInfo;
5556 
5557 typedef struct VkRenderPassMultiviewCreateInfo {
5558     VkStructureType    sType;
5559     const void*        pNext;
5560     uint32_t           subpassCount;
5561     const uint32_t*    pViewMasks;
5562     uint32_t           dependencyCount;
5563     const int32_t*     pViewOffsets;
5564     uint32_t           correlationMaskCount;
5565     const uint32_t*    pCorrelationMasks;
5566 } VkRenderPassMultiviewCreateInfo;
5567 
5568 typedef struct VkPhysicalDeviceMultiviewFeatures {
5569     VkStructureType    sType;
5570     void*              pNext;
5571     VkBool32           multiview;
5572     VkBool32           multiviewGeometryShader;
5573     VkBool32           multiviewTessellationShader;
5574 } VkPhysicalDeviceMultiviewFeatures;
5575 
5576 typedef struct VkPhysicalDeviceMultiviewProperties {
5577     VkStructureType    sType;
5578     void*              pNext;
5579     uint32_t           maxMultiviewViewCount;
5580     uint32_t           maxMultiviewInstanceIndex;
5581 } VkPhysicalDeviceMultiviewProperties;
5582 
5583 typedef struct VkPhysicalDeviceVariablePointersFeatures {
5584     VkStructureType    sType;
5585     void*              pNext;
5586     VkBool32           variablePointersStorageBuffer;
5587     VkBool32           variablePointers;
5588 } VkPhysicalDeviceVariablePointersFeatures;
5589 
5590 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
5591 
5592 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
5593     VkStructureType    sType;
5594     void*              pNext;
5595     VkBool32           protectedMemory;
5596 } VkPhysicalDeviceProtectedMemoryFeatures;
5597 
5598 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
5599     VkStructureType    sType;
5600     void*              pNext;
5601     VkBool32           protectedNoFault;
5602 } VkPhysicalDeviceProtectedMemoryProperties;
5603 
5604 typedef struct VkDeviceQueueInfo2 {
5605     VkStructureType             sType;
5606     const void*                 pNext;
5607     VkDeviceQueueCreateFlags    flags;
5608     uint32_t                    queueFamilyIndex;
5609     uint32_t                    queueIndex;
5610 } VkDeviceQueueInfo2;
5611 
5612 typedef struct VkProtectedSubmitInfo {
5613     VkStructureType    sType;
5614     const void*        pNext;
5615     VkBool32           protectedSubmit;
5616 } VkProtectedSubmitInfo;
5617 
5618 typedef struct VkSamplerYcbcrConversionCreateInfo {
5619     VkStructureType                  sType;
5620     const void*                      pNext;
5621     VkFormat                         format;
5622     VkSamplerYcbcrModelConversion    ycbcrModel;
5623     VkSamplerYcbcrRange              ycbcrRange;
5624     VkComponentMapping               components;
5625     VkChromaLocation                 xChromaOffset;
5626     VkChromaLocation                 yChromaOffset;
5627     VkFilter                         chromaFilter;
5628     VkBool32                         forceExplicitReconstruction;
5629 } VkSamplerYcbcrConversionCreateInfo;
5630 
5631 typedef struct VkSamplerYcbcrConversionInfo {
5632     VkStructureType             sType;
5633     const void*                 pNext;
5634     VkSamplerYcbcrConversion    conversion;
5635 } VkSamplerYcbcrConversionInfo;
5636 
5637 typedef struct VkBindImagePlaneMemoryInfo {
5638     VkStructureType          sType;
5639     const void*              pNext;
5640     VkImageAspectFlagBits    planeAspect;
5641 } VkBindImagePlaneMemoryInfo;
5642 
5643 typedef struct VkImagePlaneMemoryRequirementsInfo {
5644     VkStructureType          sType;
5645     const void*              pNext;
5646     VkImageAspectFlagBits    planeAspect;
5647 } VkImagePlaneMemoryRequirementsInfo;
5648 
5649 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5650     VkStructureType    sType;
5651     void*              pNext;
5652     VkBool32           samplerYcbcrConversion;
5653 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
5654 
5655 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
5656     VkStructureType    sType;
5657     void*              pNext;
5658     uint32_t           combinedImageSamplerDescriptorCount;
5659 } VkSamplerYcbcrConversionImageFormatProperties;
5660 
5661 typedef struct VkDescriptorUpdateTemplateEntry {
5662     uint32_t            dstBinding;
5663     uint32_t            dstArrayElement;
5664     uint32_t            descriptorCount;
5665     VkDescriptorType    descriptorType;
5666     size_t              offset;
5667     size_t              stride;
5668 } VkDescriptorUpdateTemplateEntry;
5669 
5670 typedef struct VkDescriptorUpdateTemplateCreateInfo {
5671     VkStructureType                           sType;
5672     const void*                               pNext;
5673     VkDescriptorUpdateTemplateCreateFlags     flags;
5674     uint32_t                                  descriptorUpdateEntryCount;
5675     const VkDescriptorUpdateTemplateEntry*    pDescriptorUpdateEntries;
5676     VkDescriptorUpdateTemplateType            templateType;
5677     VkDescriptorSetLayout                     descriptorSetLayout;
5678     VkPipelineBindPoint                       pipelineBindPoint;
5679     VkPipelineLayout                          pipelineLayout;
5680     uint32_t                                  set;
5681 } VkDescriptorUpdateTemplateCreateInfo;
5682 
5683 typedef struct VkExternalMemoryProperties {
5684     VkExternalMemoryFeatureFlags       externalMemoryFeatures;
5685     VkExternalMemoryHandleTypeFlags    exportFromImportedHandleTypes;
5686     VkExternalMemoryHandleTypeFlags    compatibleHandleTypes;
5687 } VkExternalMemoryProperties;
5688 
5689 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
5690     VkStructureType                       sType;
5691     const void*                           pNext;
5692     VkExternalMemoryHandleTypeFlagBits    handleType;
5693 } VkPhysicalDeviceExternalImageFormatInfo;
5694 
5695 typedef struct VkExternalImageFormatProperties {
5696     VkStructureType               sType;
5697     void*                         pNext;
5698     VkExternalMemoryProperties    externalMemoryProperties;
5699 } VkExternalImageFormatProperties;
5700 
5701 typedef struct VkPhysicalDeviceExternalBufferInfo {
5702     VkStructureType                       sType;
5703     const void*                           pNext;
5704     VkBufferCreateFlags                   flags;
5705     VkBufferUsageFlags                    usage;
5706     VkExternalMemoryHandleTypeFlagBits    handleType;
5707 } VkPhysicalDeviceExternalBufferInfo;
5708 
5709 typedef struct VkExternalBufferProperties {
5710     VkStructureType               sType;
5711     void*                         pNext;
5712     VkExternalMemoryProperties    externalMemoryProperties;
5713 } VkExternalBufferProperties;
5714 
5715 typedef struct VkPhysicalDeviceIDProperties {
5716     VkStructureType    sType;
5717     void*              pNext;
5718     uint8_t            deviceUUID[VK_UUID_SIZE];
5719     uint8_t            driverUUID[VK_UUID_SIZE];
5720     uint8_t            deviceLUID[VK_LUID_SIZE];
5721     uint32_t           deviceNodeMask;
5722     VkBool32           deviceLUIDValid;
5723 } VkPhysicalDeviceIDProperties;
5724 
5725 typedef struct VkExternalMemoryImageCreateInfo {
5726     VkStructureType                    sType;
5727     const void*                        pNext;
5728     VkExternalMemoryHandleTypeFlags    handleTypes;
5729 } VkExternalMemoryImageCreateInfo;
5730 
5731 typedef struct VkExternalMemoryBufferCreateInfo {
5732     VkStructureType                    sType;
5733     const void*                        pNext;
5734     VkExternalMemoryHandleTypeFlags    handleTypes;
5735 } VkExternalMemoryBufferCreateInfo;
5736 
5737 typedef struct VkExportMemoryAllocateInfo {
5738     VkStructureType                    sType;
5739     const void*                        pNext;
5740     VkExternalMemoryHandleTypeFlags    handleTypes;
5741 } VkExportMemoryAllocateInfo;
5742 
5743 typedef struct VkPhysicalDeviceExternalFenceInfo {
5744     VkStructureType                      sType;
5745     const void*                          pNext;
5746     VkExternalFenceHandleTypeFlagBits    handleType;
5747 } VkPhysicalDeviceExternalFenceInfo;
5748 
5749 typedef struct VkExternalFenceProperties {
5750     VkStructureType                   sType;
5751     void*                             pNext;
5752     VkExternalFenceHandleTypeFlags    exportFromImportedHandleTypes;
5753     VkExternalFenceHandleTypeFlags    compatibleHandleTypes;
5754     VkExternalFenceFeatureFlags       externalFenceFeatures;
5755 } VkExternalFenceProperties;
5756 
5757 typedef struct VkExportFenceCreateInfo {
5758     VkStructureType                   sType;
5759     const void*                       pNext;
5760     VkExternalFenceHandleTypeFlags    handleTypes;
5761 } VkExportFenceCreateInfo;
5762 
5763 typedef struct VkExportSemaphoreCreateInfo {
5764     VkStructureType                       sType;
5765     const void*                           pNext;
5766     VkExternalSemaphoreHandleTypeFlags    handleTypes;
5767 } VkExportSemaphoreCreateInfo;
5768 
5769 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
5770     VkStructureType                          sType;
5771     const void*                              pNext;
5772     VkExternalSemaphoreHandleTypeFlagBits    handleType;
5773 } VkPhysicalDeviceExternalSemaphoreInfo;
5774 
5775 typedef struct VkExternalSemaphoreProperties {
5776     VkStructureType                       sType;
5777     void*                                 pNext;
5778     VkExternalSemaphoreHandleTypeFlags    exportFromImportedHandleTypes;
5779     VkExternalSemaphoreHandleTypeFlags    compatibleHandleTypes;
5780     VkExternalSemaphoreFeatureFlags       externalSemaphoreFeatures;
5781 } VkExternalSemaphoreProperties;
5782 
5783 typedef struct VkPhysicalDeviceMaintenance3Properties {
5784     VkStructureType    sType;
5785     void*              pNext;
5786     uint32_t           maxPerSetDescriptors;
5787     VkDeviceSize       maxMemoryAllocationSize;
5788 } VkPhysicalDeviceMaintenance3Properties;
5789 
5790 typedef struct VkDescriptorSetLayoutSupport {
5791     VkStructureType    sType;
5792     void*              pNext;
5793     VkBool32           supported;
5794 } VkDescriptorSetLayoutSupport;
5795 
5796 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
5797     VkStructureType    sType;
5798     void*              pNext;
5799     VkBool32           shaderDrawParameters;
5800 } VkPhysicalDeviceShaderDrawParametersFeatures;
5801 
5802 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
5803 
5804 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
5805 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
5806 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
5807 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
5808 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
5809 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);
5810 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
5811 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5812 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5813 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
5814 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
5815 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
5816 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
5817 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
5818 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
5819 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
5820 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
5821 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
5822 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
5823 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
5824 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
5825 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
5826 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
5827 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
5828 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
5829 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
5830 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
5831 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
5832 
5833 #ifndef VK_NO_PROTOTYPES
5834 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
5835     uint32_t*                                   pApiVersion);
5836 
5837 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
5838     VkDevice                                    device,
5839     uint32_t                                    bindInfoCount,
5840     const VkBindBufferMemoryInfo*               pBindInfos);
5841 
5842 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
5843     VkDevice                                    device,
5844     uint32_t                                    bindInfoCount,
5845     const VkBindImageMemoryInfo*                pBindInfos);
5846 
5847 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
5848     VkDevice                                    device,
5849     uint32_t                                    heapIndex,
5850     uint32_t                                    localDeviceIndex,
5851     uint32_t                                    remoteDeviceIndex,
5852     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
5853 
5854 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
5855     VkCommandBuffer                             commandBuffer,
5856     uint32_t                                    deviceMask);
5857 
5858 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
5859     VkCommandBuffer                             commandBuffer,
5860     uint32_t                                    baseGroupX,
5861     uint32_t                                    baseGroupY,
5862     uint32_t                                    baseGroupZ,
5863     uint32_t                                    groupCountX,
5864     uint32_t                                    groupCountY,
5865     uint32_t                                    groupCountZ);
5866 
5867 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
5868     VkInstance                                  instance,
5869     uint32_t*                                   pPhysicalDeviceGroupCount,
5870     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
5871 
5872 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
5873     VkDevice                                    device,
5874     const VkImageMemoryRequirementsInfo2*       pInfo,
5875     VkMemoryRequirements2*                      pMemoryRequirements);
5876 
5877 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
5878     VkDevice                                    device,
5879     const VkBufferMemoryRequirementsInfo2*      pInfo,
5880     VkMemoryRequirements2*                      pMemoryRequirements);
5881 
5882 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
5883     VkDevice                                    device,
5884     const VkImageSparseMemoryRequirementsInfo2* pInfo,
5885     uint32_t*                                   pSparseMemoryRequirementCount,
5886     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
5887 
5888 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
5889     VkPhysicalDevice                            physicalDevice,
5890     VkPhysicalDeviceFeatures2*                  pFeatures);
5891 
5892 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
5893     VkPhysicalDevice                            physicalDevice,
5894     VkPhysicalDeviceProperties2*                pProperties);
5895 
5896 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
5897     VkPhysicalDevice                            physicalDevice,
5898     VkFormat                                    format,
5899     VkFormatProperties2*                        pFormatProperties);
5900 
5901 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
5902     VkPhysicalDevice                            physicalDevice,
5903     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
5904     VkImageFormatProperties2*                   pImageFormatProperties);
5905 
5906 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
5907     VkPhysicalDevice                            physicalDevice,
5908     uint32_t*                                   pQueueFamilyPropertyCount,
5909     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
5910 
5911 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
5912     VkPhysicalDevice                            physicalDevice,
5913     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
5914 
5915 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
5916     VkPhysicalDevice                            physicalDevice,
5917     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
5918     uint32_t*                                   pPropertyCount,
5919     VkSparseImageFormatProperties2*             pProperties);
5920 
5921 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
5922     VkDevice                                    device,
5923     VkCommandPool                               commandPool,
5924     VkCommandPoolTrimFlags                      flags);
5925 
5926 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
5927     VkDevice                                    device,
5928     const VkDeviceQueueInfo2*                   pQueueInfo,
5929     VkQueue*                                    pQueue);
5930 
5931 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
5932     VkDevice                                    device,
5933     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
5934     const VkAllocationCallbacks*                pAllocator,
5935     VkSamplerYcbcrConversion*                   pYcbcrConversion);
5936 
5937 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
5938     VkDevice                                    device,
5939     VkSamplerYcbcrConversion                    ycbcrConversion,
5940     const VkAllocationCallbacks*                pAllocator);
5941 
5942 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
5943     VkDevice                                    device,
5944     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
5945     const VkAllocationCallbacks*                pAllocator,
5946     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
5947 
5948 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
5949     VkDevice                                    device,
5950     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
5951     const VkAllocationCallbacks*                pAllocator);
5952 
5953 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
5954     VkDevice                                    device,
5955     VkDescriptorSet                             descriptorSet,
5956     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
5957     const void*                                 pData);
5958 
5959 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
5960     VkPhysicalDevice                            physicalDevice,
5961     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
5962     VkExternalBufferProperties*                 pExternalBufferProperties);
5963 
5964 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
5965     VkPhysicalDevice                            physicalDevice,
5966     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
5967     VkExternalFenceProperties*                  pExternalFenceProperties);
5968 
5969 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
5970     VkPhysicalDevice                            physicalDevice,
5971     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
5972     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
5973 
5974 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
5975     VkDevice                                    device,
5976     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
5977     VkDescriptorSetLayoutSupport*               pSupport);
5978 #endif
5979 
5980 
5981 // VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
5982 #define VK_VERSION_1_2 1
5983 // Vulkan 1.2 version number
5984 #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
5985 
5986 #define VK_MAX_DRIVER_NAME_SIZE           256U
5987 #define VK_MAX_DRIVER_INFO_SIZE           256U
5988 
5989 typedef enum VkDriverId {
5990     VK_DRIVER_ID_AMD_PROPRIETARY = 1,
5991     VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
5992     VK_DRIVER_ID_MESA_RADV = 3,
5993     VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
5994     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
5995     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
5996     VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
5997     VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
5998     VK_DRIVER_ID_ARM_PROPRIETARY = 9,
5999     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
6000     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
6001     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
6002     VK_DRIVER_ID_MESA_LLVMPIPE = 13,
6003     VK_DRIVER_ID_MOLTENVK = 14,
6004     VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
6005     VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
6006     VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
6007     VK_DRIVER_ID_MESA_TURNIP = 18,
6008     VK_DRIVER_ID_MESA_V3DV = 19,
6009     VK_DRIVER_ID_MESA_PANVK = 20,
6010     VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
6011     VK_DRIVER_ID_MESA_VENUS = 22,
6012     VK_DRIVER_ID_MESA_DOZEN = 23,
6013     VK_DRIVER_ID_MESA_NVK = 24,
6014     VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
6015     VK_DRIVER_ID_MESA_HONEYKRISP = 26,
6016     VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN = 27,
6017     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
6018     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
6019     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
6020     VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
6021     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
6022     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
6023     VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
6024     VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
6025     VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
6026     VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
6027     VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
6028     VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
6029     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
6030 } VkDriverId;
6031 
6032 typedef enum VkShaderFloatControlsIndependence {
6033     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
6034     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
6035     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
6036     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
6037     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
6038     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
6039     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
6040 } VkShaderFloatControlsIndependence;
6041 
6042 typedef enum VkSamplerReductionMode {
6043     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
6044     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
6045     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
6046     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
6047     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
6048     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
6049     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
6050     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
6051 } VkSamplerReductionMode;
6052 
6053 typedef enum VkSemaphoreType {
6054     VK_SEMAPHORE_TYPE_BINARY = 0,
6055     VK_SEMAPHORE_TYPE_TIMELINE = 1,
6056     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
6057     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
6058     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
6059 } VkSemaphoreType;
6060 
6061 typedef enum VkResolveModeFlagBits {
6062     VK_RESOLVE_MODE_NONE = 0,
6063     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
6064     VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
6065     VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
6066     VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
6067     VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 0x00000010,
6068     VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
6069     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
6070     VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
6071     VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
6072     VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
6073     VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6074 } VkResolveModeFlagBits;
6075 typedef VkFlags VkResolveModeFlags;
6076 
6077 typedef enum VkDescriptorBindingFlagBits {
6078     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
6079     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
6080     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
6081     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
6082     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
6083     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
6084     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
6085     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
6086     VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6087 } VkDescriptorBindingFlagBits;
6088 typedef VkFlags VkDescriptorBindingFlags;
6089 
6090 typedef enum VkSemaphoreWaitFlagBits {
6091     VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
6092     VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
6093     VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6094 } VkSemaphoreWaitFlagBits;
6095 typedef VkFlags VkSemaphoreWaitFlags;
6096 typedef struct VkPhysicalDeviceVulkan11Features {
6097     VkStructureType    sType;
6098     void*              pNext;
6099     VkBool32           storageBuffer16BitAccess;
6100     VkBool32           uniformAndStorageBuffer16BitAccess;
6101     VkBool32           storagePushConstant16;
6102     VkBool32           storageInputOutput16;
6103     VkBool32           multiview;
6104     VkBool32           multiviewGeometryShader;
6105     VkBool32           multiviewTessellationShader;
6106     VkBool32           variablePointersStorageBuffer;
6107     VkBool32           variablePointers;
6108     VkBool32           protectedMemory;
6109     VkBool32           samplerYcbcrConversion;
6110     VkBool32           shaderDrawParameters;
6111 } VkPhysicalDeviceVulkan11Features;
6112 
6113 typedef struct VkPhysicalDeviceVulkan11Properties {
6114     VkStructureType            sType;
6115     void*                      pNext;
6116     uint8_t                    deviceUUID[VK_UUID_SIZE];
6117     uint8_t                    driverUUID[VK_UUID_SIZE];
6118     uint8_t                    deviceLUID[VK_LUID_SIZE];
6119     uint32_t                   deviceNodeMask;
6120     VkBool32                   deviceLUIDValid;
6121     uint32_t                   subgroupSize;
6122     VkShaderStageFlags         subgroupSupportedStages;
6123     VkSubgroupFeatureFlags     subgroupSupportedOperations;
6124     VkBool32                   subgroupQuadOperationsInAllStages;
6125     VkPointClippingBehavior    pointClippingBehavior;
6126     uint32_t                   maxMultiviewViewCount;
6127     uint32_t                   maxMultiviewInstanceIndex;
6128     VkBool32                   protectedNoFault;
6129     uint32_t                   maxPerSetDescriptors;
6130     VkDeviceSize               maxMemoryAllocationSize;
6131 } VkPhysicalDeviceVulkan11Properties;
6132 
6133 typedef struct VkPhysicalDeviceVulkan12Features {
6134     VkStructureType    sType;
6135     void*              pNext;
6136     VkBool32           samplerMirrorClampToEdge;
6137     VkBool32           drawIndirectCount;
6138     VkBool32           storageBuffer8BitAccess;
6139     VkBool32           uniformAndStorageBuffer8BitAccess;
6140     VkBool32           storagePushConstant8;
6141     VkBool32           shaderBufferInt64Atomics;
6142     VkBool32           shaderSharedInt64Atomics;
6143     VkBool32           shaderFloat16;
6144     VkBool32           shaderInt8;
6145     VkBool32           descriptorIndexing;
6146     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
6147     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
6148     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
6149     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
6150     VkBool32           shaderSampledImageArrayNonUniformIndexing;
6151     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
6152     VkBool32           shaderStorageImageArrayNonUniformIndexing;
6153     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
6154     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
6155     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
6156     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
6157     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
6158     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
6159     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
6160     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
6161     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
6162     VkBool32           descriptorBindingUpdateUnusedWhilePending;
6163     VkBool32           descriptorBindingPartiallyBound;
6164     VkBool32           descriptorBindingVariableDescriptorCount;
6165     VkBool32           runtimeDescriptorArray;
6166     VkBool32           samplerFilterMinmax;
6167     VkBool32           scalarBlockLayout;
6168     VkBool32           imagelessFramebuffer;
6169     VkBool32           uniformBufferStandardLayout;
6170     VkBool32           shaderSubgroupExtendedTypes;
6171     VkBool32           separateDepthStencilLayouts;
6172     VkBool32           hostQueryReset;
6173     VkBool32           timelineSemaphore;
6174     VkBool32           bufferDeviceAddress;
6175     VkBool32           bufferDeviceAddressCaptureReplay;
6176     VkBool32           bufferDeviceAddressMultiDevice;
6177     VkBool32           vulkanMemoryModel;
6178     VkBool32           vulkanMemoryModelDeviceScope;
6179     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
6180     VkBool32           shaderOutputViewportIndex;
6181     VkBool32           shaderOutputLayer;
6182     VkBool32           subgroupBroadcastDynamicId;
6183 } VkPhysicalDeviceVulkan12Features;
6184 
6185 typedef struct VkConformanceVersion {
6186     uint8_t    major;
6187     uint8_t    minor;
6188     uint8_t    subminor;
6189     uint8_t    patch;
6190 } VkConformanceVersion;
6191 
6192 typedef struct VkPhysicalDeviceVulkan12Properties {
6193     VkStructureType                      sType;
6194     void*                                pNext;
6195     VkDriverId                           driverID;
6196     char                                 driverName[VK_MAX_DRIVER_NAME_SIZE];
6197     char                                 driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6198     VkConformanceVersion                 conformanceVersion;
6199     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
6200     VkShaderFloatControlsIndependence    roundingModeIndependence;
6201     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
6202     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
6203     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
6204     VkBool32                             shaderDenormPreserveFloat16;
6205     VkBool32                             shaderDenormPreserveFloat32;
6206     VkBool32                             shaderDenormPreserveFloat64;
6207     VkBool32                             shaderDenormFlushToZeroFloat16;
6208     VkBool32                             shaderDenormFlushToZeroFloat32;
6209     VkBool32                             shaderDenormFlushToZeroFloat64;
6210     VkBool32                             shaderRoundingModeRTEFloat16;
6211     VkBool32                             shaderRoundingModeRTEFloat32;
6212     VkBool32                             shaderRoundingModeRTEFloat64;
6213     VkBool32                             shaderRoundingModeRTZFloat16;
6214     VkBool32                             shaderRoundingModeRTZFloat32;
6215     VkBool32                             shaderRoundingModeRTZFloat64;
6216     uint32_t                             maxUpdateAfterBindDescriptorsInAllPools;
6217     VkBool32                             shaderUniformBufferArrayNonUniformIndexingNative;
6218     VkBool32                             shaderSampledImageArrayNonUniformIndexingNative;
6219     VkBool32                             shaderStorageBufferArrayNonUniformIndexingNative;
6220     VkBool32                             shaderStorageImageArrayNonUniformIndexingNative;
6221     VkBool32                             shaderInputAttachmentArrayNonUniformIndexingNative;
6222     VkBool32                             robustBufferAccessUpdateAfterBind;
6223     VkBool32                             quadDivergentImplicitLod;
6224     uint32_t                             maxPerStageDescriptorUpdateAfterBindSamplers;
6225     uint32_t                             maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6226     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6227     uint32_t                             maxPerStageDescriptorUpdateAfterBindSampledImages;
6228     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageImages;
6229     uint32_t                             maxPerStageDescriptorUpdateAfterBindInputAttachments;
6230     uint32_t                             maxPerStageUpdateAfterBindResources;
6231     uint32_t                             maxDescriptorSetUpdateAfterBindSamplers;
6232     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffers;
6233     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6234     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffers;
6235     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6236     uint32_t                             maxDescriptorSetUpdateAfterBindSampledImages;
6237     uint32_t                             maxDescriptorSetUpdateAfterBindStorageImages;
6238     uint32_t                             maxDescriptorSetUpdateAfterBindInputAttachments;
6239     VkResolveModeFlags                   supportedDepthResolveModes;
6240     VkResolveModeFlags                   supportedStencilResolveModes;
6241     VkBool32                             independentResolveNone;
6242     VkBool32                             independentResolve;
6243     VkBool32                             filterMinmaxSingleComponentFormats;
6244     VkBool32                             filterMinmaxImageComponentMapping;
6245     uint64_t                             maxTimelineSemaphoreValueDifference;
6246     VkSampleCountFlags                   framebufferIntegerColorSampleCounts;
6247 } VkPhysicalDeviceVulkan12Properties;
6248 
6249 typedef struct VkImageFormatListCreateInfo {
6250     VkStructureType    sType;
6251     const void*        pNext;
6252     uint32_t           viewFormatCount;
6253     const VkFormat*    pViewFormats;
6254 } VkImageFormatListCreateInfo;
6255 
6256 typedef struct VkAttachmentDescription2 {
6257     VkStructureType                 sType;
6258     const void*                     pNext;
6259     VkAttachmentDescriptionFlags    flags;
6260     VkFormat                        format;
6261     VkSampleCountFlagBits           samples;
6262     VkAttachmentLoadOp              loadOp;
6263     VkAttachmentStoreOp             storeOp;
6264     VkAttachmentLoadOp              stencilLoadOp;
6265     VkAttachmentStoreOp             stencilStoreOp;
6266     VkImageLayout                   initialLayout;
6267     VkImageLayout                   finalLayout;
6268 } VkAttachmentDescription2;
6269 
6270 typedef struct VkAttachmentReference2 {
6271     VkStructureType       sType;
6272     const void*           pNext;
6273     uint32_t              attachment;
6274     VkImageLayout         layout;
6275     VkImageAspectFlags    aspectMask;
6276 } VkAttachmentReference2;
6277 
6278 typedef struct VkSubpassDescription2 {
6279     VkStructureType                  sType;
6280     const void*                      pNext;
6281     VkSubpassDescriptionFlags        flags;
6282     VkPipelineBindPoint              pipelineBindPoint;
6283     uint32_t                         viewMask;
6284     uint32_t                         inputAttachmentCount;
6285     const VkAttachmentReference2*    pInputAttachments;
6286     uint32_t                         colorAttachmentCount;
6287     const VkAttachmentReference2*    pColorAttachments;
6288     const VkAttachmentReference2*    pResolveAttachments;
6289     const VkAttachmentReference2*    pDepthStencilAttachment;
6290     uint32_t                         preserveAttachmentCount;
6291     const uint32_t*                  pPreserveAttachments;
6292 } VkSubpassDescription2;
6293 
6294 typedef struct VkSubpassDependency2 {
6295     VkStructureType         sType;
6296     const void*             pNext;
6297     uint32_t                srcSubpass;
6298     uint32_t                dstSubpass;
6299     VkPipelineStageFlags    srcStageMask;
6300     VkPipelineStageFlags    dstStageMask;
6301     VkAccessFlags           srcAccessMask;
6302     VkAccessFlags           dstAccessMask;
6303     VkDependencyFlags       dependencyFlags;
6304     int32_t                 viewOffset;
6305 } VkSubpassDependency2;
6306 
6307 typedef struct VkRenderPassCreateInfo2 {
6308     VkStructureType                    sType;
6309     const void*                        pNext;
6310     VkRenderPassCreateFlags            flags;
6311     uint32_t                           attachmentCount;
6312     const VkAttachmentDescription2*    pAttachments;
6313     uint32_t                           subpassCount;
6314     const VkSubpassDescription2*       pSubpasses;
6315     uint32_t                           dependencyCount;
6316     const VkSubpassDependency2*        pDependencies;
6317     uint32_t                           correlatedViewMaskCount;
6318     const uint32_t*                    pCorrelatedViewMasks;
6319 } VkRenderPassCreateInfo2;
6320 
6321 typedef struct VkSubpassBeginInfo {
6322     VkStructureType      sType;
6323     const void*          pNext;
6324     VkSubpassContents    contents;
6325 } VkSubpassBeginInfo;
6326 
6327 typedef struct VkSubpassEndInfo {
6328     VkStructureType    sType;
6329     const void*        pNext;
6330 } VkSubpassEndInfo;
6331 
6332 typedef struct VkPhysicalDevice8BitStorageFeatures {
6333     VkStructureType    sType;
6334     void*              pNext;
6335     VkBool32           storageBuffer8BitAccess;
6336     VkBool32           uniformAndStorageBuffer8BitAccess;
6337     VkBool32           storagePushConstant8;
6338 } VkPhysicalDevice8BitStorageFeatures;
6339 
6340 typedef struct VkPhysicalDeviceDriverProperties {
6341     VkStructureType         sType;
6342     void*                   pNext;
6343     VkDriverId              driverID;
6344     char                    driverName[VK_MAX_DRIVER_NAME_SIZE];
6345     char                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6346     VkConformanceVersion    conformanceVersion;
6347 } VkPhysicalDeviceDriverProperties;
6348 
6349 typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6350     VkStructureType    sType;
6351     void*              pNext;
6352     VkBool32           shaderBufferInt64Atomics;
6353     VkBool32           shaderSharedInt64Atomics;
6354 } VkPhysicalDeviceShaderAtomicInt64Features;
6355 
6356 typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6357     VkStructureType    sType;
6358     void*              pNext;
6359     VkBool32           shaderFloat16;
6360     VkBool32           shaderInt8;
6361 } VkPhysicalDeviceShaderFloat16Int8Features;
6362 
6363 typedef struct VkPhysicalDeviceFloatControlsProperties {
6364     VkStructureType                      sType;
6365     void*                                pNext;
6366     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
6367     VkShaderFloatControlsIndependence    roundingModeIndependence;
6368     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
6369     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
6370     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
6371     VkBool32                             shaderDenormPreserveFloat16;
6372     VkBool32                             shaderDenormPreserveFloat32;
6373     VkBool32                             shaderDenormPreserveFloat64;
6374     VkBool32                             shaderDenormFlushToZeroFloat16;
6375     VkBool32                             shaderDenormFlushToZeroFloat32;
6376     VkBool32                             shaderDenormFlushToZeroFloat64;
6377     VkBool32                             shaderRoundingModeRTEFloat16;
6378     VkBool32                             shaderRoundingModeRTEFloat32;
6379     VkBool32                             shaderRoundingModeRTEFloat64;
6380     VkBool32                             shaderRoundingModeRTZFloat16;
6381     VkBool32                             shaderRoundingModeRTZFloat32;
6382     VkBool32                             shaderRoundingModeRTZFloat64;
6383 } VkPhysicalDeviceFloatControlsProperties;
6384 
6385 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6386     VkStructureType                    sType;
6387     const void*                        pNext;
6388     uint32_t                           bindingCount;
6389     const VkDescriptorBindingFlags*    pBindingFlags;
6390 } VkDescriptorSetLayoutBindingFlagsCreateInfo;
6391 
6392 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6393     VkStructureType    sType;
6394     void*              pNext;
6395     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
6396     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
6397     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
6398     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
6399     VkBool32           shaderSampledImageArrayNonUniformIndexing;
6400     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
6401     VkBool32           shaderStorageImageArrayNonUniformIndexing;
6402     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
6403     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
6404     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
6405     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
6406     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
6407     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
6408     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
6409     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
6410     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
6411     VkBool32           descriptorBindingUpdateUnusedWhilePending;
6412     VkBool32           descriptorBindingPartiallyBound;
6413     VkBool32           descriptorBindingVariableDescriptorCount;
6414     VkBool32           runtimeDescriptorArray;
6415 } VkPhysicalDeviceDescriptorIndexingFeatures;
6416 
6417 typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6418     VkStructureType    sType;
6419     void*              pNext;
6420     uint32_t           maxUpdateAfterBindDescriptorsInAllPools;
6421     VkBool32           shaderUniformBufferArrayNonUniformIndexingNative;
6422     VkBool32           shaderSampledImageArrayNonUniformIndexingNative;
6423     VkBool32           shaderStorageBufferArrayNonUniformIndexingNative;
6424     VkBool32           shaderStorageImageArrayNonUniformIndexingNative;
6425     VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative;
6426     VkBool32           robustBufferAccessUpdateAfterBind;
6427     VkBool32           quadDivergentImplicitLod;
6428     uint32_t           maxPerStageDescriptorUpdateAfterBindSamplers;
6429     uint32_t           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6430     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6431     uint32_t           maxPerStageDescriptorUpdateAfterBindSampledImages;
6432     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageImages;
6433     uint32_t           maxPerStageDescriptorUpdateAfterBindInputAttachments;
6434     uint32_t           maxPerStageUpdateAfterBindResources;
6435     uint32_t           maxDescriptorSetUpdateAfterBindSamplers;
6436     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffers;
6437     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6438     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffers;
6439     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6440     uint32_t           maxDescriptorSetUpdateAfterBindSampledImages;
6441     uint32_t           maxDescriptorSetUpdateAfterBindStorageImages;
6442     uint32_t           maxDescriptorSetUpdateAfterBindInputAttachments;
6443 } VkPhysicalDeviceDescriptorIndexingProperties;
6444 
6445 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6446     VkStructureType    sType;
6447     const void*        pNext;
6448     uint32_t           descriptorSetCount;
6449     const uint32_t*    pDescriptorCounts;
6450 } VkDescriptorSetVariableDescriptorCountAllocateInfo;
6451 
6452 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6453     VkStructureType    sType;
6454     void*              pNext;
6455     uint32_t           maxVariableDescriptorCount;
6456 } VkDescriptorSetVariableDescriptorCountLayoutSupport;
6457 
6458 typedef struct VkSubpassDescriptionDepthStencilResolve {
6459     VkStructureType                  sType;
6460     const void*                      pNext;
6461     VkResolveModeFlagBits            depthResolveMode;
6462     VkResolveModeFlagBits            stencilResolveMode;
6463     const VkAttachmentReference2*    pDepthStencilResolveAttachment;
6464 } VkSubpassDescriptionDepthStencilResolve;
6465 
6466 typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6467     VkStructureType       sType;
6468     void*                 pNext;
6469     VkResolveModeFlags    supportedDepthResolveModes;
6470     VkResolveModeFlags    supportedStencilResolveModes;
6471     VkBool32              independentResolveNone;
6472     VkBool32              independentResolve;
6473 } VkPhysicalDeviceDepthStencilResolveProperties;
6474 
6475 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
6476     VkStructureType    sType;
6477     void*              pNext;
6478     VkBool32           scalarBlockLayout;
6479 } VkPhysicalDeviceScalarBlockLayoutFeatures;
6480 
6481 typedef struct VkImageStencilUsageCreateInfo {
6482     VkStructureType      sType;
6483     const void*          pNext;
6484     VkImageUsageFlags    stencilUsage;
6485 } VkImageStencilUsageCreateInfo;
6486 
6487 typedef struct VkSamplerReductionModeCreateInfo {
6488     VkStructureType           sType;
6489     const void*               pNext;
6490     VkSamplerReductionMode    reductionMode;
6491 } VkSamplerReductionModeCreateInfo;
6492 
6493 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
6494     VkStructureType    sType;
6495     void*              pNext;
6496     VkBool32           filterMinmaxSingleComponentFormats;
6497     VkBool32           filterMinmaxImageComponentMapping;
6498 } VkPhysicalDeviceSamplerFilterMinmaxProperties;
6499 
6500 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
6501     VkStructureType    sType;
6502     void*              pNext;
6503     VkBool32           vulkanMemoryModel;
6504     VkBool32           vulkanMemoryModelDeviceScope;
6505     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
6506 } VkPhysicalDeviceVulkanMemoryModelFeatures;
6507 
6508 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
6509     VkStructureType    sType;
6510     void*              pNext;
6511     VkBool32           imagelessFramebuffer;
6512 } VkPhysicalDeviceImagelessFramebufferFeatures;
6513 
6514 typedef struct VkFramebufferAttachmentImageInfo {
6515     VkStructureType       sType;
6516     const void*           pNext;
6517     VkImageCreateFlags    flags;
6518     VkImageUsageFlags     usage;
6519     uint32_t              width;
6520     uint32_t              height;
6521     uint32_t              layerCount;
6522     uint32_t              viewFormatCount;
6523     const VkFormat*       pViewFormats;
6524 } VkFramebufferAttachmentImageInfo;
6525 
6526 typedef struct VkFramebufferAttachmentsCreateInfo {
6527     VkStructureType                            sType;
6528     const void*                                pNext;
6529     uint32_t                                   attachmentImageInfoCount;
6530     const VkFramebufferAttachmentImageInfo*    pAttachmentImageInfos;
6531 } VkFramebufferAttachmentsCreateInfo;
6532 
6533 typedef struct VkRenderPassAttachmentBeginInfo {
6534     VkStructureType       sType;
6535     const void*           pNext;
6536     uint32_t              attachmentCount;
6537     const VkImageView*    pAttachments;
6538 } VkRenderPassAttachmentBeginInfo;
6539 
6540 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
6541     VkStructureType    sType;
6542     void*              pNext;
6543     VkBool32           uniformBufferStandardLayout;
6544 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
6545 
6546 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6547     VkStructureType    sType;
6548     void*              pNext;
6549     VkBool32           shaderSubgroupExtendedTypes;
6550 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6551 
6552 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
6553     VkStructureType    sType;
6554     void*              pNext;
6555     VkBool32           separateDepthStencilLayouts;
6556 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
6557 
6558 typedef struct VkAttachmentReferenceStencilLayout {
6559     VkStructureType    sType;
6560     void*              pNext;
6561     VkImageLayout      stencilLayout;
6562 } VkAttachmentReferenceStencilLayout;
6563 
6564 typedef struct VkAttachmentDescriptionStencilLayout {
6565     VkStructureType    sType;
6566     void*              pNext;
6567     VkImageLayout      stencilInitialLayout;
6568     VkImageLayout      stencilFinalLayout;
6569 } VkAttachmentDescriptionStencilLayout;
6570 
6571 typedef struct VkPhysicalDeviceHostQueryResetFeatures {
6572     VkStructureType    sType;
6573     void*              pNext;
6574     VkBool32           hostQueryReset;
6575 } VkPhysicalDeviceHostQueryResetFeatures;
6576 
6577 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
6578     VkStructureType    sType;
6579     void*              pNext;
6580     VkBool32           timelineSemaphore;
6581 } VkPhysicalDeviceTimelineSemaphoreFeatures;
6582 
6583 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
6584     VkStructureType    sType;
6585     void*              pNext;
6586     uint64_t           maxTimelineSemaphoreValueDifference;
6587 } VkPhysicalDeviceTimelineSemaphoreProperties;
6588 
6589 typedef struct VkSemaphoreTypeCreateInfo {
6590     VkStructureType    sType;
6591     const void*        pNext;
6592     VkSemaphoreType    semaphoreType;
6593     uint64_t           initialValue;
6594 } VkSemaphoreTypeCreateInfo;
6595 
6596 typedef struct VkTimelineSemaphoreSubmitInfo {
6597     VkStructureType    sType;
6598     const void*        pNext;
6599     uint32_t           waitSemaphoreValueCount;
6600     const uint64_t*    pWaitSemaphoreValues;
6601     uint32_t           signalSemaphoreValueCount;
6602     const uint64_t*    pSignalSemaphoreValues;
6603 } VkTimelineSemaphoreSubmitInfo;
6604 
6605 typedef struct VkSemaphoreWaitInfo {
6606     VkStructureType         sType;
6607     const void*             pNext;
6608     VkSemaphoreWaitFlags    flags;
6609     uint32_t                semaphoreCount;
6610     const VkSemaphore*      pSemaphores;
6611     const uint64_t*         pValues;
6612 } VkSemaphoreWaitInfo;
6613 
6614 typedef struct VkSemaphoreSignalInfo {
6615     VkStructureType    sType;
6616     const void*        pNext;
6617     VkSemaphore        semaphore;
6618     uint64_t           value;
6619 } VkSemaphoreSignalInfo;
6620 
6621 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
6622     VkStructureType    sType;
6623     void*              pNext;
6624     VkBool32           bufferDeviceAddress;
6625     VkBool32           bufferDeviceAddressCaptureReplay;
6626     VkBool32           bufferDeviceAddressMultiDevice;
6627 } VkPhysicalDeviceBufferDeviceAddressFeatures;
6628 
6629 typedef struct VkBufferDeviceAddressInfo {
6630     VkStructureType    sType;
6631     const void*        pNext;
6632     VkBuffer           buffer;
6633 } VkBufferDeviceAddressInfo;
6634 
6635 typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
6636     VkStructureType    sType;
6637     const void*        pNext;
6638     uint64_t           opaqueCaptureAddress;
6639 } VkBufferOpaqueCaptureAddressCreateInfo;
6640 
6641 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
6642     VkStructureType    sType;
6643     const void*        pNext;
6644     uint64_t           opaqueCaptureAddress;
6645 } VkMemoryOpaqueCaptureAddressAllocateInfo;
6646 
6647 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
6648     VkStructureType    sType;
6649     const void*        pNext;
6650     VkDeviceMemory     memory;
6651 } VkDeviceMemoryOpaqueCaptureAddressInfo;
6652 
6653 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6654 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6655 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6656 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
6657 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
6658 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
6659 typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
6660 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
6661 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
6662 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
6663 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6664 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6665 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6666 
6667 #ifndef VK_NO_PROTOTYPES
6668 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
6669     VkCommandBuffer                             commandBuffer,
6670     VkBuffer                                    buffer,
6671     VkDeviceSize                                offset,
6672     VkBuffer                                    countBuffer,
6673     VkDeviceSize                                countBufferOffset,
6674     uint32_t                                    maxDrawCount,
6675     uint32_t                                    stride);
6676 
6677 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
6678     VkCommandBuffer                             commandBuffer,
6679     VkBuffer                                    buffer,
6680     VkDeviceSize                                offset,
6681     VkBuffer                                    countBuffer,
6682     VkDeviceSize                                countBufferOffset,
6683     uint32_t                                    maxDrawCount,
6684     uint32_t                                    stride);
6685 
6686 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
6687     VkDevice                                    device,
6688     const VkRenderPassCreateInfo2*              pCreateInfo,
6689     const VkAllocationCallbacks*                pAllocator,
6690     VkRenderPass*                               pRenderPass);
6691 
6692 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
6693     VkCommandBuffer                             commandBuffer,
6694     const VkRenderPassBeginInfo*                pRenderPassBegin,
6695     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
6696 
6697 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
6698     VkCommandBuffer                             commandBuffer,
6699     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
6700     const VkSubpassEndInfo*                     pSubpassEndInfo);
6701 
6702 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
6703     VkCommandBuffer                             commandBuffer,
6704     const VkSubpassEndInfo*                     pSubpassEndInfo);
6705 
6706 VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
6707     VkDevice                                    device,
6708     VkQueryPool                                 queryPool,
6709     uint32_t                                    firstQuery,
6710     uint32_t                                    queryCount);
6711 
6712 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
6713     VkDevice                                    device,
6714     VkSemaphore                                 semaphore,
6715     uint64_t*                                   pValue);
6716 
6717 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
6718     VkDevice                                    device,
6719     const VkSemaphoreWaitInfo*                  pWaitInfo,
6720     uint64_t                                    timeout);
6721 
6722 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
6723     VkDevice                                    device,
6724     const VkSemaphoreSignalInfo*                pSignalInfo);
6725 
6726 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
6727     VkDevice                                    device,
6728     const VkBufferDeviceAddressInfo*            pInfo);
6729 
6730 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
6731     VkDevice                                    device,
6732     const VkBufferDeviceAddressInfo*            pInfo);
6733 
6734 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
6735     VkDevice                                    device,
6736     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6737 #endif
6738 
6739 
6740 // VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
6741 #define VK_VERSION_1_3 1
6742 // Vulkan 1.3 version number
6743 #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
6744 
6745 typedef uint64_t VkFlags64;
6746 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
6747 
6748 typedef enum VkPipelineCreationFeedbackFlagBits {
6749     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
6750     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
6751     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
6752     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
6753     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
6754     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
6755     VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6756 } VkPipelineCreationFeedbackFlagBits;
6757 typedef VkFlags VkPipelineCreationFeedbackFlags;
6758 
6759 typedef enum VkToolPurposeFlagBits {
6760     VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
6761     VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
6762     VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
6763     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
6764     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
6765     VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
6766     VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
6767     VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
6768     VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
6769     VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
6770     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
6771     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
6772     VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6773 } VkToolPurposeFlagBits;
6774 typedef VkFlags VkToolPurposeFlags;
6775 typedef VkFlags VkPrivateDataSlotCreateFlags;
6776 typedef VkFlags64 VkPipelineStageFlags2;
6777 
6778 // Flag bits for VkPipelineStageFlagBits2
6779 typedef VkFlags64 VkPipelineStageFlagBits2;
6780 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
6781 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
6782 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
6783 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
6784 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
6785 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
6786 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
6787 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
6788 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
6789 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
6790 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
6791 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
6792 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
6793 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
6794 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
6795 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
6796 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
6797 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
6798 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
6799 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
6800 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
6801 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
6802 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
6803 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
6804 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
6805 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
6806 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
6807 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
6808 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
6809 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
6810 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
6811 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
6812 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
6813 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
6814 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
6815 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
6816 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
6817 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
6818 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
6819 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
6820 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
6821 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
6822 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
6823 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
6824 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
6825 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
6826 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
6827 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
6828 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
6829 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
6830 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
6831 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
6832 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
6833 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
6834 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
6835 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
6836 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
6837 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT = 0x00020000ULL;
6838 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
6839 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
6840 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
6841 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
6842 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
6843 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
6844 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
6845 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
6846 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
6847 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
6848 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
6849 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
6850 // VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI is a deprecated alias
6851 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
6852 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
6853 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
6854 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
6855 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
6856 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
6857 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV = 0x100000000000ULL;
6858 
6859 typedef VkFlags64 VkAccessFlags2;
6860 
6861 // Flag bits for VkAccessFlagBits2
6862 typedef VkFlags64 VkAccessFlagBits2;
6863 static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
6864 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
6865 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
6866 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
6867 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
6868 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
6869 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
6870 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
6871 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
6872 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
6873 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
6874 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
6875 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
6876 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
6877 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
6878 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
6879 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
6880 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
6881 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
6882 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
6883 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
6884 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
6885 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
6886 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
6887 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
6888 static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
6889 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
6890 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
6891 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
6892 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
6893 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
6894 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
6895 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
6896 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
6897 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
6898 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
6899 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
6900 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
6901 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
6902 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
6903 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
6904 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
6905 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
6906 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
6907 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
6908 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
6909 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
6910 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
6911 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
6912 static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
6913 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
6914 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
6915 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000ULL;
6916 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000ULL;
6917 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
6918 static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
6919 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
6920 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
6921 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
6922 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
6923 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
6924 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
6925 static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
6926 static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
6927 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
6928 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
6929 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
6930 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
6931 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
6932 
6933 
6934 typedef enum VkSubmitFlagBits {
6935     VK_SUBMIT_PROTECTED_BIT = 0x00000001,
6936     VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
6937     VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6938 } VkSubmitFlagBits;
6939 typedef VkFlags VkSubmitFlags;
6940 
6941 typedef enum VkRenderingFlagBits {
6942     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
6943     VK_RENDERING_SUSPENDING_BIT = 0x00000002,
6944     VK_RENDERING_RESUMING_BIT = 0x00000004,
6945     VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
6946     VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010,
6947     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
6948     VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
6949     VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
6950     VK_RENDERING_CONTENTS_INLINE_BIT_EXT = VK_RENDERING_CONTENTS_INLINE_BIT_KHR,
6951     VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6952 } VkRenderingFlagBits;
6953 typedef VkFlags VkRenderingFlags;
6954 typedef VkFlags64 VkFormatFeatureFlags2;
6955 
6956 // Flag bits for VkFormatFeatureFlagBits2
6957 typedef VkFlags64 VkFormatFeatureFlagBits2;
6958 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
6959 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
6960 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
6961 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
6962 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
6963 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
6964 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
6965 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
6966 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
6967 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
6968 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
6969 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
6970 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
6971 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
6972 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
6973 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
6974 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
6975 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
6976 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
6977 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
6978 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
6979 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
6980 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
6981 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
6982 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
6983 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
6984 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
6985 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT = 0x400000000000ULL;
6986 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
6987 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
6988 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
6989 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
6990 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
6991 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
6992 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
6993 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
6994 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
6995 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
6996 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
6997 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
6998 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
6999 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
7000 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
7001 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
7002 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
7003 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
7004 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
7005 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
7006 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
7007 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
7008 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
7009 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
7010 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
7011 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
7012 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
7013 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
7014 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
7015 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
7016 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
7017 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
7018 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
7019 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
7020 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
7021 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV = 0x8000000000000ULL;
7022 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
7023 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
7024 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
7025 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
7026 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
7027 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
7028 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
7029 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
7030 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000000000ULL;
7031 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000000000ULL;
7032 
7033 typedef struct VkPhysicalDeviceVulkan13Features {
7034     VkStructureType    sType;
7035     void*              pNext;
7036     VkBool32           robustImageAccess;
7037     VkBool32           inlineUniformBlock;
7038     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
7039     VkBool32           pipelineCreationCacheControl;
7040     VkBool32           privateData;
7041     VkBool32           shaderDemoteToHelperInvocation;
7042     VkBool32           shaderTerminateInvocation;
7043     VkBool32           subgroupSizeControl;
7044     VkBool32           computeFullSubgroups;
7045     VkBool32           synchronization2;
7046     VkBool32           textureCompressionASTC_HDR;
7047     VkBool32           shaderZeroInitializeWorkgroupMemory;
7048     VkBool32           dynamicRendering;
7049     VkBool32           shaderIntegerDotProduct;
7050     VkBool32           maintenance4;
7051 } VkPhysicalDeviceVulkan13Features;
7052 
7053 typedef struct VkPhysicalDeviceVulkan13Properties {
7054     VkStructureType       sType;
7055     void*                 pNext;
7056     uint32_t              minSubgroupSize;
7057     uint32_t              maxSubgroupSize;
7058     uint32_t              maxComputeWorkgroupSubgroups;
7059     VkShaderStageFlags    requiredSubgroupSizeStages;
7060     uint32_t              maxInlineUniformBlockSize;
7061     uint32_t              maxPerStageDescriptorInlineUniformBlocks;
7062     uint32_t              maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7063     uint32_t              maxDescriptorSetInlineUniformBlocks;
7064     uint32_t              maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7065     uint32_t              maxInlineUniformTotalSize;
7066     VkBool32              integerDotProduct8BitUnsignedAccelerated;
7067     VkBool32              integerDotProduct8BitSignedAccelerated;
7068     VkBool32              integerDotProduct8BitMixedSignednessAccelerated;
7069     VkBool32              integerDotProduct4x8BitPackedUnsignedAccelerated;
7070     VkBool32              integerDotProduct4x8BitPackedSignedAccelerated;
7071     VkBool32              integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7072     VkBool32              integerDotProduct16BitUnsignedAccelerated;
7073     VkBool32              integerDotProduct16BitSignedAccelerated;
7074     VkBool32              integerDotProduct16BitMixedSignednessAccelerated;
7075     VkBool32              integerDotProduct32BitUnsignedAccelerated;
7076     VkBool32              integerDotProduct32BitSignedAccelerated;
7077     VkBool32              integerDotProduct32BitMixedSignednessAccelerated;
7078     VkBool32              integerDotProduct64BitUnsignedAccelerated;
7079     VkBool32              integerDotProduct64BitSignedAccelerated;
7080     VkBool32              integerDotProduct64BitMixedSignednessAccelerated;
7081     VkBool32              integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7082     VkBool32              integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7083     VkBool32              integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7084     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7085     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7086     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7087     VkBool32              integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7088     VkBool32              integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7089     VkBool32              integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7090     VkBool32              integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7091     VkBool32              integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7092     VkBool32              integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7093     VkBool32              integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7094     VkBool32              integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7095     VkBool32              integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7096     VkDeviceSize          storageTexelBufferOffsetAlignmentBytes;
7097     VkBool32              storageTexelBufferOffsetSingleTexelAlignment;
7098     VkDeviceSize          uniformTexelBufferOffsetAlignmentBytes;
7099     VkBool32              uniformTexelBufferOffsetSingleTexelAlignment;
7100     VkDeviceSize          maxBufferSize;
7101 } VkPhysicalDeviceVulkan13Properties;
7102 
7103 typedef struct VkPipelineCreationFeedback {
7104     VkPipelineCreationFeedbackFlags    flags;
7105     uint64_t                           duration;
7106 } VkPipelineCreationFeedback;
7107 
7108 typedef struct VkPipelineCreationFeedbackCreateInfo {
7109     VkStructureType                sType;
7110     const void*                    pNext;
7111     VkPipelineCreationFeedback*    pPipelineCreationFeedback;
7112     uint32_t                       pipelineStageCreationFeedbackCount;
7113     VkPipelineCreationFeedback*    pPipelineStageCreationFeedbacks;
7114 } VkPipelineCreationFeedbackCreateInfo;
7115 
7116 typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
7117     VkStructureType    sType;
7118     void*              pNext;
7119     VkBool32           shaderTerminateInvocation;
7120 } VkPhysicalDeviceShaderTerminateInvocationFeatures;
7121 
7122 typedef struct VkPhysicalDeviceToolProperties {
7123     VkStructureType       sType;
7124     void*                 pNext;
7125     char                  name[VK_MAX_EXTENSION_NAME_SIZE];
7126     char                  version[VK_MAX_EXTENSION_NAME_SIZE];
7127     VkToolPurposeFlags    purposes;
7128     char                  description[VK_MAX_DESCRIPTION_SIZE];
7129     char                  layer[VK_MAX_EXTENSION_NAME_SIZE];
7130 } VkPhysicalDeviceToolProperties;
7131 
7132 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
7133     VkStructureType    sType;
7134     void*              pNext;
7135     VkBool32           shaderDemoteToHelperInvocation;
7136 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
7137 
7138 typedef struct VkPhysicalDevicePrivateDataFeatures {
7139     VkStructureType    sType;
7140     void*              pNext;
7141     VkBool32           privateData;
7142 } VkPhysicalDevicePrivateDataFeatures;
7143 
7144 typedef struct VkDevicePrivateDataCreateInfo {
7145     VkStructureType    sType;
7146     const void*        pNext;
7147     uint32_t           privateDataSlotRequestCount;
7148 } VkDevicePrivateDataCreateInfo;
7149 
7150 typedef struct VkPrivateDataSlotCreateInfo {
7151     VkStructureType                 sType;
7152     const void*                     pNext;
7153     VkPrivateDataSlotCreateFlags    flags;
7154 } VkPrivateDataSlotCreateInfo;
7155 
7156 typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
7157     VkStructureType    sType;
7158     void*              pNext;
7159     VkBool32           pipelineCreationCacheControl;
7160 } VkPhysicalDevicePipelineCreationCacheControlFeatures;
7161 
7162 typedef struct VkMemoryBarrier2 {
7163     VkStructureType          sType;
7164     const void*              pNext;
7165     VkPipelineStageFlags2    srcStageMask;
7166     VkAccessFlags2           srcAccessMask;
7167     VkPipelineStageFlags2    dstStageMask;
7168     VkAccessFlags2           dstAccessMask;
7169 } VkMemoryBarrier2;
7170 
7171 typedef struct VkBufferMemoryBarrier2 {
7172     VkStructureType          sType;
7173     const void*              pNext;
7174     VkPipelineStageFlags2    srcStageMask;
7175     VkAccessFlags2           srcAccessMask;
7176     VkPipelineStageFlags2    dstStageMask;
7177     VkAccessFlags2           dstAccessMask;
7178     uint32_t                 srcQueueFamilyIndex;
7179     uint32_t                 dstQueueFamilyIndex;
7180     VkBuffer                 buffer;
7181     VkDeviceSize             offset;
7182     VkDeviceSize             size;
7183 } VkBufferMemoryBarrier2;
7184 
7185 typedef struct VkImageMemoryBarrier2 {
7186     VkStructureType            sType;
7187     const void*                pNext;
7188     VkPipelineStageFlags2      srcStageMask;
7189     VkAccessFlags2             srcAccessMask;
7190     VkPipelineStageFlags2      dstStageMask;
7191     VkAccessFlags2             dstAccessMask;
7192     VkImageLayout              oldLayout;
7193     VkImageLayout              newLayout;
7194     uint32_t                   srcQueueFamilyIndex;
7195     uint32_t                   dstQueueFamilyIndex;
7196     VkImage                    image;
7197     VkImageSubresourceRange    subresourceRange;
7198 } VkImageMemoryBarrier2;
7199 
7200 typedef struct VkDependencyInfo {
7201     VkStructureType                  sType;
7202     const void*                      pNext;
7203     VkDependencyFlags                dependencyFlags;
7204     uint32_t                         memoryBarrierCount;
7205     const VkMemoryBarrier2*          pMemoryBarriers;
7206     uint32_t                         bufferMemoryBarrierCount;
7207     const VkBufferMemoryBarrier2*    pBufferMemoryBarriers;
7208     uint32_t                         imageMemoryBarrierCount;
7209     const VkImageMemoryBarrier2*     pImageMemoryBarriers;
7210 } VkDependencyInfo;
7211 
7212 typedef struct VkSemaphoreSubmitInfo {
7213     VkStructureType          sType;
7214     const void*              pNext;
7215     VkSemaphore              semaphore;
7216     uint64_t                 value;
7217     VkPipelineStageFlags2    stageMask;
7218     uint32_t                 deviceIndex;
7219 } VkSemaphoreSubmitInfo;
7220 
7221 typedef struct VkCommandBufferSubmitInfo {
7222     VkStructureType    sType;
7223     const void*        pNext;
7224     VkCommandBuffer    commandBuffer;
7225     uint32_t           deviceMask;
7226 } VkCommandBufferSubmitInfo;
7227 
7228 typedef struct VkSubmitInfo2 {
7229     VkStructureType                     sType;
7230     const void*                         pNext;
7231     VkSubmitFlags                       flags;
7232     uint32_t                            waitSemaphoreInfoCount;
7233     const VkSemaphoreSubmitInfo*        pWaitSemaphoreInfos;
7234     uint32_t                            commandBufferInfoCount;
7235     const VkCommandBufferSubmitInfo*    pCommandBufferInfos;
7236     uint32_t                            signalSemaphoreInfoCount;
7237     const VkSemaphoreSubmitInfo*        pSignalSemaphoreInfos;
7238 } VkSubmitInfo2;
7239 
7240 typedef struct VkPhysicalDeviceSynchronization2Features {
7241     VkStructureType    sType;
7242     void*              pNext;
7243     VkBool32           synchronization2;
7244 } VkPhysicalDeviceSynchronization2Features;
7245 
7246 typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
7247     VkStructureType    sType;
7248     void*              pNext;
7249     VkBool32           shaderZeroInitializeWorkgroupMemory;
7250 } VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
7251 
7252 typedef struct VkPhysicalDeviceImageRobustnessFeatures {
7253     VkStructureType    sType;
7254     void*              pNext;
7255     VkBool32           robustImageAccess;
7256 } VkPhysicalDeviceImageRobustnessFeatures;
7257 
7258 typedef struct VkBufferCopy2 {
7259     VkStructureType    sType;
7260     const void*        pNext;
7261     VkDeviceSize       srcOffset;
7262     VkDeviceSize       dstOffset;
7263     VkDeviceSize       size;
7264 } VkBufferCopy2;
7265 
7266 typedef struct VkCopyBufferInfo2 {
7267     VkStructureType         sType;
7268     const void*             pNext;
7269     VkBuffer                srcBuffer;
7270     VkBuffer                dstBuffer;
7271     uint32_t                regionCount;
7272     const VkBufferCopy2*    pRegions;
7273 } VkCopyBufferInfo2;
7274 
7275 typedef struct VkImageCopy2 {
7276     VkStructureType             sType;
7277     const void*                 pNext;
7278     VkImageSubresourceLayers    srcSubresource;
7279     VkOffset3D                  srcOffset;
7280     VkImageSubresourceLayers    dstSubresource;
7281     VkOffset3D                  dstOffset;
7282     VkExtent3D                  extent;
7283 } VkImageCopy2;
7284 
7285 typedef struct VkCopyImageInfo2 {
7286     VkStructureType        sType;
7287     const void*            pNext;
7288     VkImage                srcImage;
7289     VkImageLayout          srcImageLayout;
7290     VkImage                dstImage;
7291     VkImageLayout          dstImageLayout;
7292     uint32_t               regionCount;
7293     const VkImageCopy2*    pRegions;
7294 } VkCopyImageInfo2;
7295 
7296 typedef struct VkBufferImageCopy2 {
7297     VkStructureType             sType;
7298     const void*                 pNext;
7299     VkDeviceSize                bufferOffset;
7300     uint32_t                    bufferRowLength;
7301     uint32_t                    bufferImageHeight;
7302     VkImageSubresourceLayers    imageSubresource;
7303     VkOffset3D                  imageOffset;
7304     VkExtent3D                  imageExtent;
7305 } VkBufferImageCopy2;
7306 
7307 typedef struct VkCopyBufferToImageInfo2 {
7308     VkStructureType              sType;
7309     const void*                  pNext;
7310     VkBuffer                     srcBuffer;
7311     VkImage                      dstImage;
7312     VkImageLayout                dstImageLayout;
7313     uint32_t                     regionCount;
7314     const VkBufferImageCopy2*    pRegions;
7315 } VkCopyBufferToImageInfo2;
7316 
7317 typedef struct VkCopyImageToBufferInfo2 {
7318     VkStructureType              sType;
7319     const void*                  pNext;
7320     VkImage                      srcImage;
7321     VkImageLayout                srcImageLayout;
7322     VkBuffer                     dstBuffer;
7323     uint32_t                     regionCount;
7324     const VkBufferImageCopy2*    pRegions;
7325 } VkCopyImageToBufferInfo2;
7326 
7327 typedef struct VkImageBlit2 {
7328     VkStructureType             sType;
7329     const void*                 pNext;
7330     VkImageSubresourceLayers    srcSubresource;
7331     VkOffset3D                  srcOffsets[2];
7332     VkImageSubresourceLayers    dstSubresource;
7333     VkOffset3D                  dstOffsets[2];
7334 } VkImageBlit2;
7335 
7336 typedef struct VkBlitImageInfo2 {
7337     VkStructureType        sType;
7338     const void*            pNext;
7339     VkImage                srcImage;
7340     VkImageLayout          srcImageLayout;
7341     VkImage                dstImage;
7342     VkImageLayout          dstImageLayout;
7343     uint32_t               regionCount;
7344     const VkImageBlit2*    pRegions;
7345     VkFilter               filter;
7346 } VkBlitImageInfo2;
7347 
7348 typedef struct VkImageResolve2 {
7349     VkStructureType             sType;
7350     const void*                 pNext;
7351     VkImageSubresourceLayers    srcSubresource;
7352     VkOffset3D                  srcOffset;
7353     VkImageSubresourceLayers    dstSubresource;
7354     VkOffset3D                  dstOffset;
7355     VkExtent3D                  extent;
7356 } VkImageResolve2;
7357 
7358 typedef struct VkResolveImageInfo2 {
7359     VkStructureType           sType;
7360     const void*               pNext;
7361     VkImage                   srcImage;
7362     VkImageLayout             srcImageLayout;
7363     VkImage                   dstImage;
7364     VkImageLayout             dstImageLayout;
7365     uint32_t                  regionCount;
7366     const VkImageResolve2*    pRegions;
7367 } VkResolveImageInfo2;
7368 
7369 typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7370     VkStructureType    sType;
7371     void*              pNext;
7372     VkBool32           subgroupSizeControl;
7373     VkBool32           computeFullSubgroups;
7374 } VkPhysicalDeviceSubgroupSizeControlFeatures;
7375 
7376 typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7377     VkStructureType       sType;
7378     void*                 pNext;
7379     uint32_t              minSubgroupSize;
7380     uint32_t              maxSubgroupSize;
7381     uint32_t              maxComputeWorkgroupSubgroups;
7382     VkShaderStageFlags    requiredSubgroupSizeStages;
7383 } VkPhysicalDeviceSubgroupSizeControlProperties;
7384 
7385 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7386     VkStructureType    sType;
7387     void*              pNext;
7388     uint32_t           requiredSubgroupSize;
7389 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7390 
7391 typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7392     VkStructureType    sType;
7393     void*              pNext;
7394     VkBool32           inlineUniformBlock;
7395     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
7396 } VkPhysicalDeviceInlineUniformBlockFeatures;
7397 
7398 typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7399     VkStructureType    sType;
7400     void*              pNext;
7401     uint32_t           maxInlineUniformBlockSize;
7402     uint32_t           maxPerStageDescriptorInlineUniformBlocks;
7403     uint32_t           maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7404     uint32_t           maxDescriptorSetInlineUniformBlocks;
7405     uint32_t           maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7406 } VkPhysicalDeviceInlineUniformBlockProperties;
7407 
7408 typedef struct VkWriteDescriptorSetInlineUniformBlock {
7409     VkStructureType    sType;
7410     const void*        pNext;
7411     uint32_t           dataSize;
7412     const void*        pData;
7413 } VkWriteDescriptorSetInlineUniformBlock;
7414 
7415 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7416     VkStructureType    sType;
7417     const void*        pNext;
7418     uint32_t           maxInlineUniformBlockBindings;
7419 } VkDescriptorPoolInlineUniformBlockCreateInfo;
7420 
7421 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7422     VkStructureType    sType;
7423     void*              pNext;
7424     VkBool32           textureCompressionASTC_HDR;
7425 } VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7426 
7427 typedef struct VkRenderingAttachmentInfo {
7428     VkStructureType          sType;
7429     const void*              pNext;
7430     VkImageView              imageView;
7431     VkImageLayout            imageLayout;
7432     VkResolveModeFlagBits    resolveMode;
7433     VkImageView              resolveImageView;
7434     VkImageLayout            resolveImageLayout;
7435     VkAttachmentLoadOp       loadOp;
7436     VkAttachmentStoreOp      storeOp;
7437     VkClearValue             clearValue;
7438 } VkRenderingAttachmentInfo;
7439 
7440 typedef struct VkRenderingInfo {
7441     VkStructureType                     sType;
7442     const void*                         pNext;
7443     VkRenderingFlags                    flags;
7444     VkRect2D                            renderArea;
7445     uint32_t                            layerCount;
7446     uint32_t                            viewMask;
7447     uint32_t                            colorAttachmentCount;
7448     const VkRenderingAttachmentInfo*    pColorAttachments;
7449     const VkRenderingAttachmentInfo*    pDepthAttachment;
7450     const VkRenderingAttachmentInfo*    pStencilAttachment;
7451 } VkRenderingInfo;
7452 
7453 typedef struct VkPipelineRenderingCreateInfo {
7454     VkStructureType    sType;
7455     const void*        pNext;
7456     uint32_t           viewMask;
7457     uint32_t           colorAttachmentCount;
7458     const VkFormat*    pColorAttachmentFormats;
7459     VkFormat           depthAttachmentFormat;
7460     VkFormat           stencilAttachmentFormat;
7461 } VkPipelineRenderingCreateInfo;
7462 
7463 typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7464     VkStructureType    sType;
7465     void*              pNext;
7466     VkBool32           dynamicRendering;
7467 } VkPhysicalDeviceDynamicRenderingFeatures;
7468 
7469 typedef struct VkCommandBufferInheritanceRenderingInfo {
7470     VkStructureType          sType;
7471     const void*              pNext;
7472     VkRenderingFlags         flags;
7473     uint32_t                 viewMask;
7474     uint32_t                 colorAttachmentCount;
7475     const VkFormat*          pColorAttachmentFormats;
7476     VkFormat                 depthAttachmentFormat;
7477     VkFormat                 stencilAttachmentFormat;
7478     VkSampleCountFlagBits    rasterizationSamples;
7479 } VkCommandBufferInheritanceRenderingInfo;
7480 
7481 typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7482     VkStructureType    sType;
7483     void*              pNext;
7484     VkBool32           shaderIntegerDotProduct;
7485 } VkPhysicalDeviceShaderIntegerDotProductFeatures;
7486 
7487 typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
7488     VkStructureType    sType;
7489     void*              pNext;
7490     VkBool32           integerDotProduct8BitUnsignedAccelerated;
7491     VkBool32           integerDotProduct8BitSignedAccelerated;
7492     VkBool32           integerDotProduct8BitMixedSignednessAccelerated;
7493     VkBool32           integerDotProduct4x8BitPackedUnsignedAccelerated;
7494     VkBool32           integerDotProduct4x8BitPackedSignedAccelerated;
7495     VkBool32           integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7496     VkBool32           integerDotProduct16BitUnsignedAccelerated;
7497     VkBool32           integerDotProduct16BitSignedAccelerated;
7498     VkBool32           integerDotProduct16BitMixedSignednessAccelerated;
7499     VkBool32           integerDotProduct32BitUnsignedAccelerated;
7500     VkBool32           integerDotProduct32BitSignedAccelerated;
7501     VkBool32           integerDotProduct32BitMixedSignednessAccelerated;
7502     VkBool32           integerDotProduct64BitUnsignedAccelerated;
7503     VkBool32           integerDotProduct64BitSignedAccelerated;
7504     VkBool32           integerDotProduct64BitMixedSignednessAccelerated;
7505     VkBool32           integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7506     VkBool32           integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7507     VkBool32           integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7508     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7509     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7510     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7511     VkBool32           integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7512     VkBool32           integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7513     VkBool32           integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7514     VkBool32           integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7515     VkBool32           integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7516     VkBool32           integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7517     VkBool32           integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7518     VkBool32           integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7519     VkBool32           integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7520 } VkPhysicalDeviceShaderIntegerDotProductProperties;
7521 
7522 typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
7523     VkStructureType    sType;
7524     void*              pNext;
7525     VkDeviceSize       storageTexelBufferOffsetAlignmentBytes;
7526     VkBool32           storageTexelBufferOffsetSingleTexelAlignment;
7527     VkDeviceSize       uniformTexelBufferOffsetAlignmentBytes;
7528     VkBool32           uniformTexelBufferOffsetSingleTexelAlignment;
7529 } VkPhysicalDeviceTexelBufferAlignmentProperties;
7530 
7531 typedef struct VkFormatProperties3 {
7532     VkStructureType          sType;
7533     void*                    pNext;
7534     VkFormatFeatureFlags2    linearTilingFeatures;
7535     VkFormatFeatureFlags2    optimalTilingFeatures;
7536     VkFormatFeatureFlags2    bufferFeatures;
7537 } VkFormatProperties3;
7538 
7539 typedef struct VkPhysicalDeviceMaintenance4Features {
7540     VkStructureType    sType;
7541     void*              pNext;
7542     VkBool32           maintenance4;
7543 } VkPhysicalDeviceMaintenance4Features;
7544 
7545 typedef struct VkPhysicalDeviceMaintenance4Properties {
7546     VkStructureType    sType;
7547     void*              pNext;
7548     VkDeviceSize       maxBufferSize;
7549 } VkPhysicalDeviceMaintenance4Properties;
7550 
7551 typedef struct VkDeviceBufferMemoryRequirements {
7552     VkStructureType              sType;
7553     const void*                  pNext;
7554     const VkBufferCreateInfo*    pCreateInfo;
7555 } VkDeviceBufferMemoryRequirements;
7556 
7557 typedef struct VkDeviceImageMemoryRequirements {
7558     VkStructureType             sType;
7559     const void*                 pNext;
7560     const VkImageCreateInfo*    pCreateInfo;
7561     VkImageAspectFlagBits       planeAspect;
7562 } VkDeviceImageMemoryRequirements;
7563 
7564 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
7565 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
7566 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
7567 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
7568 typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
7569 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
7570 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
7571 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
7572 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
7573 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
7574 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
7575 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
7576 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
7577 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7578 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7579 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
7580 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
7581 typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
7582 typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer                   commandBuffer);
7583 typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
7584 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
7585 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
7586 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
7587 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
7588 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);
7589 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
7590 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
7591 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
7592 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
7593 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
7594 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
7595 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
7596 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
7597 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
7598 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7599 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7600 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7601 
7602 #ifndef VK_NO_PROTOTYPES
7603 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
7604     VkPhysicalDevice                            physicalDevice,
7605     uint32_t*                                   pToolCount,
7606     VkPhysicalDeviceToolProperties*             pToolProperties);
7607 
7608 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
7609     VkDevice                                    device,
7610     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
7611     const VkAllocationCallbacks*                pAllocator,
7612     VkPrivateDataSlot*                          pPrivateDataSlot);
7613 
7614 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
7615     VkDevice                                    device,
7616     VkPrivateDataSlot                           privateDataSlot,
7617     const VkAllocationCallbacks*                pAllocator);
7618 
7619 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
7620     VkDevice                                    device,
7621     VkObjectType                                objectType,
7622     uint64_t                                    objectHandle,
7623     VkPrivateDataSlot                           privateDataSlot,
7624     uint64_t                                    data);
7625 
7626 VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
7627     VkDevice                                    device,
7628     VkObjectType                                objectType,
7629     uint64_t                                    objectHandle,
7630     VkPrivateDataSlot                           privateDataSlot,
7631     uint64_t*                                   pData);
7632 
7633 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
7634     VkCommandBuffer                             commandBuffer,
7635     VkEvent                                     event,
7636     const VkDependencyInfo*                     pDependencyInfo);
7637 
7638 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
7639     VkCommandBuffer                             commandBuffer,
7640     VkEvent                                     event,
7641     VkPipelineStageFlags2                       stageMask);
7642 
7643 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
7644     VkCommandBuffer                             commandBuffer,
7645     uint32_t                                    eventCount,
7646     const VkEvent*                              pEvents,
7647     const VkDependencyInfo*                     pDependencyInfos);
7648 
7649 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
7650     VkCommandBuffer                             commandBuffer,
7651     const VkDependencyInfo*                     pDependencyInfo);
7652 
7653 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
7654     VkCommandBuffer                             commandBuffer,
7655     VkPipelineStageFlags2                       stage,
7656     VkQueryPool                                 queryPool,
7657     uint32_t                                    query);
7658 
7659 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
7660     VkQueue                                     queue,
7661     uint32_t                                    submitCount,
7662     const VkSubmitInfo2*                        pSubmits,
7663     VkFence                                     fence);
7664 
7665 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
7666     VkCommandBuffer                             commandBuffer,
7667     const VkCopyBufferInfo2*                    pCopyBufferInfo);
7668 
7669 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
7670     VkCommandBuffer                             commandBuffer,
7671     const VkCopyImageInfo2*                     pCopyImageInfo);
7672 
7673 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
7674     VkCommandBuffer                             commandBuffer,
7675     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
7676 
7677 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
7678     VkCommandBuffer                             commandBuffer,
7679     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
7680 
7681 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
7682     VkCommandBuffer                             commandBuffer,
7683     const VkBlitImageInfo2*                     pBlitImageInfo);
7684 
7685 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
7686     VkCommandBuffer                             commandBuffer,
7687     const VkResolveImageInfo2*                  pResolveImageInfo);
7688 
7689 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
7690     VkCommandBuffer                             commandBuffer,
7691     const VkRenderingInfo*                      pRenderingInfo);
7692 
7693 VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
7694     VkCommandBuffer                             commandBuffer);
7695 
7696 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
7697     VkCommandBuffer                             commandBuffer,
7698     VkCullModeFlags                             cullMode);
7699 
7700 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
7701     VkCommandBuffer                             commandBuffer,
7702     VkFrontFace                                 frontFace);
7703 
7704 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
7705     VkCommandBuffer                             commandBuffer,
7706     VkPrimitiveTopology                         primitiveTopology);
7707 
7708 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
7709     VkCommandBuffer                             commandBuffer,
7710     uint32_t                                    viewportCount,
7711     const VkViewport*                           pViewports);
7712 
7713 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
7714     VkCommandBuffer                             commandBuffer,
7715     uint32_t                                    scissorCount,
7716     const VkRect2D*                             pScissors);
7717 
7718 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
7719     VkCommandBuffer                             commandBuffer,
7720     uint32_t                                    firstBinding,
7721     uint32_t                                    bindingCount,
7722     const VkBuffer*                             pBuffers,
7723     const VkDeviceSize*                         pOffsets,
7724     const VkDeviceSize*                         pSizes,
7725     const VkDeviceSize*                         pStrides);
7726 
7727 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
7728     VkCommandBuffer                             commandBuffer,
7729     VkBool32                                    depthTestEnable);
7730 
7731 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
7732     VkCommandBuffer                             commandBuffer,
7733     VkBool32                                    depthWriteEnable);
7734 
7735 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
7736     VkCommandBuffer                             commandBuffer,
7737     VkCompareOp                                 depthCompareOp);
7738 
7739 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
7740     VkCommandBuffer                             commandBuffer,
7741     VkBool32                                    depthBoundsTestEnable);
7742 
7743 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
7744     VkCommandBuffer                             commandBuffer,
7745     VkBool32                                    stencilTestEnable);
7746 
7747 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
7748     VkCommandBuffer                             commandBuffer,
7749     VkStencilFaceFlags                          faceMask,
7750     VkStencilOp                                 failOp,
7751     VkStencilOp                                 passOp,
7752     VkStencilOp                                 depthFailOp,
7753     VkCompareOp                                 compareOp);
7754 
7755 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
7756     VkCommandBuffer                             commandBuffer,
7757     VkBool32                                    rasterizerDiscardEnable);
7758 
7759 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
7760     VkCommandBuffer                             commandBuffer,
7761     VkBool32                                    depthBiasEnable);
7762 
7763 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
7764     VkCommandBuffer                             commandBuffer,
7765     VkBool32                                    primitiveRestartEnable);
7766 
7767 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
7768     VkDevice                                    device,
7769     const VkDeviceBufferMemoryRequirements*     pInfo,
7770     VkMemoryRequirements2*                      pMemoryRequirements);
7771 
7772 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
7773     VkDevice                                    device,
7774     const VkDeviceImageMemoryRequirements*      pInfo,
7775     VkMemoryRequirements2*                      pMemoryRequirements);
7776 
7777 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
7778     VkDevice                                    device,
7779     const VkDeviceImageMemoryRequirements*      pInfo,
7780     uint32_t*                                   pSparseMemoryRequirementCount,
7781     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
7782 #endif
7783 
7784 
7785 // VK_VERSION_1_4 is a preprocessor guard. Do not pass it to API calls.
7786 #define VK_VERSION_1_4 1
7787 // Vulkan 1.4 version number
7788 #define VK_API_VERSION_1_4 VK_MAKE_API_VERSION(0, 1, 4, 0)// Patch version should always be set to 0
7789 
7790 #define VK_MAX_GLOBAL_PRIORITY_SIZE       16U
7791 
7792 typedef enum VkPipelineRobustnessBufferBehavior {
7793     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT = 0,
7794     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED = 1,
7795     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS = 2,
7796     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 = 3,
7797     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT,
7798     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
7799     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,
7800     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,
7801     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
7802 } VkPipelineRobustnessBufferBehavior;
7803 
7804 typedef enum VkPipelineRobustnessImageBehavior {
7805     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT = 0,
7806     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED = 1,
7807     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS = 2,
7808     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2 = 3,
7809     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT,
7810     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED,
7811     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS,
7812     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
7813     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
7814 } VkPipelineRobustnessImageBehavior;
7815 
7816 typedef enum VkQueueGlobalPriority {
7817     VK_QUEUE_GLOBAL_PRIORITY_LOW = 128,
7818     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM = 256,
7819     VK_QUEUE_GLOBAL_PRIORITY_HIGH = 512,
7820     VK_QUEUE_GLOBAL_PRIORITY_REALTIME = 1024,
7821     VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW,
7822     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
7823     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
7824     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
7825     VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = VK_QUEUE_GLOBAL_PRIORITY_LOW,
7826     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
7827     VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
7828     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
7829     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM = 0x7FFFFFFF
7830 } VkQueueGlobalPriority;
7831 
7832 typedef enum VkLineRasterizationMode {
7833     VK_LINE_RASTERIZATION_MODE_DEFAULT = 0,
7834     VK_LINE_RASTERIZATION_MODE_RECTANGULAR = 1,
7835     VK_LINE_RASTERIZATION_MODE_BRESENHAM = 2,
7836     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH = 3,
7837     VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT,
7838     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
7839     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
7840     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
7841     VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = VK_LINE_RASTERIZATION_MODE_DEFAULT,
7842     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
7843     VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
7844     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
7845     VK_LINE_RASTERIZATION_MODE_MAX_ENUM = 0x7FFFFFFF
7846 } VkLineRasterizationMode;
7847 
7848 typedef enum VkMemoryUnmapFlagBits {
7849     VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
7850     VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7851 } VkMemoryUnmapFlagBits;
7852 typedef VkFlags VkMemoryUnmapFlags;
7853 typedef VkFlags64 VkPipelineCreateFlags2;
7854 
7855 // Flag bits for VkPipelineCreateFlagBits2
7856 typedef VkFlags64 VkPipelineCreateFlagBits2;
7857 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT = 0x00000001ULL;
7858 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT = 0x00000002ULL;
7859 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT = 0x00000004ULL;
7860 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008ULL;
7861 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT = 0x00000010ULL;
7862 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100ULL;
7863 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200ULL;
7864 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT = 0x08000000ULL;
7865 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT = 0x40000000ULL;
7866 #ifdef VK_ENABLE_BETA_EXTENSIONS
7867 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX = 0x100000000ULL;
7868 #endif
7869 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES_BIT_KHR = 0x00001000ULL;
7870 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV = 0x200000000ULL;
7871 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL;
7872 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
7873 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
7874 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
7875 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
7876 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
7877 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
7878 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
7879 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
7880 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
7881 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
7882 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
7883 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
7884 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
7885 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
7886 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
7887 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
7888 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
7889 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
7890 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
7891 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
7892 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
7893 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
7894 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
7895 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
7896 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
7897 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
7898 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
7899 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
7900 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
7901 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
7902 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
7903 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM = 0x2000000000ULL;
7904 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
7905 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = 0x4000000000ULL;
7906 
7907 typedef VkFlags64 VkBufferUsageFlags2;
7908 
7909 // Flag bits for VkBufferUsageFlagBits2
7910 typedef VkFlags64 VkBufferUsageFlagBits2;
7911 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT = 0x00000001ULL;
7912 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT = 0x00000002ULL;
7913 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004ULL;
7914 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000008ULL;
7915 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT = 0x00000010ULL;
7916 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT = 0x00000020ULL;
7917 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT = 0x00000040ULL;
7918 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT = 0x00000080ULL;
7919 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT = 0x00000100ULL;
7920 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT = 0x00020000ULL;
7921 #ifdef VK_ENABLE_BETA_EXTENSIONS
7922 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
7923 #endif
7924 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
7925 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
7926 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
7927 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
7928 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
7929 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
7930 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
7931 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
7932 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
7933 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
7934 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
7935 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
7936 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
7937 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
7938 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
7939 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
7940 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
7941 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
7942 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
7943 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
7944 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
7945 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
7946 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
7947 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
7948 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
7949 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
7950 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = 0x80000000ULL;
7951 
7952 
7953 typedef enum VkHostImageCopyFlagBits {
7954     VK_HOST_IMAGE_COPY_MEMCPY = 0x00000001,
7955     VK_HOST_IMAGE_COPY_MEMCPY_EXT = VK_HOST_IMAGE_COPY_MEMCPY,
7956     VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7957 } VkHostImageCopyFlagBits;
7958 typedef VkFlags VkHostImageCopyFlags;
7959 typedef struct VkPhysicalDeviceVulkan14Features {
7960     VkStructureType    sType;
7961     void*              pNext;
7962     VkBool32           globalPriorityQuery;
7963     VkBool32           shaderSubgroupRotate;
7964     VkBool32           shaderSubgroupRotateClustered;
7965     VkBool32           shaderFloatControls2;
7966     VkBool32           shaderExpectAssume;
7967     VkBool32           rectangularLines;
7968     VkBool32           bresenhamLines;
7969     VkBool32           smoothLines;
7970     VkBool32           stippledRectangularLines;
7971     VkBool32           stippledBresenhamLines;
7972     VkBool32           stippledSmoothLines;
7973     VkBool32           vertexAttributeInstanceRateDivisor;
7974     VkBool32           vertexAttributeInstanceRateZeroDivisor;
7975     VkBool32           indexTypeUint8;
7976     VkBool32           dynamicRenderingLocalRead;
7977     VkBool32           maintenance5;
7978     VkBool32           maintenance6;
7979     VkBool32           pipelineProtectedAccess;
7980     VkBool32           pipelineRobustness;
7981     VkBool32           hostImageCopy;
7982     VkBool32           pushDescriptor;
7983 } VkPhysicalDeviceVulkan14Features;
7984 
7985 typedef struct VkPhysicalDeviceVulkan14Properties {
7986     VkStructureType                       sType;
7987     void*                                 pNext;
7988     uint32_t                              lineSubPixelPrecisionBits;
7989     uint32_t                              maxVertexAttribDivisor;
7990     VkBool32                              supportsNonZeroFirstInstance;
7991     uint32_t                              maxPushDescriptors;
7992     VkBool32                              dynamicRenderingLocalReadDepthStencilAttachments;
7993     VkBool32                              dynamicRenderingLocalReadMultisampledAttachments;
7994     VkBool32                              earlyFragmentMultisampleCoverageAfterSampleCounting;
7995     VkBool32                              earlyFragmentSampleMaskTestBeforeSampleCounting;
7996     VkBool32                              depthStencilSwizzleOneSupport;
7997     VkBool32                              polygonModePointSize;
7998     VkBool32                              nonStrictSinglePixelWideLinesUseParallelogram;
7999     VkBool32                              nonStrictWideLinesUseParallelogram;
8000     VkBool32                              blockTexelViewCompatibleMultipleLayers;
8001     uint32_t                              maxCombinedImageSamplerDescriptorCount;
8002     VkBool32                              fragmentShadingRateClampCombinerInputs;
8003     VkPipelineRobustnessBufferBehavior    defaultRobustnessStorageBuffers;
8004     VkPipelineRobustnessBufferBehavior    defaultRobustnessUniformBuffers;
8005     VkPipelineRobustnessBufferBehavior    defaultRobustnessVertexInputs;
8006     VkPipelineRobustnessImageBehavior     defaultRobustnessImages;
8007     uint32_t                              copySrcLayoutCount;
8008     VkImageLayout*                        pCopySrcLayouts;
8009     uint32_t                              copyDstLayoutCount;
8010     VkImageLayout*                        pCopyDstLayouts;
8011     uint8_t                               optimalTilingLayoutUUID[VK_UUID_SIZE];
8012     VkBool32                              identicalMemoryTypeRequirements;
8013 } VkPhysicalDeviceVulkan14Properties;
8014 
8015 typedef struct VkDeviceQueueGlobalPriorityCreateInfo {
8016     VkStructureType          sType;
8017     const void*              pNext;
8018     VkQueueGlobalPriority    globalPriority;
8019 } VkDeviceQueueGlobalPriorityCreateInfo;
8020 
8021 typedef struct VkPhysicalDeviceGlobalPriorityQueryFeatures {
8022     VkStructureType    sType;
8023     void*              pNext;
8024     VkBool32           globalPriorityQuery;
8025 } VkPhysicalDeviceGlobalPriorityQueryFeatures;
8026 
8027 typedef struct VkQueueFamilyGlobalPriorityProperties {
8028     VkStructureType          sType;
8029     void*                    pNext;
8030     uint32_t                 priorityCount;
8031     VkQueueGlobalPriority    priorities[VK_MAX_GLOBAL_PRIORITY_SIZE];
8032 } VkQueueFamilyGlobalPriorityProperties;
8033 
8034 typedef struct VkPhysicalDeviceShaderSubgroupRotateFeatures {
8035     VkStructureType    sType;
8036     void*              pNext;
8037     VkBool32           shaderSubgroupRotate;
8038     VkBool32           shaderSubgroupRotateClustered;
8039 } VkPhysicalDeviceShaderSubgroupRotateFeatures;
8040 
8041 typedef struct VkPhysicalDeviceShaderFloatControls2Features {
8042     VkStructureType    sType;
8043     void*              pNext;
8044     VkBool32           shaderFloatControls2;
8045 } VkPhysicalDeviceShaderFloatControls2Features;
8046 
8047 typedef struct VkPhysicalDeviceShaderExpectAssumeFeatures {
8048     VkStructureType    sType;
8049     void*              pNext;
8050     VkBool32           shaderExpectAssume;
8051 } VkPhysicalDeviceShaderExpectAssumeFeatures;
8052 
8053 typedef struct VkPhysicalDeviceLineRasterizationFeatures {
8054     VkStructureType    sType;
8055     void*              pNext;
8056     VkBool32           rectangularLines;
8057     VkBool32           bresenhamLines;
8058     VkBool32           smoothLines;
8059     VkBool32           stippledRectangularLines;
8060     VkBool32           stippledBresenhamLines;
8061     VkBool32           stippledSmoothLines;
8062 } VkPhysicalDeviceLineRasterizationFeatures;
8063 
8064 typedef struct VkPhysicalDeviceLineRasterizationProperties {
8065     VkStructureType    sType;
8066     void*              pNext;
8067     uint32_t           lineSubPixelPrecisionBits;
8068 } VkPhysicalDeviceLineRasterizationProperties;
8069 
8070 typedef struct VkPipelineRasterizationLineStateCreateInfo {
8071     VkStructureType            sType;
8072     const void*                pNext;
8073     VkLineRasterizationMode    lineRasterizationMode;
8074     VkBool32                   stippledLineEnable;
8075     uint32_t                   lineStippleFactor;
8076     uint16_t                   lineStipplePattern;
8077 } VkPipelineRasterizationLineStateCreateInfo;
8078 
8079 typedef struct VkPhysicalDeviceVertexAttributeDivisorProperties {
8080     VkStructureType    sType;
8081     void*              pNext;
8082     uint32_t           maxVertexAttribDivisor;
8083     VkBool32           supportsNonZeroFirstInstance;
8084 } VkPhysicalDeviceVertexAttributeDivisorProperties;
8085 
8086 typedef struct VkVertexInputBindingDivisorDescription {
8087     uint32_t    binding;
8088     uint32_t    divisor;
8089 } VkVertexInputBindingDivisorDescription;
8090 
8091 typedef struct VkPipelineVertexInputDivisorStateCreateInfo {
8092     VkStructureType                                  sType;
8093     const void*                                      pNext;
8094     uint32_t                                         vertexBindingDivisorCount;
8095     const VkVertexInputBindingDivisorDescription*    pVertexBindingDivisors;
8096 } VkPipelineVertexInputDivisorStateCreateInfo;
8097 
8098 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeatures {
8099     VkStructureType    sType;
8100     void*              pNext;
8101     VkBool32           vertexAttributeInstanceRateDivisor;
8102     VkBool32           vertexAttributeInstanceRateZeroDivisor;
8103 } VkPhysicalDeviceVertexAttributeDivisorFeatures;
8104 
8105 typedef struct VkPhysicalDeviceIndexTypeUint8Features {
8106     VkStructureType    sType;
8107     void*              pNext;
8108     VkBool32           indexTypeUint8;
8109 } VkPhysicalDeviceIndexTypeUint8Features;
8110 
8111 typedef struct VkMemoryMapInfo {
8112     VkStructureType     sType;
8113     const void*         pNext;
8114     VkMemoryMapFlags    flags;
8115     VkDeviceMemory      memory;
8116     VkDeviceSize        offset;
8117     VkDeviceSize        size;
8118 } VkMemoryMapInfo;
8119 
8120 typedef struct VkMemoryUnmapInfo {
8121     VkStructureType       sType;
8122     const void*           pNext;
8123     VkMemoryUnmapFlags    flags;
8124     VkDeviceMemory        memory;
8125 } VkMemoryUnmapInfo;
8126 
8127 typedef struct VkPhysicalDeviceMaintenance5Features {
8128     VkStructureType    sType;
8129     void*              pNext;
8130     VkBool32           maintenance5;
8131 } VkPhysicalDeviceMaintenance5Features;
8132 
8133 typedef struct VkPhysicalDeviceMaintenance5Properties {
8134     VkStructureType    sType;
8135     void*              pNext;
8136     VkBool32           earlyFragmentMultisampleCoverageAfterSampleCounting;
8137     VkBool32           earlyFragmentSampleMaskTestBeforeSampleCounting;
8138     VkBool32           depthStencilSwizzleOneSupport;
8139     VkBool32           polygonModePointSize;
8140     VkBool32           nonStrictSinglePixelWideLinesUseParallelogram;
8141     VkBool32           nonStrictWideLinesUseParallelogram;
8142 } VkPhysicalDeviceMaintenance5Properties;
8143 
8144 typedef struct VkRenderingAreaInfo {
8145     VkStructureType    sType;
8146     const void*        pNext;
8147     uint32_t           viewMask;
8148     uint32_t           colorAttachmentCount;
8149     const VkFormat*    pColorAttachmentFormats;
8150     VkFormat           depthAttachmentFormat;
8151     VkFormat           stencilAttachmentFormat;
8152 } VkRenderingAreaInfo;
8153 
8154 typedef struct VkImageSubresource2 {
8155     VkStructureType       sType;
8156     void*                 pNext;
8157     VkImageSubresource    imageSubresource;
8158 } VkImageSubresource2;
8159 
8160 typedef struct VkDeviceImageSubresourceInfo {
8161     VkStructureType               sType;
8162     const void*                   pNext;
8163     const VkImageCreateInfo*      pCreateInfo;
8164     const VkImageSubresource2*    pSubresource;
8165 } VkDeviceImageSubresourceInfo;
8166 
8167 typedef struct VkSubresourceLayout2 {
8168     VkStructureType        sType;
8169     void*                  pNext;
8170     VkSubresourceLayout    subresourceLayout;
8171 } VkSubresourceLayout2;
8172 
8173 typedef struct VkPipelineCreateFlags2CreateInfo {
8174     VkStructureType           sType;
8175     const void*               pNext;
8176     VkPipelineCreateFlags2    flags;
8177 } VkPipelineCreateFlags2CreateInfo;
8178 
8179 typedef struct VkBufferUsageFlags2CreateInfo {
8180     VkStructureType        sType;
8181     const void*            pNext;
8182     VkBufferUsageFlags2    usage;
8183 } VkBufferUsageFlags2CreateInfo;
8184 
8185 typedef struct VkPhysicalDevicePushDescriptorProperties {
8186     VkStructureType    sType;
8187     void*              pNext;
8188     uint32_t           maxPushDescriptors;
8189 } VkPhysicalDevicePushDescriptorProperties;
8190 
8191 typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeatures {
8192     VkStructureType    sType;
8193     void*              pNext;
8194     VkBool32           dynamicRenderingLocalRead;
8195 } VkPhysicalDeviceDynamicRenderingLocalReadFeatures;
8196 
8197 typedef struct VkRenderingAttachmentLocationInfo {
8198     VkStructureType    sType;
8199     const void*        pNext;
8200     uint32_t           colorAttachmentCount;
8201     const uint32_t*    pColorAttachmentLocations;
8202 } VkRenderingAttachmentLocationInfo;
8203 
8204 typedef struct VkRenderingInputAttachmentIndexInfo {
8205     VkStructureType    sType;
8206     const void*        pNext;
8207     uint32_t           colorAttachmentCount;
8208     const uint32_t*    pColorAttachmentInputIndices;
8209     const uint32_t*    pDepthInputAttachmentIndex;
8210     const uint32_t*    pStencilInputAttachmentIndex;
8211 } VkRenderingInputAttachmentIndexInfo;
8212 
8213 typedef struct VkPhysicalDeviceMaintenance6Features {
8214     VkStructureType    sType;
8215     void*              pNext;
8216     VkBool32           maintenance6;
8217 } VkPhysicalDeviceMaintenance6Features;
8218 
8219 typedef struct VkPhysicalDeviceMaintenance6Properties {
8220     VkStructureType    sType;
8221     void*              pNext;
8222     VkBool32           blockTexelViewCompatibleMultipleLayers;
8223     uint32_t           maxCombinedImageSamplerDescriptorCount;
8224     VkBool32           fragmentShadingRateClampCombinerInputs;
8225 } VkPhysicalDeviceMaintenance6Properties;
8226 
8227 typedef struct VkBindMemoryStatus {
8228     VkStructureType    sType;
8229     const void*        pNext;
8230     VkResult*          pResult;
8231 } VkBindMemoryStatus;
8232 
8233 typedef struct VkBindDescriptorSetsInfo {
8234     VkStructureType           sType;
8235     const void*               pNext;
8236     VkShaderStageFlags        stageFlags;
8237     VkPipelineLayout          layout;
8238     uint32_t                  firstSet;
8239     uint32_t                  descriptorSetCount;
8240     const VkDescriptorSet*    pDescriptorSets;
8241     uint32_t                  dynamicOffsetCount;
8242     const uint32_t*           pDynamicOffsets;
8243 } VkBindDescriptorSetsInfo;
8244 
8245 typedef struct VkPushConstantsInfo {
8246     VkStructureType       sType;
8247     const void*           pNext;
8248     VkPipelineLayout      layout;
8249     VkShaderStageFlags    stageFlags;
8250     uint32_t              offset;
8251     uint32_t              size;
8252     const void*           pValues;
8253 } VkPushConstantsInfo;
8254 
8255 typedef struct VkPushDescriptorSetInfo {
8256     VkStructureType                sType;
8257     const void*                    pNext;
8258     VkShaderStageFlags             stageFlags;
8259     VkPipelineLayout               layout;
8260     uint32_t                       set;
8261     uint32_t                       descriptorWriteCount;
8262     const VkWriteDescriptorSet*    pDescriptorWrites;
8263 } VkPushDescriptorSetInfo;
8264 
8265 typedef struct VkPushDescriptorSetWithTemplateInfo {
8266     VkStructureType               sType;
8267     const void*                   pNext;
8268     VkDescriptorUpdateTemplate    descriptorUpdateTemplate;
8269     VkPipelineLayout              layout;
8270     uint32_t                      set;
8271     const void*                   pData;
8272 } VkPushDescriptorSetWithTemplateInfo;
8273 
8274 typedef struct VkPhysicalDevicePipelineProtectedAccessFeatures {
8275     VkStructureType    sType;
8276     void*              pNext;
8277     VkBool32           pipelineProtectedAccess;
8278 } VkPhysicalDevicePipelineProtectedAccessFeatures;
8279 
8280 typedef struct VkPhysicalDevicePipelineRobustnessFeatures {
8281     VkStructureType    sType;
8282     void*              pNext;
8283     VkBool32           pipelineRobustness;
8284 } VkPhysicalDevicePipelineRobustnessFeatures;
8285 
8286 typedef struct VkPhysicalDevicePipelineRobustnessProperties {
8287     VkStructureType                       sType;
8288     void*                                 pNext;
8289     VkPipelineRobustnessBufferBehavior    defaultRobustnessStorageBuffers;
8290     VkPipelineRobustnessBufferBehavior    defaultRobustnessUniformBuffers;
8291     VkPipelineRobustnessBufferBehavior    defaultRobustnessVertexInputs;
8292     VkPipelineRobustnessImageBehavior     defaultRobustnessImages;
8293 } VkPhysicalDevicePipelineRobustnessProperties;
8294 
8295 typedef struct VkPipelineRobustnessCreateInfo {
8296     VkStructureType                       sType;
8297     const void*                           pNext;
8298     VkPipelineRobustnessBufferBehavior    storageBuffers;
8299     VkPipelineRobustnessBufferBehavior    uniformBuffers;
8300     VkPipelineRobustnessBufferBehavior    vertexInputs;
8301     VkPipelineRobustnessImageBehavior     images;
8302 } VkPipelineRobustnessCreateInfo;
8303 
8304 typedef struct VkPhysicalDeviceHostImageCopyFeatures {
8305     VkStructureType    sType;
8306     void*              pNext;
8307     VkBool32           hostImageCopy;
8308 } VkPhysicalDeviceHostImageCopyFeatures;
8309 
8310 typedef struct VkPhysicalDeviceHostImageCopyProperties {
8311     VkStructureType    sType;
8312     void*              pNext;
8313     uint32_t           copySrcLayoutCount;
8314     VkImageLayout*     pCopySrcLayouts;
8315     uint32_t           copyDstLayoutCount;
8316     VkImageLayout*     pCopyDstLayouts;
8317     uint8_t            optimalTilingLayoutUUID[VK_UUID_SIZE];
8318     VkBool32           identicalMemoryTypeRequirements;
8319 } VkPhysicalDeviceHostImageCopyProperties;
8320 
8321 typedef struct VkMemoryToImageCopy {
8322     VkStructureType             sType;
8323     const void*                 pNext;
8324     const void*                 pHostPointer;
8325     uint32_t                    memoryRowLength;
8326     uint32_t                    memoryImageHeight;
8327     VkImageSubresourceLayers    imageSubresource;
8328     VkOffset3D                  imageOffset;
8329     VkExtent3D                  imageExtent;
8330 } VkMemoryToImageCopy;
8331 
8332 typedef struct VkImageToMemoryCopy {
8333     VkStructureType             sType;
8334     const void*                 pNext;
8335     void*                       pHostPointer;
8336     uint32_t                    memoryRowLength;
8337     uint32_t                    memoryImageHeight;
8338     VkImageSubresourceLayers    imageSubresource;
8339     VkOffset3D                  imageOffset;
8340     VkExtent3D                  imageExtent;
8341 } VkImageToMemoryCopy;
8342 
8343 typedef struct VkCopyMemoryToImageInfo {
8344     VkStructureType               sType;
8345     const void*                   pNext;
8346     VkHostImageCopyFlags          flags;
8347     VkImage                       dstImage;
8348     VkImageLayout                 dstImageLayout;
8349     uint32_t                      regionCount;
8350     const VkMemoryToImageCopy*    pRegions;
8351 } VkCopyMemoryToImageInfo;
8352 
8353 typedef struct VkCopyImageToMemoryInfo {
8354     VkStructureType               sType;
8355     const void*                   pNext;
8356     VkHostImageCopyFlags          flags;
8357     VkImage                       srcImage;
8358     VkImageLayout                 srcImageLayout;
8359     uint32_t                      regionCount;
8360     const VkImageToMemoryCopy*    pRegions;
8361 } VkCopyImageToMemoryInfo;
8362 
8363 typedef struct VkCopyImageToImageInfo {
8364     VkStructureType         sType;
8365     const void*             pNext;
8366     VkHostImageCopyFlags    flags;
8367     VkImage                 srcImage;
8368     VkImageLayout           srcImageLayout;
8369     VkImage                 dstImage;
8370     VkImageLayout           dstImageLayout;
8371     uint32_t                regionCount;
8372     const VkImageCopy2*     pRegions;
8373 } VkCopyImageToImageInfo;
8374 
8375 typedef struct VkHostImageLayoutTransitionInfo {
8376     VkStructureType            sType;
8377     const void*                pNext;
8378     VkImage                    image;
8379     VkImageLayout              oldLayout;
8380     VkImageLayout              newLayout;
8381     VkImageSubresourceRange    subresourceRange;
8382 } VkHostImageLayoutTransitionInfo;
8383 
8384 typedef struct VkSubresourceHostMemcpySize {
8385     VkStructureType    sType;
8386     void*              pNext;
8387     VkDeviceSize       size;
8388 } VkSubresourceHostMemcpySize;
8389 
8390 typedef struct VkHostImageCopyDevicePerformanceQuery {
8391     VkStructureType    sType;
8392     void*              pNext;
8393     VkBool32           optimalDeviceAccess;
8394     VkBool32           identicalMemoryLayout;
8395 } VkHostImageCopyDevicePerformanceQuery;
8396 
8397 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStipple)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
8398 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
8399 typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8400 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
8401 typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularity)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
8402 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayout)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
8403 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
8404 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
8405 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
8406 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocations)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
8407 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndices)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8408 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo*   pBindDescriptorSetsInfo);
8409 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo*        pPushConstantsInfo);
8410 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo*    pPushDescriptorSetInfo);
8411 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8412 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImage)(VkDevice device, const VkCopyMemoryToImageInfo*    pCopyMemoryToImageInfo);
8413 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemory)(VkDevice device, const VkCopyImageToMemoryInfo*    pCopyImageToMemoryInfo);
8414 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImage)(VkDevice device, const VkCopyImageToImageInfo*    pCopyImageToImageInfo);
8415 typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayout)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo*    pTransitions);
8416 
8417 #ifndef VK_NO_PROTOTYPES
8418 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStipple(
8419     VkCommandBuffer                             commandBuffer,
8420     uint32_t                                    lineStippleFactor,
8421     uint16_t                                    lineStipplePattern);
8422 
8423 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2(
8424     VkDevice                                    device,
8425     const VkMemoryMapInfo*                      pMemoryMapInfo,
8426     void**                                      ppData);
8427 
8428 VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2(
8429     VkDevice                                    device,
8430     const VkMemoryUnmapInfo*                    pMemoryUnmapInfo);
8431 
8432 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2(
8433     VkCommandBuffer                             commandBuffer,
8434     VkBuffer                                    buffer,
8435     VkDeviceSize                                offset,
8436     VkDeviceSize                                size,
8437     VkIndexType                                 indexType);
8438 
8439 VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularity(
8440     VkDevice                                    device,
8441     const VkRenderingAreaInfo*                  pRenderingAreaInfo,
8442     VkExtent2D*                                 pGranularity);
8443 
8444 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayout(
8445     VkDevice                                    device,
8446     const VkDeviceImageSubresourceInfo*         pInfo,
8447     VkSubresourceLayout2*                       pLayout);
8448 
8449 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2(
8450     VkDevice                                    device,
8451     VkImage                                     image,
8452     const VkImageSubresource2*                  pSubresource,
8453     VkSubresourceLayout2*                       pLayout);
8454 
8455 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet(
8456     VkCommandBuffer                             commandBuffer,
8457     VkPipelineBindPoint                         pipelineBindPoint,
8458     VkPipelineLayout                            layout,
8459     uint32_t                                    set,
8460     uint32_t                                    descriptorWriteCount,
8461     const VkWriteDescriptorSet*                 pDescriptorWrites);
8462 
8463 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate(
8464     VkCommandBuffer                             commandBuffer,
8465     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
8466     VkPipelineLayout                            layout,
8467     uint32_t                                    set,
8468     const void*                                 pData);
8469 
8470 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocations(
8471     VkCommandBuffer                             commandBuffer,
8472     const VkRenderingAttachmentLocationInfo*    pLocationInfo);
8473 
8474 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndices(
8475     VkCommandBuffer                             commandBuffer,
8476     const VkRenderingInputAttachmentIndexInfo*  pInputAttachmentIndexInfo);
8477 
8478 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2(
8479     VkCommandBuffer                             commandBuffer,
8480     const VkBindDescriptorSetsInfo*             pBindDescriptorSetsInfo);
8481 
8482 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2(
8483     VkCommandBuffer                             commandBuffer,
8484     const VkPushConstantsInfo*                  pPushConstantsInfo);
8485 
8486 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2(
8487     VkCommandBuffer                             commandBuffer,
8488     const VkPushDescriptorSetInfo*              pPushDescriptorSetInfo);
8489 
8490 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2(
8491     VkCommandBuffer                             commandBuffer,
8492     const VkPushDescriptorSetWithTemplateInfo*  pPushDescriptorSetWithTemplateInfo);
8493 
8494 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImage(
8495     VkDevice                                    device,
8496     const VkCopyMemoryToImageInfo*              pCopyMemoryToImageInfo);
8497 
8498 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemory(
8499     VkDevice                                    device,
8500     const VkCopyImageToMemoryInfo*              pCopyImageToMemoryInfo);
8501 
8502 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImage(
8503     VkDevice                                    device,
8504     const VkCopyImageToImageInfo*               pCopyImageToImageInfo);
8505 
8506 VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayout(
8507     VkDevice                                    device,
8508     uint32_t                                    transitionCount,
8509     const VkHostImageLayoutTransitionInfo*      pTransitions);
8510 #endif
8511 
8512 
8513 // VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
8514 #define VK_KHR_surface 1
8515 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
8516 #define VK_KHR_SURFACE_SPEC_VERSION       25
8517 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
8518 
8519 typedef enum VkPresentModeKHR {
8520     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
8521     VK_PRESENT_MODE_MAILBOX_KHR = 1,
8522     VK_PRESENT_MODE_FIFO_KHR = 2,
8523     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
8524     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
8525     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
8526     VK_PRESENT_MODE_FIFO_LATEST_READY_EXT = 1000361000,
8527     VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
8528 } VkPresentModeKHR;
8529 
8530 typedef enum VkColorSpaceKHR {
8531     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
8532     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
8533     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
8534     VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
8535     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
8536     VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
8537     VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
8538     VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
8539     VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
8540   // VK_COLOR_SPACE_DOLBYVISION_EXT is deprecated, but no reason was given in the API XML
8541     VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
8542     VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
8543     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
8544     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
8545     VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
8546     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
8547     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
8548   // VK_COLORSPACE_SRGB_NONLINEAR_KHR is a deprecated alias
8549     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
8550   // VK_COLOR_SPACE_DCI_P3_LINEAR_EXT is a deprecated alias
8551     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
8552     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
8553 } VkColorSpaceKHR;
8554 
8555 typedef enum VkSurfaceTransformFlagBitsKHR {
8556     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
8557     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
8558     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
8559     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
8560     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
8561     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
8562     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
8563     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
8564     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
8565     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8566 } VkSurfaceTransformFlagBitsKHR;
8567 
8568 typedef enum VkCompositeAlphaFlagBitsKHR {
8569     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8570     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
8571     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
8572     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
8573     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8574 } VkCompositeAlphaFlagBitsKHR;
8575 typedef VkFlags VkCompositeAlphaFlagsKHR;
8576 typedef VkFlags VkSurfaceTransformFlagsKHR;
8577 typedef struct VkSurfaceCapabilitiesKHR {
8578     uint32_t                         minImageCount;
8579     uint32_t                         maxImageCount;
8580     VkExtent2D                       currentExtent;
8581     VkExtent2D                       minImageExtent;
8582     VkExtent2D                       maxImageExtent;
8583     uint32_t                         maxImageArrayLayers;
8584     VkSurfaceTransformFlagsKHR       supportedTransforms;
8585     VkSurfaceTransformFlagBitsKHR    currentTransform;
8586     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
8587     VkImageUsageFlags                supportedUsageFlags;
8588 } VkSurfaceCapabilitiesKHR;
8589 
8590 typedef struct VkSurfaceFormatKHR {
8591     VkFormat           format;
8592     VkColorSpaceKHR    colorSpace;
8593 } VkSurfaceFormatKHR;
8594 
8595 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
8596 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
8597 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
8598 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
8599 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
8600 
8601 #ifndef VK_NO_PROTOTYPES
8602 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
8603     VkInstance                                  instance,
8604     VkSurfaceKHR                                surface,
8605     const VkAllocationCallbacks*                pAllocator);
8606 
8607 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
8608     VkPhysicalDevice                            physicalDevice,
8609     uint32_t                                    queueFamilyIndex,
8610     VkSurfaceKHR                                surface,
8611     VkBool32*                                   pSupported);
8612 
8613 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
8614     VkPhysicalDevice                            physicalDevice,
8615     VkSurfaceKHR                                surface,
8616     VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
8617 
8618 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
8619     VkPhysicalDevice                            physicalDevice,
8620     VkSurfaceKHR                                surface,
8621     uint32_t*                                   pSurfaceFormatCount,
8622     VkSurfaceFormatKHR*                         pSurfaceFormats);
8623 
8624 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
8625     VkPhysicalDevice                            physicalDevice,
8626     VkSurfaceKHR                                surface,
8627     uint32_t*                                   pPresentModeCount,
8628     VkPresentModeKHR*                           pPresentModes);
8629 #endif
8630 
8631 
8632 // VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
8633 #define VK_KHR_swapchain 1
8634 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
8635 #define VK_KHR_SWAPCHAIN_SPEC_VERSION     70
8636 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
8637 
8638 typedef enum VkSwapchainCreateFlagBitsKHR {
8639     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
8640     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
8641     VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
8642     VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0x00000008,
8643     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8644 } VkSwapchainCreateFlagBitsKHR;
8645 typedef VkFlags VkSwapchainCreateFlagsKHR;
8646 
8647 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
8648     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
8649     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
8650     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
8651     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
8652     VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8653 } VkDeviceGroupPresentModeFlagBitsKHR;
8654 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
8655 typedef struct VkSwapchainCreateInfoKHR {
8656     VkStructureType                  sType;
8657     const void*                      pNext;
8658     VkSwapchainCreateFlagsKHR        flags;
8659     VkSurfaceKHR                     surface;
8660     uint32_t                         minImageCount;
8661     VkFormat                         imageFormat;
8662     VkColorSpaceKHR                  imageColorSpace;
8663     VkExtent2D                       imageExtent;
8664     uint32_t                         imageArrayLayers;
8665     VkImageUsageFlags                imageUsage;
8666     VkSharingMode                    imageSharingMode;
8667     uint32_t                         queueFamilyIndexCount;
8668     const uint32_t*                  pQueueFamilyIndices;
8669     VkSurfaceTransformFlagBitsKHR    preTransform;
8670     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
8671     VkPresentModeKHR                 presentMode;
8672     VkBool32                         clipped;
8673     VkSwapchainKHR                   oldSwapchain;
8674 } VkSwapchainCreateInfoKHR;
8675 
8676 typedef struct VkPresentInfoKHR {
8677     VkStructureType          sType;
8678     const void*              pNext;
8679     uint32_t                 waitSemaphoreCount;
8680     const VkSemaphore*       pWaitSemaphores;
8681     uint32_t                 swapchainCount;
8682     const VkSwapchainKHR*    pSwapchains;
8683     const uint32_t*          pImageIndices;
8684     VkResult*                pResults;
8685 } VkPresentInfoKHR;
8686 
8687 typedef struct VkImageSwapchainCreateInfoKHR {
8688     VkStructureType    sType;
8689     const void*        pNext;
8690     VkSwapchainKHR     swapchain;
8691 } VkImageSwapchainCreateInfoKHR;
8692 
8693 typedef struct VkBindImageMemorySwapchainInfoKHR {
8694     VkStructureType    sType;
8695     const void*        pNext;
8696     VkSwapchainKHR     swapchain;
8697     uint32_t           imageIndex;
8698 } VkBindImageMemorySwapchainInfoKHR;
8699 
8700 typedef struct VkAcquireNextImageInfoKHR {
8701     VkStructureType    sType;
8702     const void*        pNext;
8703     VkSwapchainKHR     swapchain;
8704     uint64_t           timeout;
8705     VkSemaphore        semaphore;
8706     VkFence            fence;
8707     uint32_t           deviceMask;
8708 } VkAcquireNextImageInfoKHR;
8709 
8710 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
8711     VkStructureType                     sType;
8712     void*                               pNext;
8713     uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE];
8714     VkDeviceGroupPresentModeFlagsKHR    modes;
8715 } VkDeviceGroupPresentCapabilitiesKHR;
8716 
8717 typedef struct VkDeviceGroupPresentInfoKHR {
8718     VkStructureType                        sType;
8719     const void*                            pNext;
8720     uint32_t                               swapchainCount;
8721     const uint32_t*                        pDeviceMasks;
8722     VkDeviceGroupPresentModeFlagBitsKHR    mode;
8723 } VkDeviceGroupPresentInfoKHR;
8724 
8725 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
8726     VkStructureType                     sType;
8727     const void*                         pNext;
8728     VkDeviceGroupPresentModeFlagsKHR    modes;
8729 } VkDeviceGroupSwapchainCreateInfoKHR;
8730 
8731 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
8732 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
8733 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
8734 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
8735 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
8736 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
8737 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
8738 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
8739 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
8740 
8741 #ifndef VK_NO_PROTOTYPES
8742 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
8743     VkDevice                                    device,
8744     const VkSwapchainCreateInfoKHR*             pCreateInfo,
8745     const VkAllocationCallbacks*                pAllocator,
8746     VkSwapchainKHR*                             pSwapchain);
8747 
8748 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
8749     VkDevice                                    device,
8750     VkSwapchainKHR                              swapchain,
8751     const VkAllocationCallbacks*                pAllocator);
8752 
8753 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
8754     VkDevice                                    device,
8755     VkSwapchainKHR                              swapchain,
8756     uint32_t*                                   pSwapchainImageCount,
8757     VkImage*                                    pSwapchainImages);
8758 
8759 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
8760     VkDevice                                    device,
8761     VkSwapchainKHR                              swapchain,
8762     uint64_t                                    timeout,
8763     VkSemaphore                                 semaphore,
8764     VkFence                                     fence,
8765     uint32_t*                                   pImageIndex);
8766 
8767 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
8768     VkQueue                                     queue,
8769     const VkPresentInfoKHR*                     pPresentInfo);
8770 
8771 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
8772     VkDevice                                    device,
8773     VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
8774 
8775 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
8776     VkDevice                                    device,
8777     VkSurfaceKHR                                surface,
8778     VkDeviceGroupPresentModeFlagsKHR*           pModes);
8779 
8780 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
8781     VkPhysicalDevice                            physicalDevice,
8782     VkSurfaceKHR                                surface,
8783     uint32_t*                                   pRectCount,
8784     VkRect2D*                                   pRects);
8785 
8786 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
8787     VkDevice                                    device,
8788     const VkAcquireNextImageInfoKHR*            pAcquireInfo,
8789     uint32_t*                                   pImageIndex);
8790 #endif
8791 
8792 
8793 // VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
8794 #define VK_KHR_display 1
8795 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
8796 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
8797 #define VK_KHR_DISPLAY_SPEC_VERSION       23
8798 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
8799 typedef VkFlags VkDisplayModeCreateFlagsKHR;
8800 
8801 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
8802     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8803     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
8804     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
8805     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
8806     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8807 } VkDisplayPlaneAlphaFlagBitsKHR;
8808 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
8809 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
8810 typedef struct VkDisplayModeParametersKHR {
8811     VkExtent2D    visibleRegion;
8812     uint32_t      refreshRate;
8813 } VkDisplayModeParametersKHR;
8814 
8815 typedef struct VkDisplayModeCreateInfoKHR {
8816     VkStructureType                sType;
8817     const void*                    pNext;
8818     VkDisplayModeCreateFlagsKHR    flags;
8819     VkDisplayModeParametersKHR     parameters;
8820 } VkDisplayModeCreateInfoKHR;
8821 
8822 typedef struct VkDisplayModePropertiesKHR {
8823     VkDisplayModeKHR              displayMode;
8824     VkDisplayModeParametersKHR    parameters;
8825 } VkDisplayModePropertiesKHR;
8826 
8827 typedef struct VkDisplayPlaneCapabilitiesKHR {
8828     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
8829     VkOffset2D                     minSrcPosition;
8830     VkOffset2D                     maxSrcPosition;
8831     VkExtent2D                     minSrcExtent;
8832     VkExtent2D                     maxSrcExtent;
8833     VkOffset2D                     minDstPosition;
8834     VkOffset2D                     maxDstPosition;
8835     VkExtent2D                     minDstExtent;
8836     VkExtent2D                     maxDstExtent;
8837 } VkDisplayPlaneCapabilitiesKHR;
8838 
8839 typedef struct VkDisplayPlanePropertiesKHR {
8840     VkDisplayKHR    currentDisplay;
8841     uint32_t        currentStackIndex;
8842 } VkDisplayPlanePropertiesKHR;
8843 
8844 typedef struct VkDisplayPropertiesKHR {
8845     VkDisplayKHR                  display;
8846     const char*                   displayName;
8847     VkExtent2D                    physicalDimensions;
8848     VkExtent2D                    physicalResolution;
8849     VkSurfaceTransformFlagsKHR    supportedTransforms;
8850     VkBool32                      planeReorderPossible;
8851     VkBool32                      persistentContent;
8852 } VkDisplayPropertiesKHR;
8853 
8854 typedef struct VkDisplaySurfaceCreateInfoKHR {
8855     VkStructureType                   sType;
8856     const void*                       pNext;
8857     VkDisplaySurfaceCreateFlagsKHR    flags;
8858     VkDisplayModeKHR                  displayMode;
8859     uint32_t                          planeIndex;
8860     uint32_t                          planeStackIndex;
8861     VkSurfaceTransformFlagBitsKHR     transform;
8862     float                             globalAlpha;
8863     VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
8864     VkExtent2D                        imageExtent;
8865 } VkDisplaySurfaceCreateInfoKHR;
8866 
8867 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
8868 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
8869 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
8870 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
8871 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
8872 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
8873 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
8874 
8875 #ifndef VK_NO_PROTOTYPES
8876 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
8877     VkPhysicalDevice                            physicalDevice,
8878     uint32_t*                                   pPropertyCount,
8879     VkDisplayPropertiesKHR*                     pProperties);
8880 
8881 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
8882     VkPhysicalDevice                            physicalDevice,
8883     uint32_t*                                   pPropertyCount,
8884     VkDisplayPlanePropertiesKHR*                pProperties);
8885 
8886 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
8887     VkPhysicalDevice                            physicalDevice,
8888     uint32_t                                    planeIndex,
8889     uint32_t*                                   pDisplayCount,
8890     VkDisplayKHR*                               pDisplays);
8891 
8892 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
8893     VkPhysicalDevice                            physicalDevice,
8894     VkDisplayKHR                                display,
8895     uint32_t*                                   pPropertyCount,
8896     VkDisplayModePropertiesKHR*                 pProperties);
8897 
8898 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
8899     VkPhysicalDevice                            physicalDevice,
8900     VkDisplayKHR                                display,
8901     const VkDisplayModeCreateInfoKHR*           pCreateInfo,
8902     const VkAllocationCallbacks*                pAllocator,
8903     VkDisplayModeKHR*                           pMode);
8904 
8905 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
8906     VkPhysicalDevice                            physicalDevice,
8907     VkDisplayModeKHR                            mode,
8908     uint32_t                                    planeIndex,
8909     VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
8910 
8911 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
8912     VkInstance                                  instance,
8913     const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
8914     const VkAllocationCallbacks*                pAllocator,
8915     VkSurfaceKHR*                               pSurface);
8916 #endif
8917 
8918 
8919 // VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
8920 #define VK_KHR_display_swapchain 1
8921 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
8922 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
8923 typedef struct VkDisplayPresentInfoKHR {
8924     VkStructureType    sType;
8925     const void*        pNext;
8926     VkRect2D           srcRect;
8927     VkRect2D           dstRect;
8928     VkBool32           persistent;
8929 } VkDisplayPresentInfoKHR;
8930 
8931 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
8932 
8933 #ifndef VK_NO_PROTOTYPES
8934 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
8935     VkDevice                                    device,
8936     uint32_t                                    swapchainCount,
8937     const VkSwapchainCreateInfoKHR*             pCreateInfos,
8938     const VkAllocationCallbacks*                pAllocator,
8939     VkSwapchainKHR*                             pSwapchains);
8940 #endif
8941 
8942 
8943 // VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
8944 #define VK_KHR_sampler_mirror_clamp_to_edge 1
8945 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
8946 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
8947 
8948 
8949 // VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
8950 #define VK_KHR_video_queue 1
8951 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
8952 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
8953 #define VK_KHR_VIDEO_QUEUE_SPEC_VERSION   8
8954 #define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
8955 
8956 typedef enum VkQueryResultStatusKHR {
8957     VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
8958     VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
8959     VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
8960     VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
8961     VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
8962 } VkQueryResultStatusKHR;
8963 
8964 typedef enum VkVideoCodecOperationFlagBitsKHR {
8965     VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
8966     VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
8967     VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
8968     VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
8969     VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
8970     VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
8971     VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR = 0x00040000,
8972     VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8973 } VkVideoCodecOperationFlagBitsKHR;
8974 typedef VkFlags VkVideoCodecOperationFlagsKHR;
8975 
8976 typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
8977     VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
8978     VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
8979     VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
8980     VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
8981     VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
8982     VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8983 } VkVideoChromaSubsamplingFlagBitsKHR;
8984 typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
8985 
8986 typedef enum VkVideoComponentBitDepthFlagBitsKHR {
8987     VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
8988     VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
8989     VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
8990     VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
8991     VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8992 } VkVideoComponentBitDepthFlagBitsKHR;
8993 typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
8994 
8995 typedef enum VkVideoCapabilityFlagBitsKHR {
8996     VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
8997     VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
8998     VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8999 } VkVideoCapabilityFlagBitsKHR;
9000 typedef VkFlags VkVideoCapabilityFlagsKHR;
9001 
9002 typedef enum VkVideoSessionCreateFlagBitsKHR {
9003     VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
9004     VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
9005     VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
9006     VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000008,
9007     VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x00000010,
9008     VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR = 0x00000020,
9009     VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9010 } VkVideoSessionCreateFlagBitsKHR;
9011 typedef VkFlags VkVideoSessionCreateFlagsKHR;
9012 
9013 typedef enum VkVideoSessionParametersCreateFlagBitsKHR {
9014     VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR = 0x00000001,
9015     VK_VIDEO_SESSION_PARAMETERS_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9016 } VkVideoSessionParametersCreateFlagBitsKHR;
9017 typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
9018 typedef VkFlags VkVideoBeginCodingFlagsKHR;
9019 typedef VkFlags VkVideoEndCodingFlagsKHR;
9020 
9021 typedef enum VkVideoCodingControlFlagBitsKHR {
9022     VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
9023     VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
9024     VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
9025     VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9026 } VkVideoCodingControlFlagBitsKHR;
9027 typedef VkFlags VkVideoCodingControlFlagsKHR;
9028 typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
9029     VkStructureType    sType;
9030     void*              pNext;
9031     VkBool32           queryResultStatusSupport;
9032 } VkQueueFamilyQueryResultStatusPropertiesKHR;
9033 
9034 typedef struct VkQueueFamilyVideoPropertiesKHR {
9035     VkStructureType                  sType;
9036     void*                            pNext;
9037     VkVideoCodecOperationFlagsKHR    videoCodecOperations;
9038 } VkQueueFamilyVideoPropertiesKHR;
9039 
9040 typedef struct VkVideoProfileInfoKHR {
9041     VkStructureType                     sType;
9042     const void*                         pNext;
9043     VkVideoCodecOperationFlagBitsKHR    videoCodecOperation;
9044     VkVideoChromaSubsamplingFlagsKHR    chromaSubsampling;
9045     VkVideoComponentBitDepthFlagsKHR    lumaBitDepth;
9046     VkVideoComponentBitDepthFlagsKHR    chromaBitDepth;
9047 } VkVideoProfileInfoKHR;
9048 
9049 typedef struct VkVideoProfileListInfoKHR {
9050     VkStructureType                 sType;
9051     const void*                     pNext;
9052     uint32_t                        profileCount;
9053     const VkVideoProfileInfoKHR*    pProfiles;
9054 } VkVideoProfileListInfoKHR;
9055 
9056 typedef struct VkVideoCapabilitiesKHR {
9057     VkStructureType              sType;
9058     void*                        pNext;
9059     VkVideoCapabilityFlagsKHR    flags;
9060     VkDeviceSize                 minBitstreamBufferOffsetAlignment;
9061     VkDeviceSize                 minBitstreamBufferSizeAlignment;
9062     VkExtent2D                   pictureAccessGranularity;
9063     VkExtent2D                   minCodedExtent;
9064     VkExtent2D                   maxCodedExtent;
9065     uint32_t                     maxDpbSlots;
9066     uint32_t                     maxActiveReferencePictures;
9067     VkExtensionProperties        stdHeaderVersion;
9068 } VkVideoCapabilitiesKHR;
9069 
9070 typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
9071     VkStructureType      sType;
9072     const void*          pNext;
9073     VkImageUsageFlags    imageUsage;
9074 } VkPhysicalDeviceVideoFormatInfoKHR;
9075 
9076 typedef struct VkVideoFormatPropertiesKHR {
9077     VkStructureType       sType;
9078     void*                 pNext;
9079     VkFormat              format;
9080     VkComponentMapping    componentMapping;
9081     VkImageCreateFlags    imageCreateFlags;
9082     VkImageType           imageType;
9083     VkImageTiling         imageTiling;
9084     VkImageUsageFlags     imageUsageFlags;
9085 } VkVideoFormatPropertiesKHR;
9086 
9087 typedef struct VkVideoPictureResourceInfoKHR {
9088     VkStructureType    sType;
9089     const void*        pNext;
9090     VkOffset2D         codedOffset;
9091     VkExtent2D         codedExtent;
9092     uint32_t           baseArrayLayer;
9093     VkImageView        imageViewBinding;
9094 } VkVideoPictureResourceInfoKHR;
9095 
9096 typedef struct VkVideoReferenceSlotInfoKHR {
9097     VkStructureType                         sType;
9098     const void*                             pNext;
9099     int32_t                                 slotIndex;
9100     const VkVideoPictureResourceInfoKHR*    pPictureResource;
9101 } VkVideoReferenceSlotInfoKHR;
9102 
9103 typedef struct VkVideoSessionMemoryRequirementsKHR {
9104     VkStructureType         sType;
9105     void*                   pNext;
9106     uint32_t                memoryBindIndex;
9107     VkMemoryRequirements    memoryRequirements;
9108 } VkVideoSessionMemoryRequirementsKHR;
9109 
9110 typedef struct VkBindVideoSessionMemoryInfoKHR {
9111     VkStructureType    sType;
9112     const void*        pNext;
9113     uint32_t           memoryBindIndex;
9114     VkDeviceMemory     memory;
9115     VkDeviceSize       memoryOffset;
9116     VkDeviceSize       memorySize;
9117 } VkBindVideoSessionMemoryInfoKHR;
9118 
9119 typedef struct VkVideoSessionCreateInfoKHR {
9120     VkStructureType                 sType;
9121     const void*                     pNext;
9122     uint32_t                        queueFamilyIndex;
9123     VkVideoSessionCreateFlagsKHR    flags;
9124     const VkVideoProfileInfoKHR*    pVideoProfile;
9125     VkFormat                        pictureFormat;
9126     VkExtent2D                      maxCodedExtent;
9127     VkFormat                        referencePictureFormat;
9128     uint32_t                        maxDpbSlots;
9129     uint32_t                        maxActiveReferencePictures;
9130     const VkExtensionProperties*    pStdHeaderVersion;
9131 } VkVideoSessionCreateInfoKHR;
9132 
9133 typedef struct VkVideoSessionParametersCreateInfoKHR {
9134     VkStructureType                           sType;
9135     const void*                               pNext;
9136     VkVideoSessionParametersCreateFlagsKHR    flags;
9137     VkVideoSessionParametersKHR               videoSessionParametersTemplate;
9138     VkVideoSessionKHR                         videoSession;
9139 } VkVideoSessionParametersCreateInfoKHR;
9140 
9141 typedef struct VkVideoSessionParametersUpdateInfoKHR {
9142     VkStructureType    sType;
9143     const void*        pNext;
9144     uint32_t           updateSequenceCount;
9145 } VkVideoSessionParametersUpdateInfoKHR;
9146 
9147 typedef struct VkVideoBeginCodingInfoKHR {
9148     VkStructureType                       sType;
9149     const void*                           pNext;
9150     VkVideoBeginCodingFlagsKHR            flags;
9151     VkVideoSessionKHR                     videoSession;
9152     VkVideoSessionParametersKHR           videoSessionParameters;
9153     uint32_t                              referenceSlotCount;
9154     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
9155 } VkVideoBeginCodingInfoKHR;
9156 
9157 typedef struct VkVideoEndCodingInfoKHR {
9158     VkStructureType             sType;
9159     const void*                 pNext;
9160     VkVideoEndCodingFlagsKHR    flags;
9161 } VkVideoEndCodingInfoKHR;
9162 
9163 typedef struct VkVideoCodingControlInfoKHR {
9164     VkStructureType                 sType;
9165     const void*                     pNext;
9166     VkVideoCodingControlFlagsKHR    flags;
9167 } VkVideoCodingControlInfoKHR;
9168 
9169 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
9170 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9171 typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
9172 typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
9173 typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9174 typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9175 typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
9176 typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9177 typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
9178 typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
9179 typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9180 typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9181 
9182 #ifndef VK_NO_PROTOTYPES
9183 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
9184     VkPhysicalDevice                            physicalDevice,
9185     const VkVideoProfileInfoKHR*                pVideoProfile,
9186     VkVideoCapabilitiesKHR*                     pCapabilities);
9187 
9188 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
9189     VkPhysicalDevice                            physicalDevice,
9190     const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
9191     uint32_t*                                   pVideoFormatPropertyCount,
9192     VkVideoFormatPropertiesKHR*                 pVideoFormatProperties);
9193 
9194 VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
9195     VkDevice                                    device,
9196     const VkVideoSessionCreateInfoKHR*          pCreateInfo,
9197     const VkAllocationCallbacks*                pAllocator,
9198     VkVideoSessionKHR*                          pVideoSession);
9199 
9200 VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
9201     VkDevice                                    device,
9202     VkVideoSessionKHR                           videoSession,
9203     const VkAllocationCallbacks*                pAllocator);
9204 
9205 VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
9206     VkDevice                                    device,
9207     VkVideoSessionKHR                           videoSession,
9208     uint32_t*                                   pMemoryRequirementsCount,
9209     VkVideoSessionMemoryRequirementsKHR*        pMemoryRequirements);
9210 
9211 VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
9212     VkDevice                                    device,
9213     VkVideoSessionKHR                           videoSession,
9214     uint32_t                                    bindSessionMemoryInfoCount,
9215     const VkBindVideoSessionMemoryInfoKHR*      pBindSessionMemoryInfos);
9216 
9217 VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
9218     VkDevice                                    device,
9219     const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
9220     const VkAllocationCallbacks*                pAllocator,
9221     VkVideoSessionParametersKHR*                pVideoSessionParameters);
9222 
9223 VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
9224     VkDevice                                    device,
9225     VkVideoSessionParametersKHR                 videoSessionParameters,
9226     const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9227 
9228 VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
9229     VkDevice                                    device,
9230     VkVideoSessionParametersKHR                 videoSessionParameters,
9231     const VkAllocationCallbacks*                pAllocator);
9232 
9233 VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
9234     VkCommandBuffer                             commandBuffer,
9235     const VkVideoBeginCodingInfoKHR*            pBeginInfo);
9236 
9237 VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
9238     VkCommandBuffer                             commandBuffer,
9239     const VkVideoEndCodingInfoKHR*              pEndCodingInfo);
9240 
9241 VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
9242     VkCommandBuffer                             commandBuffer,
9243     const VkVideoCodingControlInfoKHR*          pCodingControlInfo);
9244 #endif
9245 
9246 
9247 // VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
9248 #define VK_KHR_video_decode_queue 1
9249 #define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
9250 #define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
9251 
9252 typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
9253     VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
9254     VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
9255     VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9256 } VkVideoDecodeCapabilityFlagBitsKHR;
9257 typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
9258 
9259 typedef enum VkVideoDecodeUsageFlagBitsKHR {
9260     VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
9261     VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
9262     VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
9263     VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
9264     VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9265 } VkVideoDecodeUsageFlagBitsKHR;
9266 typedef VkFlags VkVideoDecodeUsageFlagsKHR;
9267 typedef VkFlags VkVideoDecodeFlagsKHR;
9268 typedef struct VkVideoDecodeCapabilitiesKHR {
9269     VkStructureType                    sType;
9270     void*                              pNext;
9271     VkVideoDecodeCapabilityFlagsKHR    flags;
9272 } VkVideoDecodeCapabilitiesKHR;
9273 
9274 typedef struct VkVideoDecodeUsageInfoKHR {
9275     VkStructureType               sType;
9276     const void*                   pNext;
9277     VkVideoDecodeUsageFlagsKHR    videoUsageHints;
9278 } VkVideoDecodeUsageInfoKHR;
9279 
9280 typedef struct VkVideoDecodeInfoKHR {
9281     VkStructureType                       sType;
9282     const void*                           pNext;
9283     VkVideoDecodeFlagsKHR                 flags;
9284     VkBuffer                              srcBuffer;
9285     VkDeviceSize                          srcBufferOffset;
9286     VkDeviceSize                          srcBufferRange;
9287     VkVideoPictureResourceInfoKHR         dstPictureResource;
9288     const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
9289     uint32_t                              referenceSlotCount;
9290     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
9291 } VkVideoDecodeInfoKHR;
9292 
9293 typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
9294 
9295 #ifndef VK_NO_PROTOTYPES
9296 VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
9297     VkCommandBuffer                             commandBuffer,
9298     const VkVideoDecodeInfoKHR*                 pDecodeInfo);
9299 #endif
9300 
9301 
9302 // VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
9303 #define VK_KHR_video_encode_h264 1
9304 #include "vk_video/vulkan_video_codec_h264std.h"
9305 #include "vk_video/vulkan_video_codec_h264std_encode.h"
9306 #define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
9307 #define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
9308 
9309 typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
9310     VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9311     VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9312     VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
9313     VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
9314     VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9315     VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9316     VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9317     VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
9318     VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
9319     VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000200,
9320     VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9321 } VkVideoEncodeH264CapabilityFlagBitsKHR;
9322 typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
9323 
9324 typedef enum VkVideoEncodeH264StdFlagBitsKHR {
9325     VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9326     VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
9327     VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9328     VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
9329     VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
9330     VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9331     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9332     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
9333     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
9334     VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
9335     VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
9336     VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
9337     VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
9338     VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
9339     VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9340     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
9341     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
9342     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
9343     VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9344     VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9345     VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9346 } VkVideoEncodeH264StdFlagBitsKHR;
9347 typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
9348 
9349 typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
9350     VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9351     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9352     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9353     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9354     VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9355     VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9356 } VkVideoEncodeH264RateControlFlagBitsKHR;
9357 typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
9358 typedef struct VkVideoEncodeH264CapabilitiesKHR {
9359     VkStructureType                        sType;
9360     void*                                  pNext;
9361     VkVideoEncodeH264CapabilityFlagsKHR    flags;
9362     StdVideoH264LevelIdc                   maxLevelIdc;
9363     uint32_t                               maxSliceCount;
9364     uint32_t                               maxPPictureL0ReferenceCount;
9365     uint32_t                               maxBPictureL0ReferenceCount;
9366     uint32_t                               maxL1ReferenceCount;
9367     uint32_t                               maxTemporalLayerCount;
9368     VkBool32                               expectDyadicTemporalLayerPattern;
9369     int32_t                                minQp;
9370     int32_t                                maxQp;
9371     VkBool32                               prefersGopRemainingFrames;
9372     VkBool32                               requiresGopRemainingFrames;
9373     VkVideoEncodeH264StdFlagsKHR           stdSyntaxFlags;
9374 } VkVideoEncodeH264CapabilitiesKHR;
9375 
9376 typedef struct VkVideoEncodeH264QpKHR {
9377     int32_t    qpI;
9378     int32_t    qpP;
9379     int32_t    qpB;
9380 } VkVideoEncodeH264QpKHR;
9381 
9382 typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
9383     VkStructureType                         sType;
9384     void*                                   pNext;
9385     VkVideoEncodeH264RateControlFlagsKHR    preferredRateControlFlags;
9386     uint32_t                                preferredGopFrameCount;
9387     uint32_t                                preferredIdrPeriod;
9388     uint32_t                                preferredConsecutiveBFrameCount;
9389     uint32_t                                preferredTemporalLayerCount;
9390     VkVideoEncodeH264QpKHR                  preferredConstantQp;
9391     uint32_t                                preferredMaxL0ReferenceCount;
9392     uint32_t                                preferredMaxL1ReferenceCount;
9393     VkBool32                                preferredStdEntropyCodingModeFlag;
9394 } VkVideoEncodeH264QualityLevelPropertiesKHR;
9395 
9396 typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
9397     VkStructureType         sType;
9398     const void*             pNext;
9399     VkBool32                useMaxLevelIdc;
9400     StdVideoH264LevelIdc    maxLevelIdc;
9401 } VkVideoEncodeH264SessionCreateInfoKHR;
9402 
9403 typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
9404     VkStructureType                            sType;
9405     const void*                                pNext;
9406     uint32_t                                   stdSPSCount;
9407     const StdVideoH264SequenceParameterSet*    pStdSPSs;
9408     uint32_t                                   stdPPSCount;
9409     const StdVideoH264PictureParameterSet*     pStdPPSs;
9410 } VkVideoEncodeH264SessionParametersAddInfoKHR;
9411 
9412 typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
9413     VkStructureType                                        sType;
9414     const void*                                            pNext;
9415     uint32_t                                               maxStdSPSCount;
9416     uint32_t                                               maxStdPPSCount;
9417     const VkVideoEncodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
9418 } VkVideoEncodeH264SessionParametersCreateInfoKHR;
9419 
9420 typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
9421     VkStructureType    sType;
9422     const void*        pNext;
9423     VkBool32           writeStdSPS;
9424     VkBool32           writeStdPPS;
9425     uint32_t           stdSPSId;
9426     uint32_t           stdPPSId;
9427 } VkVideoEncodeH264SessionParametersGetInfoKHR;
9428 
9429 typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
9430     VkStructureType    sType;
9431     void*              pNext;
9432     VkBool32           hasStdSPSOverrides;
9433     VkBool32           hasStdPPSOverrides;
9434 } VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
9435 
9436 typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
9437     VkStructureType                         sType;
9438     const void*                             pNext;
9439     int32_t                                 constantQp;
9440     const StdVideoEncodeH264SliceHeader*    pStdSliceHeader;
9441 } VkVideoEncodeH264NaluSliceInfoKHR;
9442 
9443 typedef struct VkVideoEncodeH264PictureInfoKHR {
9444     VkStructureType                             sType;
9445     const void*                                 pNext;
9446     uint32_t                                    naluSliceEntryCount;
9447     const VkVideoEncodeH264NaluSliceInfoKHR*    pNaluSliceEntries;
9448     const StdVideoEncodeH264PictureInfo*        pStdPictureInfo;
9449     VkBool32                                    generatePrefixNalu;
9450 } VkVideoEncodeH264PictureInfoKHR;
9451 
9452 typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
9453     VkStructureType                           sType;
9454     const void*                               pNext;
9455     const StdVideoEncodeH264ReferenceInfo*    pStdReferenceInfo;
9456 } VkVideoEncodeH264DpbSlotInfoKHR;
9457 
9458 typedef struct VkVideoEncodeH264ProfileInfoKHR {
9459     VkStructureType           sType;
9460     const void*               pNext;
9461     StdVideoH264ProfileIdc    stdProfileIdc;
9462 } VkVideoEncodeH264ProfileInfoKHR;
9463 
9464 typedef struct VkVideoEncodeH264RateControlInfoKHR {
9465     VkStructureType                         sType;
9466     const void*                             pNext;
9467     VkVideoEncodeH264RateControlFlagsKHR    flags;
9468     uint32_t                                gopFrameCount;
9469     uint32_t                                idrPeriod;
9470     uint32_t                                consecutiveBFrameCount;
9471     uint32_t                                temporalLayerCount;
9472 } VkVideoEncodeH264RateControlInfoKHR;
9473 
9474 typedef struct VkVideoEncodeH264FrameSizeKHR {
9475     uint32_t    frameISize;
9476     uint32_t    framePSize;
9477     uint32_t    frameBSize;
9478 } VkVideoEncodeH264FrameSizeKHR;
9479 
9480 typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
9481     VkStructureType                  sType;
9482     const void*                      pNext;
9483     VkBool32                         useMinQp;
9484     VkVideoEncodeH264QpKHR           minQp;
9485     VkBool32                         useMaxQp;
9486     VkVideoEncodeH264QpKHR           maxQp;
9487     VkBool32                         useMaxFrameSize;
9488     VkVideoEncodeH264FrameSizeKHR    maxFrameSize;
9489 } VkVideoEncodeH264RateControlLayerInfoKHR;
9490 
9491 typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
9492     VkStructureType    sType;
9493     const void*        pNext;
9494     VkBool32           useGopRemainingFrames;
9495     uint32_t           gopRemainingI;
9496     uint32_t           gopRemainingP;
9497     uint32_t           gopRemainingB;
9498 } VkVideoEncodeH264GopRemainingFrameInfoKHR;
9499 
9500 
9501 
9502 // VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
9503 #define VK_KHR_video_encode_h265 1
9504 #include "vk_video/vulkan_video_codec_h265std.h"
9505 #include "vk_video/vulkan_video_codec_h265std_encode.h"
9506 #define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
9507 #define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
9508 
9509 typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
9510     VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9511     VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9512     VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
9513     VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
9514     VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9515     VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9516     VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9517     VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
9518     VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
9519     VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
9520     VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000400,
9521     VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9522 } VkVideoEncodeH265CapabilityFlagBitsKHR;
9523 typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
9524 
9525 typedef enum VkVideoEncodeH265StdFlagBitsKHR {
9526     VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9527     VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
9528     VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9529     VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
9530     VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
9531     VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9532     VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9533     VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
9534     VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
9535     VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
9536     VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
9537     VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
9538     VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
9539     VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
9540     VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9541     VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
9542     VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
9543     VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
9544     VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
9545     VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9546     VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9547     VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9548 } VkVideoEncodeH265StdFlagBitsKHR;
9549 typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
9550 
9551 typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
9552     VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
9553     VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
9554     VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
9555     VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9556 } VkVideoEncodeH265CtbSizeFlagBitsKHR;
9557 typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
9558 
9559 typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
9560     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
9561     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
9562     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
9563     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
9564     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9565 } VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
9566 typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
9567 
9568 typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
9569     VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9570     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9571     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9572     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9573     VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9574     VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9575 } VkVideoEncodeH265RateControlFlagBitsKHR;
9576 typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
9577 typedef struct VkVideoEncodeH265CapabilitiesKHR {
9578     VkStructureType                                sType;
9579     void*                                          pNext;
9580     VkVideoEncodeH265CapabilityFlagsKHR            flags;
9581     StdVideoH265LevelIdc                           maxLevelIdc;
9582     uint32_t                                       maxSliceSegmentCount;
9583     VkExtent2D                                     maxTiles;
9584     VkVideoEncodeH265CtbSizeFlagsKHR               ctbSizes;
9585     VkVideoEncodeH265TransformBlockSizeFlagsKHR    transformBlockSizes;
9586     uint32_t                                       maxPPictureL0ReferenceCount;
9587     uint32_t                                       maxBPictureL0ReferenceCount;
9588     uint32_t                                       maxL1ReferenceCount;
9589     uint32_t                                       maxSubLayerCount;
9590     VkBool32                                       expectDyadicTemporalSubLayerPattern;
9591     int32_t                                        minQp;
9592     int32_t                                        maxQp;
9593     VkBool32                                       prefersGopRemainingFrames;
9594     VkBool32                                       requiresGopRemainingFrames;
9595     VkVideoEncodeH265StdFlagsKHR                   stdSyntaxFlags;
9596 } VkVideoEncodeH265CapabilitiesKHR;
9597 
9598 typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
9599     VkStructureType         sType;
9600     const void*             pNext;
9601     VkBool32                useMaxLevelIdc;
9602     StdVideoH265LevelIdc    maxLevelIdc;
9603 } VkVideoEncodeH265SessionCreateInfoKHR;
9604 
9605 typedef struct VkVideoEncodeH265QpKHR {
9606     int32_t    qpI;
9607     int32_t    qpP;
9608     int32_t    qpB;
9609 } VkVideoEncodeH265QpKHR;
9610 
9611 typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
9612     VkStructureType                         sType;
9613     void*                                   pNext;
9614     VkVideoEncodeH265RateControlFlagsKHR    preferredRateControlFlags;
9615     uint32_t                                preferredGopFrameCount;
9616     uint32_t                                preferredIdrPeriod;
9617     uint32_t                                preferredConsecutiveBFrameCount;
9618     uint32_t                                preferredSubLayerCount;
9619     VkVideoEncodeH265QpKHR                  preferredConstantQp;
9620     uint32_t                                preferredMaxL0ReferenceCount;
9621     uint32_t                                preferredMaxL1ReferenceCount;
9622 } VkVideoEncodeH265QualityLevelPropertiesKHR;
9623 
9624 typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
9625     VkStructureType                            sType;
9626     const void*                                pNext;
9627     uint32_t                                   stdVPSCount;
9628     const StdVideoH265VideoParameterSet*       pStdVPSs;
9629     uint32_t                                   stdSPSCount;
9630     const StdVideoH265SequenceParameterSet*    pStdSPSs;
9631     uint32_t                                   stdPPSCount;
9632     const StdVideoH265PictureParameterSet*     pStdPPSs;
9633 } VkVideoEncodeH265SessionParametersAddInfoKHR;
9634 
9635 typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
9636     VkStructureType                                        sType;
9637     const void*                                            pNext;
9638     uint32_t                                               maxStdVPSCount;
9639     uint32_t                                               maxStdSPSCount;
9640     uint32_t                                               maxStdPPSCount;
9641     const VkVideoEncodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
9642 } VkVideoEncodeH265SessionParametersCreateInfoKHR;
9643 
9644 typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
9645     VkStructureType    sType;
9646     const void*        pNext;
9647     VkBool32           writeStdVPS;
9648     VkBool32           writeStdSPS;
9649     VkBool32           writeStdPPS;
9650     uint32_t           stdVPSId;
9651     uint32_t           stdSPSId;
9652     uint32_t           stdPPSId;
9653 } VkVideoEncodeH265SessionParametersGetInfoKHR;
9654 
9655 typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
9656     VkStructureType    sType;
9657     void*              pNext;
9658     VkBool32           hasStdVPSOverrides;
9659     VkBool32           hasStdSPSOverrides;
9660     VkBool32           hasStdPPSOverrides;
9661 } VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
9662 
9663 typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
9664     VkStructureType                                sType;
9665     const void*                                    pNext;
9666     int32_t                                        constantQp;
9667     const StdVideoEncodeH265SliceSegmentHeader*    pStdSliceSegmentHeader;
9668 } VkVideoEncodeH265NaluSliceSegmentInfoKHR;
9669 
9670 typedef struct VkVideoEncodeH265PictureInfoKHR {
9671     VkStructureType                                    sType;
9672     const void*                                        pNext;
9673     uint32_t                                           naluSliceSegmentEntryCount;
9674     const VkVideoEncodeH265NaluSliceSegmentInfoKHR*    pNaluSliceSegmentEntries;
9675     const StdVideoEncodeH265PictureInfo*               pStdPictureInfo;
9676 } VkVideoEncodeH265PictureInfoKHR;
9677 
9678 typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
9679     VkStructureType                           sType;
9680     const void*                               pNext;
9681     const StdVideoEncodeH265ReferenceInfo*    pStdReferenceInfo;
9682 } VkVideoEncodeH265DpbSlotInfoKHR;
9683 
9684 typedef struct VkVideoEncodeH265ProfileInfoKHR {
9685     VkStructureType           sType;
9686     const void*               pNext;
9687     StdVideoH265ProfileIdc    stdProfileIdc;
9688 } VkVideoEncodeH265ProfileInfoKHR;
9689 
9690 typedef struct VkVideoEncodeH265RateControlInfoKHR {
9691     VkStructureType                         sType;
9692     const void*                             pNext;
9693     VkVideoEncodeH265RateControlFlagsKHR    flags;
9694     uint32_t                                gopFrameCount;
9695     uint32_t                                idrPeriod;
9696     uint32_t                                consecutiveBFrameCount;
9697     uint32_t                                subLayerCount;
9698 } VkVideoEncodeH265RateControlInfoKHR;
9699 
9700 typedef struct VkVideoEncodeH265FrameSizeKHR {
9701     uint32_t    frameISize;
9702     uint32_t    framePSize;
9703     uint32_t    frameBSize;
9704 } VkVideoEncodeH265FrameSizeKHR;
9705 
9706 typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
9707     VkStructureType                  sType;
9708     const void*                      pNext;
9709     VkBool32                         useMinQp;
9710     VkVideoEncodeH265QpKHR           minQp;
9711     VkBool32                         useMaxQp;
9712     VkVideoEncodeH265QpKHR           maxQp;
9713     VkBool32                         useMaxFrameSize;
9714     VkVideoEncodeH265FrameSizeKHR    maxFrameSize;
9715 } VkVideoEncodeH265RateControlLayerInfoKHR;
9716 
9717 typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
9718     VkStructureType    sType;
9719     const void*        pNext;
9720     VkBool32           useGopRemainingFrames;
9721     uint32_t           gopRemainingI;
9722     uint32_t           gopRemainingP;
9723     uint32_t           gopRemainingB;
9724 } VkVideoEncodeH265GopRemainingFrameInfoKHR;
9725 
9726 
9727 
9728 // VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
9729 #define VK_KHR_video_decode_h264 1
9730 #include "vk_video/vulkan_video_codec_h264std_decode.h"
9731 #define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
9732 #define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
9733 
9734 typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
9735     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
9736     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
9737     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
9738     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9739 } VkVideoDecodeH264PictureLayoutFlagBitsKHR;
9740 typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
9741 typedef struct VkVideoDecodeH264ProfileInfoKHR {
9742     VkStructureType                              sType;
9743     const void*                                  pNext;
9744     StdVideoH264ProfileIdc                       stdProfileIdc;
9745     VkVideoDecodeH264PictureLayoutFlagBitsKHR    pictureLayout;
9746 } VkVideoDecodeH264ProfileInfoKHR;
9747 
9748 typedef struct VkVideoDecodeH264CapabilitiesKHR {
9749     VkStructureType         sType;
9750     void*                   pNext;
9751     StdVideoH264LevelIdc    maxLevelIdc;
9752     VkOffset2D              fieldOffsetGranularity;
9753 } VkVideoDecodeH264CapabilitiesKHR;
9754 
9755 typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
9756     VkStructureType                            sType;
9757     const void*                                pNext;
9758     uint32_t                                   stdSPSCount;
9759     const StdVideoH264SequenceParameterSet*    pStdSPSs;
9760     uint32_t                                   stdPPSCount;
9761     const StdVideoH264PictureParameterSet*     pStdPPSs;
9762 } VkVideoDecodeH264SessionParametersAddInfoKHR;
9763 
9764 typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
9765     VkStructureType                                        sType;
9766     const void*                                            pNext;
9767     uint32_t                                               maxStdSPSCount;
9768     uint32_t                                               maxStdPPSCount;
9769     const VkVideoDecodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
9770 } VkVideoDecodeH264SessionParametersCreateInfoKHR;
9771 
9772 typedef struct VkVideoDecodeH264PictureInfoKHR {
9773     VkStructureType                         sType;
9774     const void*                             pNext;
9775     const StdVideoDecodeH264PictureInfo*    pStdPictureInfo;
9776     uint32_t                                sliceCount;
9777     const uint32_t*                         pSliceOffsets;
9778 } VkVideoDecodeH264PictureInfoKHR;
9779 
9780 typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
9781     VkStructureType                           sType;
9782     const void*                               pNext;
9783     const StdVideoDecodeH264ReferenceInfo*    pStdReferenceInfo;
9784 } VkVideoDecodeH264DpbSlotInfoKHR;
9785 
9786 
9787 
9788 // VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
9789 #define VK_KHR_dynamic_rendering 1
9790 #define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
9791 #define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
9792 typedef VkRenderingFlags VkRenderingFlagsKHR;
9793 
9794 typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
9795 
9796 typedef VkRenderingInfo VkRenderingInfoKHR;
9797 
9798 typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
9799 
9800 typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
9801 
9802 typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
9803 
9804 typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
9805 
9806 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
9807 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer                   commandBuffer);
9808 
9809 #ifndef VK_NO_PROTOTYPES
9810 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
9811     VkCommandBuffer                             commandBuffer,
9812     const VkRenderingInfo*                      pRenderingInfo);
9813 
9814 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
9815     VkCommandBuffer                             commandBuffer);
9816 #endif
9817 
9818 
9819 // VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
9820 #define VK_KHR_multiview 1
9821 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
9822 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
9823 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
9824 
9825 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
9826 
9827 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
9828 
9829 
9830 
9831 // VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
9832 #define VK_KHR_get_physical_device_properties2 1
9833 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
9834 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
9835 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
9836 
9837 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
9838 
9839 typedef VkFormatProperties2 VkFormatProperties2KHR;
9840 
9841 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
9842 
9843 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
9844 
9845 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
9846 
9847 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
9848 
9849 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
9850 
9851 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
9852 
9853 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
9854 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
9855 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
9856 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
9857 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
9858 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
9859 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
9860 
9861 #ifndef VK_NO_PROTOTYPES
9862 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
9863     VkPhysicalDevice                            physicalDevice,
9864     VkPhysicalDeviceFeatures2*                  pFeatures);
9865 
9866 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
9867     VkPhysicalDevice                            physicalDevice,
9868     VkPhysicalDeviceProperties2*                pProperties);
9869 
9870 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
9871     VkPhysicalDevice                            physicalDevice,
9872     VkFormat                                    format,
9873     VkFormatProperties2*                        pFormatProperties);
9874 
9875 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
9876     VkPhysicalDevice                            physicalDevice,
9877     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
9878     VkImageFormatProperties2*                   pImageFormatProperties);
9879 
9880 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
9881     VkPhysicalDevice                            physicalDevice,
9882     uint32_t*                                   pQueueFamilyPropertyCount,
9883     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
9884 
9885 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
9886     VkPhysicalDevice                            physicalDevice,
9887     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
9888 
9889 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
9890     VkPhysicalDevice                            physicalDevice,
9891     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
9892     uint32_t*                                   pPropertyCount,
9893     VkSparseImageFormatProperties2*             pProperties);
9894 #endif
9895 
9896 
9897 // VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
9898 #define VK_KHR_device_group 1
9899 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  4
9900 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
9901 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
9902 
9903 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
9904 
9905 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
9906 
9907 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
9908 
9909 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
9910 
9911 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
9912 
9913 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
9914 
9915 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
9916 
9917 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
9918 
9919 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
9920 
9921 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
9922 
9923 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
9924 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
9925 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);
9926 
9927 #ifndef VK_NO_PROTOTYPES
9928 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
9929     VkDevice                                    device,
9930     uint32_t                                    heapIndex,
9931     uint32_t                                    localDeviceIndex,
9932     uint32_t                                    remoteDeviceIndex,
9933     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
9934 
9935 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
9936     VkCommandBuffer                             commandBuffer,
9937     uint32_t                                    deviceMask);
9938 
9939 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
9940     VkCommandBuffer                             commandBuffer,
9941     uint32_t                                    baseGroupX,
9942     uint32_t                                    baseGroupY,
9943     uint32_t                                    baseGroupZ,
9944     uint32_t                                    groupCountX,
9945     uint32_t                                    groupCountY,
9946     uint32_t                                    groupCountZ);
9947 #endif
9948 
9949 
9950 // VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
9951 #define VK_KHR_shader_draw_parameters 1
9952 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
9953 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
9954 
9955 
9956 // VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
9957 #define VK_KHR_maintenance1 1
9958 #define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
9959 #define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
9960 // VK_KHR_MAINTENANCE1_SPEC_VERSION is a deprecated alias
9961 #define VK_KHR_MAINTENANCE1_SPEC_VERSION  VK_KHR_MAINTENANCE_1_SPEC_VERSION
9962 // VK_KHR_MAINTENANCE1_EXTENSION_NAME is a deprecated alias
9963 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
9964 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
9965 
9966 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
9967 
9968 #ifndef VK_NO_PROTOTYPES
9969 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
9970     VkDevice                                    device,
9971     VkCommandPool                               commandPool,
9972     VkCommandPoolTrimFlags                      flags);
9973 #endif
9974 
9975 
9976 // VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
9977 #define VK_KHR_device_group_creation 1
9978 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
9979 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
9980 #define VK_MAX_DEVICE_GROUP_SIZE_KHR      VK_MAX_DEVICE_GROUP_SIZE
9981 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
9982 
9983 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
9984 
9985 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
9986 
9987 #ifndef VK_NO_PROTOTYPES
9988 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
9989     VkInstance                                  instance,
9990     uint32_t*                                   pPhysicalDeviceGroupCount,
9991     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
9992 #endif
9993 
9994 
9995 // VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
9996 #define VK_KHR_external_memory_capabilities 1
9997 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
9998 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
9999 #define VK_LUID_SIZE_KHR                  VK_LUID_SIZE
10000 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
10001 
10002 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
10003 
10004 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
10005 
10006 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
10007 
10008 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
10009 
10010 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
10011 
10012 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
10013 
10014 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
10015 
10016 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
10017 
10018 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
10019 
10020 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
10021 
10022 #ifndef VK_NO_PROTOTYPES
10023 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
10024     VkPhysicalDevice                            physicalDevice,
10025     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
10026     VkExternalBufferProperties*                 pExternalBufferProperties);
10027 #endif
10028 
10029 
10030 // VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
10031 #define VK_KHR_external_memory 1
10032 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
10033 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
10034 #define VK_QUEUE_FAMILY_EXTERNAL_KHR      VK_QUEUE_FAMILY_EXTERNAL
10035 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
10036 
10037 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
10038 
10039 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
10040 
10041 
10042 
10043 // VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
10044 #define VK_KHR_external_memory_fd 1
10045 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
10046 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
10047 typedef struct VkImportMemoryFdInfoKHR {
10048     VkStructureType                       sType;
10049     const void*                           pNext;
10050     VkExternalMemoryHandleTypeFlagBits    handleType;
10051     int                                   fd;
10052 } VkImportMemoryFdInfoKHR;
10053 
10054 typedef struct VkMemoryFdPropertiesKHR {
10055     VkStructureType    sType;
10056     void*              pNext;
10057     uint32_t           memoryTypeBits;
10058 } VkMemoryFdPropertiesKHR;
10059 
10060 typedef struct VkMemoryGetFdInfoKHR {
10061     VkStructureType                       sType;
10062     const void*                           pNext;
10063     VkDeviceMemory                        memory;
10064     VkExternalMemoryHandleTypeFlagBits    handleType;
10065 } VkMemoryGetFdInfoKHR;
10066 
10067 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
10068 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
10069 
10070 #ifndef VK_NO_PROTOTYPES
10071 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
10072     VkDevice                                    device,
10073     const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
10074     int*                                        pFd);
10075 
10076 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
10077     VkDevice                                    device,
10078     VkExternalMemoryHandleTypeFlagBits          handleType,
10079     int                                         fd,
10080     VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
10081 #endif
10082 
10083 
10084 // VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
10085 #define VK_KHR_external_semaphore_capabilities 1
10086 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
10087 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
10088 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
10089 
10090 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
10091 
10092 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
10093 
10094 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
10095 
10096 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
10097 
10098 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
10099 
10100 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
10101 
10102 #ifndef VK_NO_PROTOTYPES
10103 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
10104     VkPhysicalDevice                            physicalDevice,
10105     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10106     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
10107 #endif
10108 
10109 
10110 // VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
10111 #define VK_KHR_external_semaphore 1
10112 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
10113 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
10114 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
10115 
10116 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
10117 
10118 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
10119 
10120 
10121 
10122 // VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
10123 #define VK_KHR_external_semaphore_fd 1
10124 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
10125 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
10126 typedef struct VkImportSemaphoreFdInfoKHR {
10127     VkStructureType                          sType;
10128     const void*                              pNext;
10129     VkSemaphore                              semaphore;
10130     VkSemaphoreImportFlags                   flags;
10131     VkExternalSemaphoreHandleTypeFlagBits    handleType;
10132     int                                      fd;
10133 } VkImportSemaphoreFdInfoKHR;
10134 
10135 typedef struct VkSemaphoreGetFdInfoKHR {
10136     VkStructureType                          sType;
10137     const void*                              pNext;
10138     VkSemaphore                              semaphore;
10139     VkExternalSemaphoreHandleTypeFlagBits    handleType;
10140 } VkSemaphoreGetFdInfoKHR;
10141 
10142 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10143 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
10144 
10145 #ifndef VK_NO_PROTOTYPES
10146 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
10147     VkDevice                                    device,
10148     const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
10149 
10150 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
10151     VkDevice                                    device,
10152     const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
10153     int*                                        pFd);
10154 #endif
10155 
10156 
10157 // VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
10158 #define VK_KHR_push_descriptor 1
10159 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
10160 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
10161 typedef VkPhysicalDevicePushDescriptorProperties VkPhysicalDevicePushDescriptorPropertiesKHR;
10162 
10163 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
10164 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
10165 
10166 #ifndef VK_NO_PROTOTYPES
10167 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
10168     VkCommandBuffer                             commandBuffer,
10169     VkPipelineBindPoint                         pipelineBindPoint,
10170     VkPipelineLayout                            layout,
10171     uint32_t                                    set,
10172     uint32_t                                    descriptorWriteCount,
10173     const VkWriteDescriptorSet*                 pDescriptorWrites);
10174 
10175 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
10176     VkCommandBuffer                             commandBuffer,
10177     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
10178     VkPipelineLayout                            layout,
10179     uint32_t                                    set,
10180     const void*                                 pData);
10181 #endif
10182 
10183 
10184 // VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
10185 #define VK_KHR_shader_float16_int8 1
10186 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
10187 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
10188 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
10189 
10190 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
10191 
10192 
10193 
10194 // VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
10195 #define VK_KHR_16bit_storage 1
10196 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
10197 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
10198 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
10199 
10200 
10201 
10202 // VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
10203 #define VK_KHR_incremental_present 1
10204 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
10205 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
10206 typedef struct VkRectLayerKHR {
10207     VkOffset2D    offset;
10208     VkExtent2D    extent;
10209     uint32_t      layer;
10210 } VkRectLayerKHR;
10211 
10212 typedef struct VkPresentRegionKHR {
10213     uint32_t                 rectangleCount;
10214     const VkRectLayerKHR*    pRectangles;
10215 } VkPresentRegionKHR;
10216 
10217 typedef struct VkPresentRegionsKHR {
10218     VkStructureType              sType;
10219     const void*                  pNext;
10220     uint32_t                     swapchainCount;
10221     const VkPresentRegionKHR*    pRegions;
10222 } VkPresentRegionsKHR;
10223 
10224 
10225 
10226 // VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
10227 #define VK_KHR_descriptor_update_template 1
10228 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
10229 
10230 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
10231 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
10232 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
10233 
10234 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
10235 
10236 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
10237 
10238 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
10239 
10240 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10241 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
10242 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
10243 
10244 #ifndef VK_NO_PROTOTYPES
10245 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
10246     VkDevice                                    device,
10247     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10248     const VkAllocationCallbacks*                pAllocator,
10249     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
10250 
10251 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
10252     VkDevice                                    device,
10253     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
10254     const VkAllocationCallbacks*                pAllocator);
10255 
10256 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
10257     VkDevice                                    device,
10258     VkDescriptorSet                             descriptorSet,
10259     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
10260     const void*                                 pData);
10261 #endif
10262 
10263 
10264 // VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
10265 #define VK_KHR_imageless_framebuffer 1
10266 #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
10267 #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
10268 typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
10269 
10270 typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
10271 
10272 typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
10273 
10274 typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
10275 
10276 
10277 
10278 // VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
10279 #define VK_KHR_create_renderpass2 1
10280 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
10281 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
10282 typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
10283 
10284 typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
10285 
10286 typedef VkAttachmentReference2 VkAttachmentReference2KHR;
10287 
10288 typedef VkSubpassDescription2 VkSubpassDescription2KHR;
10289 
10290 typedef VkSubpassDependency2 VkSubpassDependency2KHR;
10291 
10292 typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
10293 
10294 typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
10295 
10296 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
10297 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
10298 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
10299 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
10300 
10301 #ifndef VK_NO_PROTOTYPES
10302 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
10303     VkDevice                                    device,
10304     const VkRenderPassCreateInfo2*              pCreateInfo,
10305     const VkAllocationCallbacks*                pAllocator,
10306     VkRenderPass*                               pRenderPass);
10307 
10308 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
10309     VkCommandBuffer                             commandBuffer,
10310     const VkRenderPassBeginInfo*                pRenderPassBegin,
10311     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
10312 
10313 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
10314     VkCommandBuffer                             commandBuffer,
10315     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
10316     const VkSubpassEndInfo*                     pSubpassEndInfo);
10317 
10318 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
10319     VkCommandBuffer                             commandBuffer,
10320     const VkSubpassEndInfo*                     pSubpassEndInfo);
10321 #endif
10322 
10323 
10324 // VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
10325 #define VK_KHR_shared_presentable_image 1
10326 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
10327 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
10328 typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
10329     VkStructureType      sType;
10330     void*                pNext;
10331     VkImageUsageFlags    sharedPresentSupportedUsageFlags;
10332 } VkSharedPresentSurfaceCapabilitiesKHR;
10333 
10334 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
10335 
10336 #ifndef VK_NO_PROTOTYPES
10337 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
10338     VkDevice                                    device,
10339     VkSwapchainKHR                              swapchain);
10340 #endif
10341 
10342 
10343 // VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
10344 #define VK_KHR_external_fence_capabilities 1
10345 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
10346 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
10347 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
10348 
10349 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
10350 
10351 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
10352 
10353 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
10354 
10355 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
10356 
10357 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
10358 
10359 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
10360 
10361 #ifndef VK_NO_PROTOTYPES
10362 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
10363     VkPhysicalDevice                            physicalDevice,
10364     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
10365     VkExternalFenceProperties*                  pExternalFenceProperties);
10366 #endif
10367 
10368 
10369 // VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
10370 #define VK_KHR_external_fence 1
10371 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
10372 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
10373 typedef VkFenceImportFlags VkFenceImportFlagsKHR;
10374 
10375 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
10376 
10377 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
10378 
10379 
10380 
10381 // VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
10382 #define VK_KHR_external_fence_fd 1
10383 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
10384 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
10385 typedef struct VkImportFenceFdInfoKHR {
10386     VkStructureType                      sType;
10387     const void*                          pNext;
10388     VkFence                              fence;
10389     VkFenceImportFlags                   flags;
10390     VkExternalFenceHandleTypeFlagBits    handleType;
10391     int                                  fd;
10392 } VkImportFenceFdInfoKHR;
10393 
10394 typedef struct VkFenceGetFdInfoKHR {
10395     VkStructureType                      sType;
10396     const void*                          pNext;
10397     VkFence                              fence;
10398     VkExternalFenceHandleTypeFlagBits    handleType;
10399 } VkFenceGetFdInfoKHR;
10400 
10401 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10402 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
10403 
10404 #ifndef VK_NO_PROTOTYPES
10405 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
10406     VkDevice                                    device,
10407     const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
10408 
10409 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
10410     VkDevice                                    device,
10411     const VkFenceGetFdInfoKHR*                  pGetFdInfo,
10412     int*                                        pFd);
10413 #endif
10414 
10415 
10416 // VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
10417 #define VK_KHR_performance_query 1
10418 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
10419 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
10420 
10421 typedef enum VkPerformanceCounterUnitKHR {
10422     VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
10423     VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
10424     VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
10425     VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
10426     VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
10427     VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
10428     VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
10429     VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
10430     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
10431     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
10432     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
10433     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
10434 } VkPerformanceCounterUnitKHR;
10435 
10436 typedef enum VkPerformanceCounterScopeKHR {
10437     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
10438     VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
10439     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
10440   // VK_QUERY_SCOPE_COMMAND_BUFFER_KHR is a deprecated alias
10441     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
10442   // VK_QUERY_SCOPE_RENDER_PASS_KHR is a deprecated alias
10443     VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
10444   // VK_QUERY_SCOPE_COMMAND_KHR is a deprecated alias
10445     VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
10446     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
10447 } VkPerformanceCounterScopeKHR;
10448 
10449 typedef enum VkPerformanceCounterStorageKHR {
10450     VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
10451     VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
10452     VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
10453     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
10454     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
10455     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
10456     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
10457 } VkPerformanceCounterStorageKHR;
10458 
10459 typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
10460     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
10461     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
10462   // VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR is a deprecated alias
10463     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
10464   // VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR is a deprecated alias
10465     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
10466     VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10467 } VkPerformanceCounterDescriptionFlagBitsKHR;
10468 typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
10469 
10470 typedef enum VkAcquireProfilingLockFlagBitsKHR {
10471     VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10472 } VkAcquireProfilingLockFlagBitsKHR;
10473 typedef VkFlags VkAcquireProfilingLockFlagsKHR;
10474 typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
10475     VkStructureType    sType;
10476     void*              pNext;
10477     VkBool32           performanceCounterQueryPools;
10478     VkBool32           performanceCounterMultipleQueryPools;
10479 } VkPhysicalDevicePerformanceQueryFeaturesKHR;
10480 
10481 typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
10482     VkStructureType    sType;
10483     void*              pNext;
10484     VkBool32           allowCommandBufferQueryCopies;
10485 } VkPhysicalDevicePerformanceQueryPropertiesKHR;
10486 
10487 typedef struct VkPerformanceCounterKHR {
10488     VkStructureType                   sType;
10489     void*                             pNext;
10490     VkPerformanceCounterUnitKHR       unit;
10491     VkPerformanceCounterScopeKHR      scope;
10492     VkPerformanceCounterStorageKHR    storage;
10493     uint8_t                           uuid[VK_UUID_SIZE];
10494 } VkPerformanceCounterKHR;
10495 
10496 typedef struct VkPerformanceCounterDescriptionKHR {
10497     VkStructureType                            sType;
10498     void*                                      pNext;
10499     VkPerformanceCounterDescriptionFlagsKHR    flags;
10500     char                                       name[VK_MAX_DESCRIPTION_SIZE];
10501     char                                       category[VK_MAX_DESCRIPTION_SIZE];
10502     char                                       description[VK_MAX_DESCRIPTION_SIZE];
10503 } VkPerformanceCounterDescriptionKHR;
10504 
10505 typedef struct VkQueryPoolPerformanceCreateInfoKHR {
10506     VkStructureType    sType;
10507     const void*        pNext;
10508     uint32_t           queueFamilyIndex;
10509     uint32_t           counterIndexCount;
10510     const uint32_t*    pCounterIndices;
10511 } VkQueryPoolPerformanceCreateInfoKHR;
10512 
10513 typedef union VkPerformanceCounterResultKHR {
10514     int32_t     int32;
10515     int64_t     int64;
10516     uint32_t    uint32;
10517     uint64_t    uint64;
10518     float       float32;
10519     double      float64;
10520 } VkPerformanceCounterResultKHR;
10521 
10522 typedef struct VkAcquireProfilingLockInfoKHR {
10523     VkStructureType                   sType;
10524     const void*                       pNext;
10525     VkAcquireProfilingLockFlagsKHR    flags;
10526     uint64_t                          timeout;
10527 } VkAcquireProfilingLockInfoKHR;
10528 
10529 typedef struct VkPerformanceQuerySubmitInfoKHR {
10530     VkStructureType    sType;
10531     const void*        pNext;
10532     uint32_t           counterPassIndex;
10533 } VkPerformanceQuerySubmitInfoKHR;
10534 
10535 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
10536 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
10537 typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
10538 typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
10539 
10540 #ifndef VK_NO_PROTOTYPES
10541 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
10542     VkPhysicalDevice                            physicalDevice,
10543     uint32_t                                    queueFamilyIndex,
10544     uint32_t*                                   pCounterCount,
10545     VkPerformanceCounterKHR*                    pCounters,
10546     VkPerformanceCounterDescriptionKHR*         pCounterDescriptions);
10547 
10548 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
10549     VkPhysicalDevice                            physicalDevice,
10550     const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
10551     uint32_t*                                   pNumPasses);
10552 
10553 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
10554     VkDevice                                    device,
10555     const VkAcquireProfilingLockInfoKHR*        pInfo);
10556 
10557 VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
10558     VkDevice                                    device);
10559 #endif
10560 
10561 
10562 // VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
10563 #define VK_KHR_maintenance2 1
10564 #define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
10565 #define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
10566 // VK_KHR_MAINTENANCE2_SPEC_VERSION is a deprecated alias
10567 #define VK_KHR_MAINTENANCE2_SPEC_VERSION  VK_KHR_MAINTENANCE_2_SPEC_VERSION
10568 // VK_KHR_MAINTENANCE2_EXTENSION_NAME is a deprecated alias
10569 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
10570 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
10571 
10572 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
10573 
10574 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
10575 
10576 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
10577 
10578 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
10579 
10580 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
10581 
10582 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
10583 
10584 
10585 
10586 // VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
10587 #define VK_KHR_get_surface_capabilities2 1
10588 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
10589 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
10590 typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
10591     VkStructureType    sType;
10592     const void*        pNext;
10593     VkSurfaceKHR       surface;
10594 } VkPhysicalDeviceSurfaceInfo2KHR;
10595 
10596 typedef struct VkSurfaceCapabilities2KHR {
10597     VkStructureType             sType;
10598     void*                       pNext;
10599     VkSurfaceCapabilitiesKHR    surfaceCapabilities;
10600 } VkSurfaceCapabilities2KHR;
10601 
10602 typedef struct VkSurfaceFormat2KHR {
10603     VkStructureType       sType;
10604     void*                 pNext;
10605     VkSurfaceFormatKHR    surfaceFormat;
10606 } VkSurfaceFormat2KHR;
10607 
10608 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
10609 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
10610 
10611 #ifndef VK_NO_PROTOTYPES
10612 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
10613     VkPhysicalDevice                            physicalDevice,
10614     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
10615     VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
10616 
10617 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
10618     VkPhysicalDevice                            physicalDevice,
10619     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
10620     uint32_t*                                   pSurfaceFormatCount,
10621     VkSurfaceFormat2KHR*                        pSurfaceFormats);
10622 #endif
10623 
10624 
10625 // VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
10626 #define VK_KHR_variable_pointers 1
10627 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
10628 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
10629 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
10630 
10631 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
10632 
10633 
10634 
10635 // VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
10636 #define VK_KHR_get_display_properties2 1
10637 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
10638 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
10639 typedef struct VkDisplayProperties2KHR {
10640     VkStructureType           sType;
10641     void*                     pNext;
10642     VkDisplayPropertiesKHR    displayProperties;
10643 } VkDisplayProperties2KHR;
10644 
10645 typedef struct VkDisplayPlaneProperties2KHR {
10646     VkStructureType                sType;
10647     void*                          pNext;
10648     VkDisplayPlanePropertiesKHR    displayPlaneProperties;
10649 } VkDisplayPlaneProperties2KHR;
10650 
10651 typedef struct VkDisplayModeProperties2KHR {
10652     VkStructureType               sType;
10653     void*                         pNext;
10654     VkDisplayModePropertiesKHR    displayModeProperties;
10655 } VkDisplayModeProperties2KHR;
10656 
10657 typedef struct VkDisplayPlaneInfo2KHR {
10658     VkStructureType     sType;
10659     const void*         pNext;
10660     VkDisplayModeKHR    mode;
10661     uint32_t            planeIndex;
10662 } VkDisplayPlaneInfo2KHR;
10663 
10664 typedef struct VkDisplayPlaneCapabilities2KHR {
10665     VkStructureType                  sType;
10666     void*                            pNext;
10667     VkDisplayPlaneCapabilitiesKHR    capabilities;
10668 } VkDisplayPlaneCapabilities2KHR;
10669 
10670 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
10671 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
10672 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
10673 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
10674 
10675 #ifndef VK_NO_PROTOTYPES
10676 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
10677     VkPhysicalDevice                            physicalDevice,
10678     uint32_t*                                   pPropertyCount,
10679     VkDisplayProperties2KHR*                    pProperties);
10680 
10681 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
10682     VkPhysicalDevice                            physicalDevice,
10683     uint32_t*                                   pPropertyCount,
10684     VkDisplayPlaneProperties2KHR*               pProperties);
10685 
10686 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
10687     VkPhysicalDevice                            physicalDevice,
10688     VkDisplayKHR                                display,
10689     uint32_t*                                   pPropertyCount,
10690     VkDisplayModeProperties2KHR*                pProperties);
10691 
10692 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
10693     VkPhysicalDevice                            physicalDevice,
10694     const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
10695     VkDisplayPlaneCapabilities2KHR*             pCapabilities);
10696 #endif
10697 
10698 
10699 // VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
10700 #define VK_KHR_dedicated_allocation 1
10701 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
10702 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
10703 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
10704 
10705 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
10706 
10707 
10708 
10709 // VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
10710 #define VK_KHR_storage_buffer_storage_class 1
10711 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
10712 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
10713 
10714 
10715 // VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
10716 #define VK_KHR_relaxed_block_layout 1
10717 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
10718 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
10719 
10720 
10721 // VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
10722 #define VK_KHR_get_memory_requirements2 1
10723 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
10724 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
10725 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
10726 
10727 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
10728 
10729 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
10730 
10731 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
10732 
10733 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
10734 
10735 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
10736 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
10737 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
10738 
10739 #ifndef VK_NO_PROTOTYPES
10740 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
10741     VkDevice                                    device,
10742     const VkImageMemoryRequirementsInfo2*       pInfo,
10743     VkMemoryRequirements2*                      pMemoryRequirements);
10744 
10745 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
10746     VkDevice                                    device,
10747     const VkBufferMemoryRequirementsInfo2*      pInfo,
10748     VkMemoryRequirements2*                      pMemoryRequirements);
10749 
10750 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
10751     VkDevice                                    device,
10752     const VkImageSparseMemoryRequirementsInfo2* pInfo,
10753     uint32_t*                                   pSparseMemoryRequirementCount,
10754     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
10755 #endif
10756 
10757 
10758 // VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
10759 #define VK_KHR_image_format_list 1
10760 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
10761 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
10762 typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
10763 
10764 
10765 
10766 // VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
10767 #define VK_KHR_sampler_ycbcr_conversion 1
10768 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
10769 
10770 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
10771 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
10772 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
10773 
10774 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
10775 
10776 typedef VkChromaLocation VkChromaLocationKHR;
10777 
10778 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
10779 
10780 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
10781 
10782 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
10783 
10784 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
10785 
10786 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
10787 
10788 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
10789 
10790 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
10791 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
10792 
10793 #ifndef VK_NO_PROTOTYPES
10794 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
10795     VkDevice                                    device,
10796     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
10797     const VkAllocationCallbacks*                pAllocator,
10798     VkSamplerYcbcrConversion*                   pYcbcrConversion);
10799 
10800 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
10801     VkDevice                                    device,
10802     VkSamplerYcbcrConversion                    ycbcrConversion,
10803     const VkAllocationCallbacks*                pAllocator);
10804 #endif
10805 
10806 
10807 // VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
10808 #define VK_KHR_bind_memory2 1
10809 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
10810 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
10811 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
10812 
10813 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
10814 
10815 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
10816 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
10817 
10818 #ifndef VK_NO_PROTOTYPES
10819 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
10820     VkDevice                                    device,
10821     uint32_t                                    bindInfoCount,
10822     const VkBindBufferMemoryInfo*               pBindInfos);
10823 
10824 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
10825     VkDevice                                    device,
10826     uint32_t                                    bindInfoCount,
10827     const VkBindImageMemoryInfo*                pBindInfos);
10828 #endif
10829 
10830 
10831 // VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
10832 #define VK_KHR_maintenance3 1
10833 #define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
10834 #define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
10835 // VK_KHR_MAINTENANCE3_SPEC_VERSION is a deprecated alias
10836 #define VK_KHR_MAINTENANCE3_SPEC_VERSION  VK_KHR_MAINTENANCE_3_SPEC_VERSION
10837 // VK_KHR_MAINTENANCE3_EXTENSION_NAME is a deprecated alias
10838 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
10839 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
10840 
10841 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
10842 
10843 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
10844 
10845 #ifndef VK_NO_PROTOTYPES
10846 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
10847     VkDevice                                    device,
10848     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
10849     VkDescriptorSetLayoutSupport*               pSupport);
10850 #endif
10851 
10852 
10853 // VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
10854 #define VK_KHR_draw_indirect_count 1
10855 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
10856 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
10857 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
10858 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
10859 
10860 #ifndef VK_NO_PROTOTYPES
10861 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
10862     VkCommandBuffer                             commandBuffer,
10863     VkBuffer                                    buffer,
10864     VkDeviceSize                                offset,
10865     VkBuffer                                    countBuffer,
10866     VkDeviceSize                                countBufferOffset,
10867     uint32_t                                    maxDrawCount,
10868     uint32_t                                    stride);
10869 
10870 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
10871     VkCommandBuffer                             commandBuffer,
10872     VkBuffer                                    buffer,
10873     VkDeviceSize                                offset,
10874     VkBuffer                                    countBuffer,
10875     VkDeviceSize                                countBufferOffset,
10876     uint32_t                                    maxDrawCount,
10877     uint32_t                                    stride);
10878 #endif
10879 
10880 
10881 // VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
10882 #define VK_KHR_shader_subgroup_extended_types 1
10883 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
10884 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
10885 typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
10886 
10887 
10888 
10889 // VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
10890 #define VK_KHR_8bit_storage 1
10891 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1
10892 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
10893 typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
10894 
10895 
10896 
10897 // VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
10898 #define VK_KHR_shader_atomic_int64 1
10899 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
10900 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
10901 typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
10902 
10903 
10904 
10905 // VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
10906 #define VK_KHR_shader_clock 1
10907 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION  1
10908 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
10909 typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
10910     VkStructureType    sType;
10911     void*              pNext;
10912     VkBool32           shaderSubgroupClock;
10913     VkBool32           shaderDeviceClock;
10914 } VkPhysicalDeviceShaderClockFeaturesKHR;
10915 
10916 
10917 
10918 // VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
10919 #define VK_KHR_video_decode_h265 1
10920 #include "vk_video/vulkan_video_codec_h265std_decode.h"
10921 #define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
10922 #define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
10923 typedef struct VkVideoDecodeH265ProfileInfoKHR {
10924     VkStructureType           sType;
10925     const void*               pNext;
10926     StdVideoH265ProfileIdc    stdProfileIdc;
10927 } VkVideoDecodeH265ProfileInfoKHR;
10928 
10929 typedef struct VkVideoDecodeH265CapabilitiesKHR {
10930     VkStructureType         sType;
10931     void*                   pNext;
10932     StdVideoH265LevelIdc    maxLevelIdc;
10933 } VkVideoDecodeH265CapabilitiesKHR;
10934 
10935 typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
10936     VkStructureType                            sType;
10937     const void*                                pNext;
10938     uint32_t                                   stdVPSCount;
10939     const StdVideoH265VideoParameterSet*       pStdVPSs;
10940     uint32_t                                   stdSPSCount;
10941     const StdVideoH265SequenceParameterSet*    pStdSPSs;
10942     uint32_t                                   stdPPSCount;
10943     const StdVideoH265PictureParameterSet*     pStdPPSs;
10944 } VkVideoDecodeH265SessionParametersAddInfoKHR;
10945 
10946 typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
10947     VkStructureType                                        sType;
10948     const void*                                            pNext;
10949     uint32_t                                               maxStdVPSCount;
10950     uint32_t                                               maxStdSPSCount;
10951     uint32_t                                               maxStdPPSCount;
10952     const VkVideoDecodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
10953 } VkVideoDecodeH265SessionParametersCreateInfoKHR;
10954 
10955 typedef struct VkVideoDecodeH265PictureInfoKHR {
10956     VkStructureType                         sType;
10957     const void*                             pNext;
10958     const StdVideoDecodeH265PictureInfo*    pStdPictureInfo;
10959     uint32_t                                sliceSegmentCount;
10960     const uint32_t*                         pSliceSegmentOffsets;
10961 } VkVideoDecodeH265PictureInfoKHR;
10962 
10963 typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
10964     VkStructureType                           sType;
10965     const void*                               pNext;
10966     const StdVideoDecodeH265ReferenceInfo*    pStdReferenceInfo;
10967 } VkVideoDecodeH265DpbSlotInfoKHR;
10968 
10969 
10970 
10971 // VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
10972 #define VK_KHR_global_priority 1
10973 #define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
10974 #define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
10975 #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR   VK_MAX_GLOBAL_PRIORITY_SIZE
10976 typedef VkQueueGlobalPriority VkQueueGlobalPriorityKHR;
10977 
10978 typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoKHR;
10979 
10980 typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
10981 
10982 typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesKHR;
10983 
10984 
10985 
10986 // VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
10987 #define VK_KHR_driver_properties 1
10988 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
10989 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
10990 #define VK_MAX_DRIVER_NAME_SIZE_KHR       VK_MAX_DRIVER_NAME_SIZE
10991 #define VK_MAX_DRIVER_INFO_SIZE_KHR       VK_MAX_DRIVER_INFO_SIZE
10992 typedef VkDriverId VkDriverIdKHR;
10993 
10994 typedef VkConformanceVersion VkConformanceVersionKHR;
10995 
10996 typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
10997 
10998 
10999 
11000 // VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
11001 #define VK_KHR_shader_float_controls 1
11002 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
11003 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
11004 typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
11005 
11006 typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
11007 
11008 
11009 
11010 // VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
11011 #define VK_KHR_depth_stencil_resolve 1
11012 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
11013 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
11014 typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
11015 
11016 typedef VkResolveModeFlags VkResolveModeFlagsKHR;
11017 
11018 typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
11019 
11020 typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
11021 
11022 
11023 
11024 // VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
11025 #define VK_KHR_swapchain_mutable_format 1
11026 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
11027 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
11028 
11029 
11030 // VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
11031 #define VK_KHR_timeline_semaphore 1
11032 #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
11033 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
11034 typedef VkSemaphoreType VkSemaphoreTypeKHR;
11035 
11036 typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
11037 
11038 typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
11039 
11040 typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
11041 
11042 typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
11043 
11044 typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
11045 
11046 typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
11047 
11048 typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
11049 
11050 typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
11051 
11052 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
11053 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
11054 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
11055 
11056 #ifndef VK_NO_PROTOTYPES
11057 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
11058     VkDevice                                    device,
11059     VkSemaphore                                 semaphore,
11060     uint64_t*                                   pValue);
11061 
11062 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
11063     VkDevice                                    device,
11064     const VkSemaphoreWaitInfo*                  pWaitInfo,
11065     uint64_t                                    timeout);
11066 
11067 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
11068     VkDevice                                    device,
11069     const VkSemaphoreSignalInfo*                pSignalInfo);
11070 #endif
11071 
11072 
11073 // VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
11074 #define VK_KHR_vulkan_memory_model 1
11075 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
11076 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
11077 typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
11078 
11079 
11080 
11081 // VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
11082 #define VK_KHR_shader_terminate_invocation 1
11083 #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
11084 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
11085 typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
11086 
11087 
11088 
11089 // VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
11090 #define VK_KHR_fragment_shading_rate 1
11091 #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
11092 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
11093 
11094 typedef enum VkFragmentShadingRateCombinerOpKHR {
11095     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
11096     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
11097     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
11098     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
11099     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
11100     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
11101 } VkFragmentShadingRateCombinerOpKHR;
11102 typedef struct VkFragmentShadingRateAttachmentInfoKHR {
11103     VkStructureType                  sType;
11104     const void*                      pNext;
11105     const VkAttachmentReference2*    pFragmentShadingRateAttachment;
11106     VkExtent2D                       shadingRateAttachmentTexelSize;
11107 } VkFragmentShadingRateAttachmentInfoKHR;
11108 
11109 typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
11110     VkStructureType                       sType;
11111     const void*                           pNext;
11112     VkExtent2D                            fragmentSize;
11113     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
11114 } VkPipelineFragmentShadingRateStateCreateInfoKHR;
11115 
11116 typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
11117     VkStructureType    sType;
11118     void*              pNext;
11119     VkBool32           pipelineFragmentShadingRate;
11120     VkBool32           primitiveFragmentShadingRate;
11121     VkBool32           attachmentFragmentShadingRate;
11122 } VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
11123 
11124 typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
11125     VkStructureType          sType;
11126     void*                    pNext;
11127     VkExtent2D               minFragmentShadingRateAttachmentTexelSize;
11128     VkExtent2D               maxFragmentShadingRateAttachmentTexelSize;
11129     uint32_t                 maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
11130     VkBool32                 primitiveFragmentShadingRateWithMultipleViewports;
11131     VkBool32                 layeredShadingRateAttachments;
11132     VkBool32                 fragmentShadingRateNonTrivialCombinerOps;
11133     VkExtent2D               maxFragmentSize;
11134     uint32_t                 maxFragmentSizeAspectRatio;
11135     uint32_t                 maxFragmentShadingRateCoverageSamples;
11136     VkSampleCountFlagBits    maxFragmentShadingRateRasterizationSamples;
11137     VkBool32                 fragmentShadingRateWithShaderDepthStencilWrites;
11138     VkBool32                 fragmentShadingRateWithSampleMask;
11139     VkBool32                 fragmentShadingRateWithShaderSampleMask;
11140     VkBool32                 fragmentShadingRateWithConservativeRasterization;
11141     VkBool32                 fragmentShadingRateWithFragmentShaderInterlock;
11142     VkBool32                 fragmentShadingRateWithCustomSampleLocations;
11143     VkBool32                 fragmentShadingRateStrictMultiplyCombiner;
11144 } VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
11145 
11146 typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
11147     VkStructureType       sType;
11148     void*                 pNext;
11149     VkSampleCountFlags    sampleCounts;
11150     VkExtent2D            fragmentSize;
11151 } VkPhysicalDeviceFragmentShadingRateKHR;
11152 
11153 typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
11154     VkStructureType    sType;
11155     const void*        pNext;
11156     VkImageView        imageView;
11157     VkImageLayout      imageLayout;
11158     VkExtent2D         shadingRateAttachmentTexelSize;
11159 } VkRenderingFragmentShadingRateAttachmentInfoKHR;
11160 
11161 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11162 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer           commandBuffer, const VkExtent2D*                           pFragmentSize, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
11163 
11164 #ifndef VK_NO_PROTOTYPES
11165 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
11166     VkPhysicalDevice                            physicalDevice,
11167     uint32_t*                                   pFragmentShadingRateCount,
11168     VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates);
11169 
11170 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
11171     VkCommandBuffer                             commandBuffer,
11172     const VkExtent2D*                           pFragmentSize,
11173     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
11174 #endif
11175 
11176 
11177 // VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
11178 #define VK_KHR_dynamic_rendering_local_read 1
11179 #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
11180 #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
11181 typedef VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
11182 
11183 typedef VkRenderingAttachmentLocationInfo VkRenderingAttachmentLocationInfoKHR;
11184 
11185 typedef VkRenderingInputAttachmentIndexInfo VkRenderingInputAttachmentIndexInfoKHR;
11186 
11187 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
11188 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11189 
11190 #ifndef VK_NO_PROTOTYPES
11191 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
11192     VkCommandBuffer                             commandBuffer,
11193     const VkRenderingAttachmentLocationInfo*    pLocationInfo);
11194 
11195 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
11196     VkCommandBuffer                             commandBuffer,
11197     const VkRenderingInputAttachmentIndexInfo*  pInputAttachmentIndexInfo);
11198 #endif
11199 
11200 
11201 // VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
11202 #define VK_KHR_shader_quad_control 1
11203 #define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
11204 #define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
11205 typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
11206     VkStructureType    sType;
11207     void*              pNext;
11208     VkBool32           shaderQuadControl;
11209 } VkPhysicalDeviceShaderQuadControlFeaturesKHR;
11210 
11211 
11212 
11213 // VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
11214 #define VK_KHR_spirv_1_4 1
11215 #define VK_KHR_SPIRV_1_4_SPEC_VERSION     1
11216 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME   "VK_KHR_spirv_1_4"
11217 
11218 
11219 // VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
11220 #define VK_KHR_surface_protected_capabilities 1
11221 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
11222 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
11223 typedef struct VkSurfaceProtectedCapabilitiesKHR {
11224     VkStructureType    sType;
11225     const void*        pNext;
11226     VkBool32           supportsProtected;
11227 } VkSurfaceProtectedCapabilitiesKHR;
11228 
11229 
11230 
11231 // VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
11232 #define VK_KHR_separate_depth_stencil_layouts 1
11233 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
11234 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
11235 typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
11236 
11237 typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
11238 
11239 typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
11240 
11241 
11242 
11243 // VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
11244 #define VK_KHR_present_wait 1
11245 #define VK_KHR_PRESENT_WAIT_SPEC_VERSION  1
11246 #define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
11247 typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
11248     VkStructureType    sType;
11249     void*              pNext;
11250     VkBool32           presentWait;
11251 } VkPhysicalDevicePresentWaitFeaturesKHR;
11252 
11253 typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
11254 
11255 #ifndef VK_NO_PROTOTYPES
11256 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
11257     VkDevice                                    device,
11258     VkSwapchainKHR                              swapchain,
11259     uint64_t                                    presentId,
11260     uint64_t                                    timeout);
11261 #endif
11262 
11263 
11264 // VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
11265 #define VK_KHR_uniform_buffer_standard_layout 1
11266 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
11267 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
11268 typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
11269 
11270 
11271 
11272 // VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
11273 #define VK_KHR_buffer_device_address 1
11274 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
11275 #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
11276 typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
11277 
11278 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
11279 
11280 typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
11281 
11282 typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
11283 
11284 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
11285 
11286 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11287 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11288 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11289 
11290 #ifndef VK_NO_PROTOTYPES
11291 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
11292     VkDevice                                    device,
11293     const VkBufferDeviceAddressInfo*            pInfo);
11294 
11295 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
11296     VkDevice                                    device,
11297     const VkBufferDeviceAddressInfo*            pInfo);
11298 
11299 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
11300     VkDevice                                    device,
11301     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11302 #endif
11303 
11304 
11305 // VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
11306 #define VK_KHR_deferred_host_operations 1
11307 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
11308 #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
11309 #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
11310 typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
11311 typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
11312 typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
11313 typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
11314 typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
11315 
11316 #ifndef VK_NO_PROTOTYPES
11317 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
11318     VkDevice                                    device,
11319     const VkAllocationCallbacks*                pAllocator,
11320     VkDeferredOperationKHR*                     pDeferredOperation);
11321 
11322 VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
11323     VkDevice                                    device,
11324     VkDeferredOperationKHR                      operation,
11325     const VkAllocationCallbacks*                pAllocator);
11326 
11327 VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
11328     VkDevice                                    device,
11329     VkDeferredOperationKHR                      operation);
11330 
11331 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
11332     VkDevice                                    device,
11333     VkDeferredOperationKHR                      operation);
11334 
11335 VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
11336     VkDevice                                    device,
11337     VkDeferredOperationKHR                      operation);
11338 #endif
11339 
11340 
11341 // VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
11342 #define VK_KHR_pipeline_executable_properties 1
11343 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
11344 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
11345 
11346 typedef enum VkPipelineExecutableStatisticFormatKHR {
11347     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
11348     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
11349     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
11350     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
11351     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
11352 } VkPipelineExecutableStatisticFormatKHR;
11353 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11354     VkStructureType    sType;
11355     void*              pNext;
11356     VkBool32           pipelineExecutableInfo;
11357 } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
11358 
11359 typedef struct VkPipelineInfoKHR {
11360     VkStructureType    sType;
11361     const void*        pNext;
11362     VkPipeline         pipeline;
11363 } VkPipelineInfoKHR;
11364 
11365 typedef struct VkPipelineExecutablePropertiesKHR {
11366     VkStructureType       sType;
11367     void*                 pNext;
11368     VkShaderStageFlags    stages;
11369     char                  name[VK_MAX_DESCRIPTION_SIZE];
11370     char                  description[VK_MAX_DESCRIPTION_SIZE];
11371     uint32_t              subgroupSize;
11372 } VkPipelineExecutablePropertiesKHR;
11373 
11374 typedef struct VkPipelineExecutableInfoKHR {
11375     VkStructureType    sType;
11376     const void*        pNext;
11377     VkPipeline         pipeline;
11378     uint32_t           executableIndex;
11379 } VkPipelineExecutableInfoKHR;
11380 
11381 typedef union VkPipelineExecutableStatisticValueKHR {
11382     VkBool32    b32;
11383     int64_t     i64;
11384     uint64_t    u64;
11385     double      f64;
11386 } VkPipelineExecutableStatisticValueKHR;
11387 
11388 typedef struct VkPipelineExecutableStatisticKHR {
11389     VkStructureType                           sType;
11390     void*                                     pNext;
11391     char                                      name[VK_MAX_DESCRIPTION_SIZE];
11392     char                                      description[VK_MAX_DESCRIPTION_SIZE];
11393     VkPipelineExecutableStatisticFormatKHR    format;
11394     VkPipelineExecutableStatisticValueKHR     value;
11395 } VkPipelineExecutableStatisticKHR;
11396 
11397 typedef struct VkPipelineExecutableInternalRepresentationKHR {
11398     VkStructureType    sType;
11399     void*              pNext;
11400     char               name[VK_MAX_DESCRIPTION_SIZE];
11401     char               description[VK_MAX_DESCRIPTION_SIZE];
11402     VkBool32           isText;
11403     size_t             dataSize;
11404     void*              pData;
11405 } VkPipelineExecutableInternalRepresentationKHR;
11406 
11407 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice                        device, const VkPipelineInfoKHR*        pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
11408 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
11409 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
11410 
11411 #ifndef VK_NO_PROTOTYPES
11412 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
11413     VkDevice                                    device,
11414     const VkPipelineInfoKHR*                    pPipelineInfo,
11415     uint32_t*                                   pExecutableCount,
11416     VkPipelineExecutablePropertiesKHR*          pProperties);
11417 
11418 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
11419     VkDevice                                    device,
11420     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
11421     uint32_t*                                   pStatisticCount,
11422     VkPipelineExecutableStatisticKHR*           pStatistics);
11423 
11424 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
11425     VkDevice                                    device,
11426     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
11427     uint32_t*                                   pInternalRepresentationCount,
11428     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
11429 #endif
11430 
11431 
11432 // VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
11433 #define VK_KHR_map_memory2 1
11434 #define VK_KHR_MAP_MEMORY_2_SPEC_VERSION  1
11435 #define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
11436 typedef VkMemoryUnmapFlagBits VkMemoryUnmapFlagBitsKHR;
11437 
11438 typedef VkMemoryUnmapFlags VkMemoryUnmapFlagsKHR;
11439 
11440 typedef VkMemoryMapInfo VkMemoryMapInfoKHR;
11441 
11442 typedef VkMemoryUnmapInfo VkMemoryUnmapInfoKHR;
11443 
11444 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
11445 typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
11446 
11447 #ifndef VK_NO_PROTOTYPES
11448 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
11449     VkDevice                                    device,
11450     const VkMemoryMapInfo*                      pMemoryMapInfo,
11451     void**                                      ppData);
11452 
11453 VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
11454     VkDevice                                    device,
11455     const VkMemoryUnmapInfo*                    pMemoryUnmapInfo);
11456 #endif
11457 
11458 
11459 // VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
11460 #define VK_KHR_shader_integer_dot_product 1
11461 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
11462 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
11463 typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
11464 
11465 typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
11466 
11467 
11468 
11469 // VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
11470 #define VK_KHR_pipeline_library 1
11471 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
11472 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
11473 typedef struct VkPipelineLibraryCreateInfoKHR {
11474     VkStructureType      sType;
11475     const void*          pNext;
11476     uint32_t             libraryCount;
11477     const VkPipeline*    pLibraries;
11478 } VkPipelineLibraryCreateInfoKHR;
11479 
11480 
11481 
11482 // VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
11483 #define VK_KHR_shader_non_semantic_info 1
11484 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
11485 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
11486 
11487 
11488 // VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
11489 #define VK_KHR_present_id 1
11490 #define VK_KHR_PRESENT_ID_SPEC_VERSION    1
11491 #define VK_KHR_PRESENT_ID_EXTENSION_NAME  "VK_KHR_present_id"
11492 typedef struct VkPresentIdKHR {
11493     VkStructureType    sType;
11494     const void*        pNext;
11495     uint32_t           swapchainCount;
11496     const uint64_t*    pPresentIds;
11497 } VkPresentIdKHR;
11498 
11499 typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
11500     VkStructureType    sType;
11501     void*              pNext;
11502     VkBool32           presentId;
11503 } VkPhysicalDevicePresentIdFeaturesKHR;
11504 
11505 
11506 
11507 // VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
11508 #define VK_KHR_video_encode_queue 1
11509 #define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
11510 #define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
11511 
11512 typedef enum VkVideoEncodeTuningModeKHR {
11513     VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
11514     VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
11515     VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
11516     VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
11517     VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
11518     VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
11519 } VkVideoEncodeTuningModeKHR;
11520 
11521 typedef enum VkVideoEncodeFlagBitsKHR {
11522     VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000001,
11523     VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR = 0x00000002,
11524     VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11525 } VkVideoEncodeFlagBitsKHR;
11526 typedef VkFlags VkVideoEncodeFlagsKHR;
11527 
11528 typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
11529     VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
11530     VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
11531     VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000004,
11532     VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR = 0x00000008,
11533     VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11534 } VkVideoEncodeCapabilityFlagBitsKHR;
11535 typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
11536 
11537 typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
11538     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
11539     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
11540     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
11541     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
11542     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11543 } VkVideoEncodeRateControlModeFlagBitsKHR;
11544 typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
11545 
11546 typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
11547     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
11548     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
11549     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
11550     VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11551 } VkVideoEncodeFeedbackFlagBitsKHR;
11552 typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
11553 
11554 typedef enum VkVideoEncodeUsageFlagBitsKHR {
11555     VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
11556     VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
11557     VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
11558     VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
11559     VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
11560     VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11561 } VkVideoEncodeUsageFlagBitsKHR;
11562 typedef VkFlags VkVideoEncodeUsageFlagsKHR;
11563 
11564 typedef enum VkVideoEncodeContentFlagBitsKHR {
11565     VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
11566     VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
11567     VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
11568     VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
11569     VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11570 } VkVideoEncodeContentFlagBitsKHR;
11571 typedef VkFlags VkVideoEncodeContentFlagsKHR;
11572 typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
11573 typedef struct VkVideoEncodeInfoKHR {
11574     VkStructureType                       sType;
11575     const void*                           pNext;
11576     VkVideoEncodeFlagsKHR                 flags;
11577     VkBuffer                              dstBuffer;
11578     VkDeviceSize                          dstBufferOffset;
11579     VkDeviceSize                          dstBufferRange;
11580     VkVideoPictureResourceInfoKHR         srcPictureResource;
11581     const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
11582     uint32_t                              referenceSlotCount;
11583     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
11584     uint32_t                              precedingExternallyEncodedBytes;
11585 } VkVideoEncodeInfoKHR;
11586 
11587 typedef struct VkVideoEncodeCapabilitiesKHR {
11588     VkStructureType                         sType;
11589     void*                                   pNext;
11590     VkVideoEncodeCapabilityFlagsKHR         flags;
11591     VkVideoEncodeRateControlModeFlagsKHR    rateControlModes;
11592     uint32_t                                maxRateControlLayers;
11593     uint64_t                                maxBitrate;
11594     uint32_t                                maxQualityLevels;
11595     VkExtent2D                              encodeInputPictureGranularity;
11596     VkVideoEncodeFeedbackFlagsKHR           supportedEncodeFeedbackFlags;
11597 } VkVideoEncodeCapabilitiesKHR;
11598 
11599 typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
11600     VkStructureType                  sType;
11601     const void*                      pNext;
11602     VkVideoEncodeFeedbackFlagsKHR    encodeFeedbackFlags;
11603 } VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
11604 
11605 typedef struct VkVideoEncodeUsageInfoKHR {
11606     VkStructureType                 sType;
11607     const void*                     pNext;
11608     VkVideoEncodeUsageFlagsKHR      videoUsageHints;
11609     VkVideoEncodeContentFlagsKHR    videoContentHints;
11610     VkVideoEncodeTuningModeKHR      tuningMode;
11611 } VkVideoEncodeUsageInfoKHR;
11612 
11613 typedef struct VkVideoEncodeRateControlLayerInfoKHR {
11614     VkStructureType    sType;
11615     const void*        pNext;
11616     uint64_t           averageBitrate;
11617     uint64_t           maxBitrate;
11618     uint32_t           frameRateNumerator;
11619     uint32_t           frameRateDenominator;
11620 } VkVideoEncodeRateControlLayerInfoKHR;
11621 
11622 typedef struct VkVideoEncodeRateControlInfoKHR {
11623     VkStructureType                                sType;
11624     const void*                                    pNext;
11625     VkVideoEncodeRateControlFlagsKHR               flags;
11626     VkVideoEncodeRateControlModeFlagBitsKHR        rateControlMode;
11627     uint32_t                                       layerCount;
11628     const VkVideoEncodeRateControlLayerInfoKHR*    pLayers;
11629     uint32_t                                       virtualBufferSizeInMs;
11630     uint32_t                                       initialVirtualBufferSizeInMs;
11631 } VkVideoEncodeRateControlInfoKHR;
11632 
11633 typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
11634     VkStructureType                 sType;
11635     const void*                     pNext;
11636     const VkVideoProfileInfoKHR*    pVideoProfile;
11637     uint32_t                        qualityLevel;
11638 } VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
11639 
11640 typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
11641     VkStructureType                            sType;
11642     void*                                      pNext;
11643     VkVideoEncodeRateControlModeFlagBitsKHR    preferredRateControlMode;
11644     uint32_t                                   preferredRateControlLayerCount;
11645 } VkVideoEncodeQualityLevelPropertiesKHR;
11646 
11647 typedef struct VkVideoEncodeQualityLevelInfoKHR {
11648     VkStructureType    sType;
11649     const void*        pNext;
11650     uint32_t           qualityLevel;
11651 } VkVideoEncodeQualityLevelInfoKHR;
11652 
11653 typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
11654     VkStructureType                sType;
11655     const void*                    pNext;
11656     VkVideoSessionParametersKHR    videoSessionParameters;
11657 } VkVideoEncodeSessionParametersGetInfoKHR;
11658 
11659 typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
11660     VkStructureType    sType;
11661     void*              pNext;
11662     VkBool32           hasOverrides;
11663 } VkVideoEncodeSessionParametersFeedbackInfoKHR;
11664 
11665 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
11666 typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
11667 typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
11668 
11669 #ifndef VK_NO_PROTOTYPES
11670 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
11671     VkPhysicalDevice                            physicalDevice,
11672     const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
11673     VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties);
11674 
11675 VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
11676     VkDevice                                    device,
11677     const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
11678     VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
11679     size_t*                                     pDataSize,
11680     void*                                       pData);
11681 
11682 VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
11683     VkCommandBuffer                             commandBuffer,
11684     const VkVideoEncodeInfoKHR*                 pEncodeInfo);
11685 #endif
11686 
11687 
11688 // VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
11689 #define VK_KHR_synchronization2 1
11690 #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
11691 #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
11692 typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
11693 
11694 typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
11695 
11696 typedef VkAccessFlags2 VkAccessFlags2KHR;
11697 
11698 typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
11699 
11700 typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
11701 
11702 typedef VkSubmitFlags VkSubmitFlagsKHR;
11703 
11704 typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
11705 
11706 typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
11707 
11708 typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
11709 
11710 typedef VkDependencyInfo VkDependencyInfoKHR;
11711 
11712 typedef VkSubmitInfo2 VkSubmitInfo2KHR;
11713 
11714 typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
11715 
11716 typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
11717 
11718 typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
11719 
11720 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
11721 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
11722 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
11723 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
11724 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
11725 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
11726 
11727 #ifndef VK_NO_PROTOTYPES
11728 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
11729     VkCommandBuffer                             commandBuffer,
11730     VkEvent                                     event,
11731     const VkDependencyInfo*                     pDependencyInfo);
11732 
11733 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
11734     VkCommandBuffer                             commandBuffer,
11735     VkEvent                                     event,
11736     VkPipelineStageFlags2                       stageMask);
11737 
11738 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
11739     VkCommandBuffer                             commandBuffer,
11740     uint32_t                                    eventCount,
11741     const VkEvent*                              pEvents,
11742     const VkDependencyInfo*                     pDependencyInfos);
11743 
11744 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
11745     VkCommandBuffer                             commandBuffer,
11746     const VkDependencyInfo*                     pDependencyInfo);
11747 
11748 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
11749     VkCommandBuffer                             commandBuffer,
11750     VkPipelineStageFlags2                       stage,
11751     VkQueryPool                                 queryPool,
11752     uint32_t                                    query);
11753 
11754 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
11755     VkQueue                                     queue,
11756     uint32_t                                    submitCount,
11757     const VkSubmitInfo2*                        pSubmits,
11758     VkFence                                     fence);
11759 #endif
11760 
11761 
11762 // VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
11763 #define VK_KHR_fragment_shader_barycentric 1
11764 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
11765 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
11766 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
11767     VkStructureType    sType;
11768     void*              pNext;
11769     VkBool32           fragmentShaderBarycentric;
11770 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
11771 
11772 typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
11773     VkStructureType    sType;
11774     void*              pNext;
11775     VkBool32           triStripVertexOrderIndependentOfProvokingVertex;
11776 } VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
11777 
11778 
11779 
11780 // VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
11781 #define VK_KHR_shader_subgroup_uniform_control_flow 1
11782 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
11783 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
11784 typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
11785     VkStructureType    sType;
11786     void*              pNext;
11787     VkBool32           shaderSubgroupUniformControlFlow;
11788 } VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
11789 
11790 
11791 
11792 // VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
11793 #define VK_KHR_zero_initialize_workgroup_memory 1
11794 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
11795 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
11796 typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
11797 
11798 
11799 
11800 // VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
11801 #define VK_KHR_workgroup_memory_explicit_layout 1
11802 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
11803 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
11804 typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
11805     VkStructureType    sType;
11806     void*              pNext;
11807     VkBool32           workgroupMemoryExplicitLayout;
11808     VkBool32           workgroupMemoryExplicitLayoutScalarBlockLayout;
11809     VkBool32           workgroupMemoryExplicitLayout8BitAccess;
11810     VkBool32           workgroupMemoryExplicitLayout16BitAccess;
11811 } VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
11812 
11813 
11814 
11815 // VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
11816 #define VK_KHR_copy_commands2 1
11817 #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
11818 #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
11819 typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
11820 
11821 typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
11822 
11823 typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
11824 
11825 typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
11826 
11827 typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
11828 
11829 typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
11830 
11831 typedef VkBufferCopy2 VkBufferCopy2KHR;
11832 
11833 typedef VkImageCopy2 VkImageCopy2KHR;
11834 
11835 typedef VkImageBlit2 VkImageBlit2KHR;
11836 
11837 typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
11838 
11839 typedef VkImageResolve2 VkImageResolve2KHR;
11840 
11841 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
11842 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
11843 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
11844 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
11845 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
11846 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
11847 
11848 #ifndef VK_NO_PROTOTYPES
11849 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
11850     VkCommandBuffer                             commandBuffer,
11851     const VkCopyBufferInfo2*                    pCopyBufferInfo);
11852 
11853 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
11854     VkCommandBuffer                             commandBuffer,
11855     const VkCopyImageInfo2*                     pCopyImageInfo);
11856 
11857 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
11858     VkCommandBuffer                             commandBuffer,
11859     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
11860 
11861 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
11862     VkCommandBuffer                             commandBuffer,
11863     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
11864 
11865 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
11866     VkCommandBuffer                             commandBuffer,
11867     const VkBlitImageInfo2*                     pBlitImageInfo);
11868 
11869 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
11870     VkCommandBuffer                             commandBuffer,
11871     const VkResolveImageInfo2*                  pResolveImageInfo);
11872 #endif
11873 
11874 
11875 // VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
11876 #define VK_KHR_format_feature_flags2 1
11877 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
11878 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
11879 typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
11880 
11881 typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
11882 
11883 typedef VkFormatProperties3 VkFormatProperties3KHR;
11884 
11885 
11886 
11887 // VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
11888 #define VK_KHR_ray_tracing_maintenance1 1
11889 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
11890 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
11891 typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
11892     VkStructureType    sType;
11893     void*              pNext;
11894     VkBool32           rayTracingMaintenance1;
11895     VkBool32           rayTracingPipelineTraceRaysIndirect2;
11896 } VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
11897 
11898 typedef struct VkTraceRaysIndirectCommand2KHR {
11899     VkDeviceAddress    raygenShaderRecordAddress;
11900     VkDeviceSize       raygenShaderRecordSize;
11901     VkDeviceAddress    missShaderBindingTableAddress;
11902     VkDeviceSize       missShaderBindingTableSize;
11903     VkDeviceSize       missShaderBindingTableStride;
11904     VkDeviceAddress    hitShaderBindingTableAddress;
11905     VkDeviceSize       hitShaderBindingTableSize;
11906     VkDeviceSize       hitShaderBindingTableStride;
11907     VkDeviceAddress    callableShaderBindingTableAddress;
11908     VkDeviceSize       callableShaderBindingTableSize;
11909     VkDeviceSize       callableShaderBindingTableStride;
11910     uint32_t           width;
11911     uint32_t           height;
11912     uint32_t           depth;
11913 } VkTraceRaysIndirectCommand2KHR;
11914 
11915 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
11916 
11917 #ifndef VK_NO_PROTOTYPES
11918 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
11919     VkCommandBuffer                             commandBuffer,
11920     VkDeviceAddress                             indirectDeviceAddress);
11921 #endif
11922 
11923 
11924 // VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
11925 #define VK_KHR_portability_enumeration 1
11926 #define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
11927 #define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
11928 
11929 
11930 // VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
11931 #define VK_KHR_maintenance4 1
11932 #define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
11933 #define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
11934 typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
11935 
11936 typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
11937 
11938 typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
11939 
11940 typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
11941 
11942 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11943 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11944 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11945 
11946 #ifndef VK_NO_PROTOTYPES
11947 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
11948     VkDevice                                    device,
11949     const VkDeviceBufferMemoryRequirements*     pInfo,
11950     VkMemoryRequirements2*                      pMemoryRequirements);
11951 
11952 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
11953     VkDevice                                    device,
11954     const VkDeviceImageMemoryRequirements*      pInfo,
11955     VkMemoryRequirements2*                      pMemoryRequirements);
11956 
11957 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
11958     VkDevice                                    device,
11959     const VkDeviceImageMemoryRequirements*      pInfo,
11960     uint32_t*                                   pSparseMemoryRequirementCount,
11961     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
11962 #endif
11963 
11964 
11965 // VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
11966 #define VK_KHR_shader_subgroup_rotate 1
11967 #define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
11968 #define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
11969 typedef VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
11970 
11971 
11972 
11973 // VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
11974 #define VK_KHR_shader_maximal_reconvergence 1
11975 #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
11976 #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
11977 typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
11978     VkStructureType    sType;
11979     void*              pNext;
11980     VkBool32           shaderMaximalReconvergence;
11981 } VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
11982 
11983 
11984 
11985 // VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
11986 #define VK_KHR_maintenance5 1
11987 #define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
11988 #define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
11989 typedef VkPipelineCreateFlags2 VkPipelineCreateFlags2KHR;
11990 
11991 typedef VkPipelineCreateFlagBits2 VkPipelineCreateFlagBits2KHR;
11992 
11993 typedef VkBufferUsageFlags2 VkBufferUsageFlags2KHR;
11994 
11995 typedef VkBufferUsageFlagBits2 VkBufferUsageFlagBits2KHR;
11996 
11997 typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR;
11998 
11999 typedef VkPhysicalDeviceMaintenance5Properties VkPhysicalDeviceMaintenance5PropertiesKHR;
12000 
12001 typedef VkRenderingAreaInfo VkRenderingAreaInfoKHR;
12002 
12003 typedef VkDeviceImageSubresourceInfo VkDeviceImageSubresourceInfoKHR;
12004 
12005 typedef VkImageSubresource2 VkImageSubresource2KHR;
12006 
12007 typedef VkSubresourceLayout2 VkSubresourceLayout2KHR;
12008 
12009 typedef VkPipelineCreateFlags2CreateInfo VkPipelineCreateFlags2CreateInfoKHR;
12010 
12011 typedef VkBufferUsageFlags2CreateInfo VkBufferUsageFlags2CreateInfoKHR;
12012 
12013 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
12014 typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
12015 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
12016 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
12017 
12018 #ifndef VK_NO_PROTOTYPES
12019 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
12020     VkCommandBuffer                             commandBuffer,
12021     VkBuffer                                    buffer,
12022     VkDeviceSize                                offset,
12023     VkDeviceSize                                size,
12024     VkIndexType                                 indexType);
12025 
12026 VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
12027     VkDevice                                    device,
12028     const VkRenderingAreaInfo*                  pRenderingAreaInfo,
12029     VkExtent2D*                                 pGranularity);
12030 
12031 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
12032     VkDevice                                    device,
12033     const VkDeviceImageSubresourceInfo*         pInfo,
12034     VkSubresourceLayout2*                       pLayout);
12035 
12036 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
12037     VkDevice                                    device,
12038     VkImage                                     image,
12039     const VkImageSubresource2*                  pSubresource,
12040     VkSubresourceLayout2*                       pLayout);
12041 #endif
12042 
12043 
12044 // VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
12045 #define VK_KHR_ray_tracing_position_fetch 1
12046 #define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
12047 #define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
12048 typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
12049     VkStructureType    sType;
12050     void*              pNext;
12051     VkBool32           rayTracingPositionFetch;
12052 } VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
12053 
12054 
12055 
12056 // VK_KHR_pipeline_binary is a preprocessor guard. Do not pass it to API calls.
12057 #define VK_KHR_pipeline_binary 1
12058 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineBinaryKHR)
12059 #define VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR 32U
12060 #define VK_KHR_PIPELINE_BINARY_SPEC_VERSION 1
12061 #define VK_KHR_PIPELINE_BINARY_EXTENSION_NAME "VK_KHR_pipeline_binary"
12062 typedef struct VkPhysicalDevicePipelineBinaryFeaturesKHR {
12063     VkStructureType    sType;
12064     void*              pNext;
12065     VkBool32           pipelineBinaries;
12066 } VkPhysicalDevicePipelineBinaryFeaturesKHR;
12067 
12068 typedef struct VkPhysicalDevicePipelineBinaryPropertiesKHR {
12069     VkStructureType    sType;
12070     void*              pNext;
12071     VkBool32           pipelineBinaryInternalCache;
12072     VkBool32           pipelineBinaryInternalCacheControl;
12073     VkBool32           pipelineBinaryPrefersInternalCache;
12074     VkBool32           pipelineBinaryPrecompiledInternalCache;
12075     VkBool32           pipelineBinaryCompressedData;
12076 } VkPhysicalDevicePipelineBinaryPropertiesKHR;
12077 
12078 typedef struct VkDevicePipelineBinaryInternalCacheControlKHR {
12079     VkStructureType    sType;
12080     const void*        pNext;
12081     VkBool32           disableInternalCache;
12082 } VkDevicePipelineBinaryInternalCacheControlKHR;
12083 
12084 typedef struct VkPipelineBinaryKeyKHR {
12085     VkStructureType    sType;
12086     void*              pNext;
12087     uint32_t           keySize;
12088     uint8_t            key[VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR];
12089 } VkPipelineBinaryKeyKHR;
12090 
12091 typedef struct VkPipelineBinaryDataKHR {
12092     size_t    dataSize;
12093     void*     pData;
12094 } VkPipelineBinaryDataKHR;
12095 
12096 typedef struct VkPipelineBinaryKeysAndDataKHR {
12097     uint32_t                          binaryCount;
12098     const VkPipelineBinaryKeyKHR*     pPipelineBinaryKeys;
12099     const VkPipelineBinaryDataKHR*    pPipelineBinaryData;
12100 } VkPipelineBinaryKeysAndDataKHR;
12101 
12102 typedef struct VkPipelineCreateInfoKHR {
12103     VkStructureType    sType;
12104     void*              pNext;
12105 } VkPipelineCreateInfoKHR;
12106 
12107 typedef struct VkPipelineBinaryCreateInfoKHR {
12108     VkStructureType                          sType;
12109     const void*                              pNext;
12110     const VkPipelineBinaryKeysAndDataKHR*    pKeysAndDataInfo;
12111     VkPipeline                               pipeline;
12112     const VkPipelineCreateInfoKHR*           pPipelineCreateInfo;
12113 } VkPipelineBinaryCreateInfoKHR;
12114 
12115 typedef struct VkPipelineBinaryInfoKHR {
12116     VkStructureType               sType;
12117     const void*                   pNext;
12118     uint32_t                      binaryCount;
12119     const VkPipelineBinaryKHR*    pPipelineBinaries;
12120 } VkPipelineBinaryInfoKHR;
12121 
12122 typedef struct VkReleaseCapturedPipelineDataInfoKHR {
12123     VkStructureType    sType;
12124     void*              pNext;
12125     VkPipeline         pipeline;
12126 } VkReleaseCapturedPipelineDataInfoKHR;
12127 
12128 typedef struct VkPipelineBinaryDataInfoKHR {
12129     VkStructureType        sType;
12130     void*                  pNext;
12131     VkPipelineBinaryKHR    pipelineBinary;
12132 } VkPipelineBinaryDataInfoKHR;
12133 
12134 typedef struct VkPipelineBinaryHandlesInfoKHR {
12135     VkStructureType         sType;
12136     const void*             pNext;
12137     uint32_t                pipelineBinaryCount;
12138     VkPipelineBinaryKHR*    pPipelineBinaries;
12139 } VkPipelineBinaryHandlesInfoKHR;
12140 
12141 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineBinariesKHR)(VkDevice device, const VkPipelineBinaryCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineBinaryHandlesInfoKHR* pBinaries);
12142 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineBinaryKHR)(VkDevice device, VkPipelineBinaryKHR pipelineBinary, const VkAllocationCallbacks* pAllocator);
12143 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineKeyKHR)(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey);
12144 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineBinaryDataKHR)(VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData);
12145 typedef VkResult (VKAPI_PTR *PFN_vkReleaseCapturedPipelineDataKHR)(VkDevice device, const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator);
12146 
12147 #ifndef VK_NO_PROTOTYPES
12148 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineBinariesKHR(
12149     VkDevice                                    device,
12150     const VkPipelineBinaryCreateInfoKHR*        pCreateInfo,
12151     const VkAllocationCallbacks*                pAllocator,
12152     VkPipelineBinaryHandlesInfoKHR*             pBinaries);
12153 
12154 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineBinaryKHR(
12155     VkDevice                                    device,
12156     VkPipelineBinaryKHR                         pipelineBinary,
12157     const VkAllocationCallbacks*                pAllocator);
12158 
12159 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineKeyKHR(
12160     VkDevice                                    device,
12161     const VkPipelineCreateInfoKHR*              pPipelineCreateInfo,
12162     VkPipelineBinaryKeyKHR*                     pPipelineKey);
12163 
12164 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineBinaryDataKHR(
12165     VkDevice                                    device,
12166     const VkPipelineBinaryDataInfoKHR*          pInfo,
12167     VkPipelineBinaryKeyKHR*                     pPipelineBinaryKey,
12168     size_t*                                     pPipelineBinaryDataSize,
12169     void*                                       pPipelineBinaryData);
12170 
12171 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseCapturedPipelineDataKHR(
12172     VkDevice                                    device,
12173     const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
12174     const VkAllocationCallbacks*                pAllocator);
12175 #endif
12176 
12177 
12178 // VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
12179 #define VK_KHR_cooperative_matrix 1
12180 #define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
12181 #define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
12182 
12183 typedef enum VkComponentTypeKHR {
12184     VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
12185     VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
12186     VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
12187     VK_COMPONENT_TYPE_SINT8_KHR = 3,
12188     VK_COMPONENT_TYPE_SINT16_KHR = 4,
12189     VK_COMPONENT_TYPE_SINT32_KHR = 5,
12190     VK_COMPONENT_TYPE_SINT64_KHR = 6,
12191     VK_COMPONENT_TYPE_UINT8_KHR = 7,
12192     VK_COMPONENT_TYPE_UINT16_KHR = 8,
12193     VK_COMPONENT_TYPE_UINT32_KHR = 9,
12194     VK_COMPONENT_TYPE_UINT64_KHR = 10,
12195     VK_COMPONENT_TYPE_SINT8_PACKED_NV = 1000491000,
12196     VK_COMPONENT_TYPE_UINT8_PACKED_NV = 1000491001,
12197     VK_COMPONENT_TYPE_FLOAT_E4M3_NV = 1000491002,
12198     VK_COMPONENT_TYPE_FLOAT_E5M2_NV = 1000491003,
12199     VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
12200     VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
12201     VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
12202     VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
12203     VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
12204     VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
12205     VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
12206     VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
12207     VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
12208     VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
12209     VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
12210     VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
12211 } VkComponentTypeKHR;
12212 
12213 typedef enum VkScopeKHR {
12214     VK_SCOPE_DEVICE_KHR = 1,
12215     VK_SCOPE_WORKGROUP_KHR = 2,
12216     VK_SCOPE_SUBGROUP_KHR = 3,
12217     VK_SCOPE_QUEUE_FAMILY_KHR = 5,
12218     VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
12219     VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
12220     VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
12221     VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
12222     VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
12223 } VkScopeKHR;
12224 typedef struct VkCooperativeMatrixPropertiesKHR {
12225     VkStructureType       sType;
12226     void*                 pNext;
12227     uint32_t              MSize;
12228     uint32_t              NSize;
12229     uint32_t              KSize;
12230     VkComponentTypeKHR    AType;
12231     VkComponentTypeKHR    BType;
12232     VkComponentTypeKHR    CType;
12233     VkComponentTypeKHR    ResultType;
12234     VkBool32              saturatingAccumulation;
12235     VkScopeKHR            scope;
12236 } VkCooperativeMatrixPropertiesKHR;
12237 
12238 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
12239     VkStructureType    sType;
12240     void*              pNext;
12241     VkBool32           cooperativeMatrix;
12242     VkBool32           cooperativeMatrixRobustBufferAccess;
12243 } VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
12244 
12245 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
12246     VkStructureType       sType;
12247     void*                 pNext;
12248     VkShaderStageFlags    cooperativeMatrixSupportedStages;
12249 } VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
12250 
12251 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
12252 
12253 #ifndef VK_NO_PROTOTYPES
12254 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
12255     VkPhysicalDevice                            physicalDevice,
12256     uint32_t*                                   pPropertyCount,
12257     VkCooperativeMatrixPropertiesKHR*           pProperties);
12258 #endif
12259 
12260 
12261 // VK_KHR_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
12262 #define VK_KHR_compute_shader_derivatives 1
12263 #define VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
12264 #define VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_KHR_compute_shader_derivatives"
12265 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR {
12266     VkStructureType    sType;
12267     void*              pNext;
12268     VkBool32           computeDerivativeGroupQuads;
12269     VkBool32           computeDerivativeGroupLinear;
12270 } VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR;
12271 
12272 typedef struct VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR {
12273     VkStructureType    sType;
12274     void*              pNext;
12275     VkBool32           meshAndTaskShaderDerivatives;
12276 } VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR;
12277 
12278 
12279 
12280 // VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
12281 #define VK_KHR_video_decode_av1 1
12282 #include "vk_video/vulkan_video_codec_av1std.h"
12283 #include "vk_video/vulkan_video_codec_av1std_decode.h"
12284 #define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
12285 #define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
12286 #define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
12287 typedef struct VkVideoDecodeAV1ProfileInfoKHR {
12288     VkStructureType       sType;
12289     const void*           pNext;
12290     StdVideoAV1Profile    stdProfile;
12291     VkBool32              filmGrainSupport;
12292 } VkVideoDecodeAV1ProfileInfoKHR;
12293 
12294 typedef struct VkVideoDecodeAV1CapabilitiesKHR {
12295     VkStructureType     sType;
12296     void*               pNext;
12297     StdVideoAV1Level    maxLevel;
12298 } VkVideoDecodeAV1CapabilitiesKHR;
12299 
12300 typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
12301     VkStructureType                     sType;
12302     const void*                         pNext;
12303     const StdVideoAV1SequenceHeader*    pStdSequenceHeader;
12304 } VkVideoDecodeAV1SessionParametersCreateInfoKHR;
12305 
12306 typedef struct VkVideoDecodeAV1PictureInfoKHR {
12307     VkStructureType                        sType;
12308     const void*                            pNext;
12309     const StdVideoDecodeAV1PictureInfo*    pStdPictureInfo;
12310     int32_t                                referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
12311     uint32_t                               frameHeaderOffset;
12312     uint32_t                               tileCount;
12313     const uint32_t*                        pTileOffsets;
12314     const uint32_t*                        pTileSizes;
12315 } VkVideoDecodeAV1PictureInfoKHR;
12316 
12317 typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
12318     VkStructureType                          sType;
12319     const void*                              pNext;
12320     const StdVideoDecodeAV1ReferenceInfo*    pStdReferenceInfo;
12321 } VkVideoDecodeAV1DpbSlotInfoKHR;
12322 
12323 
12324 
12325 // VK_KHR_video_encode_av1 is a preprocessor guard. Do not pass it to API calls.
12326 #define VK_KHR_video_encode_av1 1
12327 #include "vk_video/vulkan_video_codec_av1std_encode.h"
12328 #define VK_KHR_VIDEO_ENCODE_AV1_SPEC_VERSION 1
12329 #define VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME "VK_KHR_video_encode_av1"
12330 
12331 typedef enum VkVideoEncodeAV1PredictionModeKHR {
12332     VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR = 0,
12333     VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR = 1,
12334     VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR = 2,
12335     VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR = 3,
12336     VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
12337 } VkVideoEncodeAV1PredictionModeKHR;
12338 
12339 typedef enum VkVideoEncodeAV1RateControlGroupKHR {
12340     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR = 0,
12341     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR = 1,
12342     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR = 2,
12343     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_MAX_ENUM_KHR = 0x7FFFFFFF
12344 } VkVideoEncodeAV1RateControlGroupKHR;
12345 
12346 typedef enum VkVideoEncodeAV1CapabilityFlagBitsKHR {
12347     VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR = 0x00000001,
12348     VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR = 0x00000002,
12349     VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR = 0x00000004,
12350     VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR = 0x00000008,
12351     VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR = 0x00000010,
12352     VK_VIDEO_ENCODE_AV1_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12353 } VkVideoEncodeAV1CapabilityFlagBitsKHR;
12354 typedef VkFlags VkVideoEncodeAV1CapabilityFlagsKHR;
12355 
12356 typedef enum VkVideoEncodeAV1StdFlagBitsKHR {
12357     VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR = 0x00000001,
12358     VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR = 0x00000002,
12359     VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR = 0x00000004,
12360     VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR = 0x00000008,
12361     VK_VIDEO_ENCODE_AV1_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12362 } VkVideoEncodeAV1StdFlagBitsKHR;
12363 typedef VkFlags VkVideoEncodeAV1StdFlagsKHR;
12364 
12365 typedef enum VkVideoEncodeAV1SuperblockSizeFlagBitsKHR {
12366     VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR = 0x00000001,
12367     VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR = 0x00000002,
12368     VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12369 } VkVideoEncodeAV1SuperblockSizeFlagBitsKHR;
12370 typedef VkFlags VkVideoEncodeAV1SuperblockSizeFlagsKHR;
12371 
12372 typedef enum VkVideoEncodeAV1RateControlFlagBitsKHR {
12373     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000001,
12374     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000002,
12375     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
12376     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
12377     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12378 } VkVideoEncodeAV1RateControlFlagBitsKHR;
12379 typedef VkFlags VkVideoEncodeAV1RateControlFlagsKHR;
12380 typedef struct VkPhysicalDeviceVideoEncodeAV1FeaturesKHR {
12381     VkStructureType    sType;
12382     void*              pNext;
12383     VkBool32           videoEncodeAV1;
12384 } VkPhysicalDeviceVideoEncodeAV1FeaturesKHR;
12385 
12386 typedef struct VkVideoEncodeAV1CapabilitiesKHR {
12387     VkStructureType                           sType;
12388     void*                                     pNext;
12389     VkVideoEncodeAV1CapabilityFlagsKHR        flags;
12390     StdVideoAV1Level                          maxLevel;
12391     VkExtent2D                                codedPictureAlignment;
12392     VkExtent2D                                maxTiles;
12393     VkExtent2D                                minTileSize;
12394     VkExtent2D                                maxTileSize;
12395     VkVideoEncodeAV1SuperblockSizeFlagsKHR    superblockSizes;
12396     uint32_t                                  maxSingleReferenceCount;
12397     uint32_t                                  singleReferenceNameMask;
12398     uint32_t                                  maxUnidirectionalCompoundReferenceCount;
12399     uint32_t                                  maxUnidirectionalCompoundGroup1ReferenceCount;
12400     uint32_t                                  unidirectionalCompoundReferenceNameMask;
12401     uint32_t                                  maxBidirectionalCompoundReferenceCount;
12402     uint32_t                                  maxBidirectionalCompoundGroup1ReferenceCount;
12403     uint32_t                                  maxBidirectionalCompoundGroup2ReferenceCount;
12404     uint32_t                                  bidirectionalCompoundReferenceNameMask;
12405     uint32_t                                  maxTemporalLayerCount;
12406     uint32_t                                  maxSpatialLayerCount;
12407     uint32_t                                  maxOperatingPoints;
12408     uint32_t                                  minQIndex;
12409     uint32_t                                  maxQIndex;
12410     VkBool32                                  prefersGopRemainingFrames;
12411     VkBool32                                  requiresGopRemainingFrames;
12412     VkVideoEncodeAV1StdFlagsKHR               stdSyntaxFlags;
12413 } VkVideoEncodeAV1CapabilitiesKHR;
12414 
12415 typedef struct VkVideoEncodeAV1QIndexKHR {
12416     uint32_t    intraQIndex;
12417     uint32_t    predictiveQIndex;
12418     uint32_t    bipredictiveQIndex;
12419 } VkVideoEncodeAV1QIndexKHR;
12420 
12421 typedef struct VkVideoEncodeAV1QualityLevelPropertiesKHR {
12422     VkStructureType                        sType;
12423     void*                                  pNext;
12424     VkVideoEncodeAV1RateControlFlagsKHR    preferredRateControlFlags;
12425     uint32_t                               preferredGopFrameCount;
12426     uint32_t                               preferredKeyFramePeriod;
12427     uint32_t                               preferredConsecutiveBipredictiveFrameCount;
12428     uint32_t                               preferredTemporalLayerCount;
12429     VkVideoEncodeAV1QIndexKHR              preferredConstantQIndex;
12430     uint32_t                               preferredMaxSingleReferenceCount;
12431     uint32_t                               preferredSingleReferenceNameMask;
12432     uint32_t                               preferredMaxUnidirectionalCompoundReferenceCount;
12433     uint32_t                               preferredMaxUnidirectionalCompoundGroup1ReferenceCount;
12434     uint32_t                               preferredUnidirectionalCompoundReferenceNameMask;
12435     uint32_t                               preferredMaxBidirectionalCompoundReferenceCount;
12436     uint32_t                               preferredMaxBidirectionalCompoundGroup1ReferenceCount;
12437     uint32_t                               preferredMaxBidirectionalCompoundGroup2ReferenceCount;
12438     uint32_t                               preferredBidirectionalCompoundReferenceNameMask;
12439 } VkVideoEncodeAV1QualityLevelPropertiesKHR;
12440 
12441 typedef struct VkVideoEncodeAV1SessionCreateInfoKHR {
12442     VkStructureType     sType;
12443     const void*         pNext;
12444     VkBool32            useMaxLevel;
12445     StdVideoAV1Level    maxLevel;
12446 } VkVideoEncodeAV1SessionCreateInfoKHR;
12447 
12448 typedef struct VkVideoEncodeAV1SessionParametersCreateInfoKHR {
12449     VkStructureType                               sType;
12450     const void*                                   pNext;
12451     const StdVideoAV1SequenceHeader*              pStdSequenceHeader;
12452     const StdVideoEncodeAV1DecoderModelInfo*      pStdDecoderModelInfo;
12453     uint32_t                                      stdOperatingPointCount;
12454     const StdVideoEncodeAV1OperatingPointInfo*    pStdOperatingPoints;
12455 } VkVideoEncodeAV1SessionParametersCreateInfoKHR;
12456 
12457 typedef struct VkVideoEncodeAV1PictureInfoKHR {
12458     VkStructureType                        sType;
12459     const void*                            pNext;
12460     VkVideoEncodeAV1PredictionModeKHR      predictionMode;
12461     VkVideoEncodeAV1RateControlGroupKHR    rateControlGroup;
12462     uint32_t                               constantQIndex;
12463     const StdVideoEncodeAV1PictureInfo*    pStdPictureInfo;
12464     int32_t                                referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
12465     VkBool32                               primaryReferenceCdfOnly;
12466     VkBool32                               generateObuExtensionHeader;
12467 } VkVideoEncodeAV1PictureInfoKHR;
12468 
12469 typedef struct VkVideoEncodeAV1DpbSlotInfoKHR {
12470     VkStructureType                          sType;
12471     const void*                              pNext;
12472     const StdVideoEncodeAV1ReferenceInfo*    pStdReferenceInfo;
12473 } VkVideoEncodeAV1DpbSlotInfoKHR;
12474 
12475 typedef struct VkVideoEncodeAV1ProfileInfoKHR {
12476     VkStructureType       sType;
12477     const void*           pNext;
12478     StdVideoAV1Profile    stdProfile;
12479 } VkVideoEncodeAV1ProfileInfoKHR;
12480 
12481 typedef struct VkVideoEncodeAV1FrameSizeKHR {
12482     uint32_t    intraFrameSize;
12483     uint32_t    predictiveFrameSize;
12484     uint32_t    bipredictiveFrameSize;
12485 } VkVideoEncodeAV1FrameSizeKHR;
12486 
12487 typedef struct VkVideoEncodeAV1GopRemainingFrameInfoKHR {
12488     VkStructureType    sType;
12489     const void*        pNext;
12490     VkBool32           useGopRemainingFrames;
12491     uint32_t           gopRemainingIntra;
12492     uint32_t           gopRemainingPredictive;
12493     uint32_t           gopRemainingBipredictive;
12494 } VkVideoEncodeAV1GopRemainingFrameInfoKHR;
12495 
12496 typedef struct VkVideoEncodeAV1RateControlInfoKHR {
12497     VkStructureType                        sType;
12498     const void*                            pNext;
12499     VkVideoEncodeAV1RateControlFlagsKHR    flags;
12500     uint32_t                               gopFrameCount;
12501     uint32_t                               keyFramePeriod;
12502     uint32_t                               consecutiveBipredictiveFrameCount;
12503     uint32_t                               temporalLayerCount;
12504 } VkVideoEncodeAV1RateControlInfoKHR;
12505 
12506 typedef struct VkVideoEncodeAV1RateControlLayerInfoKHR {
12507     VkStructureType                 sType;
12508     const void*                     pNext;
12509     VkBool32                        useMinQIndex;
12510     VkVideoEncodeAV1QIndexKHR       minQIndex;
12511     VkBool32                        useMaxQIndex;
12512     VkVideoEncodeAV1QIndexKHR       maxQIndex;
12513     VkBool32                        useMaxFrameSize;
12514     VkVideoEncodeAV1FrameSizeKHR    maxFrameSize;
12515 } VkVideoEncodeAV1RateControlLayerInfoKHR;
12516 
12517 
12518 
12519 // VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12520 #define VK_KHR_video_maintenance1 1
12521 #define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
12522 #define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
12523 typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
12524     VkStructureType    sType;
12525     void*              pNext;
12526     VkBool32           videoMaintenance1;
12527 } VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
12528 
12529 typedef struct VkVideoInlineQueryInfoKHR {
12530     VkStructureType    sType;
12531     const void*        pNext;
12532     VkQueryPool        queryPool;
12533     uint32_t           firstQuery;
12534     uint32_t           queryCount;
12535 } VkVideoInlineQueryInfoKHR;
12536 
12537 
12538 
12539 // VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
12540 #define VK_KHR_vertex_attribute_divisor 1
12541 #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
12542 #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
12543 typedef VkPhysicalDeviceVertexAttributeDivisorProperties VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
12544 
12545 typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionKHR;
12546 
12547 typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoKHR;
12548 
12549 typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
12550 
12551 
12552 
12553 // VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
12554 #define VK_KHR_load_store_op_none 1
12555 #define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
12556 #define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
12557 
12558 
12559 // VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
12560 #define VK_KHR_shader_float_controls2 1
12561 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
12562 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
12563 typedef VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
12564 
12565 
12566 
12567 // VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
12568 #define VK_KHR_index_type_uint8 1
12569 #define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
12570 #define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
12571 typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
12572 
12573 
12574 
12575 // VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
12576 #define VK_KHR_line_rasterization 1
12577 #define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
12578 #define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
12579 typedef VkLineRasterizationMode VkLineRasterizationModeKHR;
12580 
12581 typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesKHR;
12582 
12583 typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesKHR;
12584 
12585 typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoKHR;
12586 
12587 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
12588 
12589 #ifndef VK_NO_PROTOTYPES
12590 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
12591     VkCommandBuffer                             commandBuffer,
12592     uint32_t                                    lineStippleFactor,
12593     uint16_t                                    lineStipplePattern);
12594 #endif
12595 
12596 
12597 // VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
12598 #define VK_KHR_calibrated_timestamps 1
12599 #define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
12600 #define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
12601 
12602 typedef enum VkTimeDomainKHR {
12603     VK_TIME_DOMAIN_DEVICE_KHR = 0,
12604     VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
12605     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
12606     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
12607     VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
12608     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
12609     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
12610     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
12611     VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
12612 } VkTimeDomainKHR;
12613 typedef struct VkCalibratedTimestampInfoKHR {
12614     VkStructureType    sType;
12615     const void*        pNext;
12616     VkTimeDomainKHR    timeDomain;
12617 } VkCalibratedTimestampInfoKHR;
12618 
12619 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
12620 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
12621 
12622 #ifndef VK_NO_PROTOTYPES
12623 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
12624     VkPhysicalDevice                            physicalDevice,
12625     uint32_t*                                   pTimeDomainCount,
12626     VkTimeDomainKHR*                            pTimeDomains);
12627 
12628 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
12629     VkDevice                                    device,
12630     uint32_t                                    timestampCount,
12631     const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
12632     uint64_t*                                   pTimestamps,
12633     uint64_t*                                   pMaxDeviation);
12634 #endif
12635 
12636 
12637 // VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
12638 #define VK_KHR_shader_expect_assume 1
12639 #define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
12640 #define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
12641 typedef VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
12642 
12643 
12644 
12645 // VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
12646 #define VK_KHR_maintenance6 1
12647 #define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
12648 #define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
12649 typedef VkPhysicalDeviceMaintenance6Features VkPhysicalDeviceMaintenance6FeaturesKHR;
12650 
12651 typedef VkPhysicalDeviceMaintenance6Properties VkPhysicalDeviceMaintenance6PropertiesKHR;
12652 
12653 typedef VkBindMemoryStatus VkBindMemoryStatusKHR;
12654 
12655 typedef VkBindDescriptorSetsInfo VkBindDescriptorSetsInfoKHR;
12656 
12657 typedef VkPushConstantsInfo VkPushConstantsInfoKHR;
12658 
12659 typedef VkPushDescriptorSetInfo VkPushDescriptorSetInfoKHR;
12660 
12661 typedef VkPushDescriptorSetWithTemplateInfo VkPushDescriptorSetWithTemplateInfoKHR;
12662 
12663 typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
12664     VkStructureType        sType;
12665     const void*            pNext;
12666     VkShaderStageFlags     stageFlags;
12667     VkPipelineLayout       layout;
12668     uint32_t               firstSet;
12669     uint32_t               setCount;
12670     const uint32_t*        pBufferIndices;
12671     const VkDeviceSize*    pOffsets;
12672 } VkSetDescriptorBufferOffsetsInfoEXT;
12673 
12674 typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
12675     VkStructureType       sType;
12676     const void*           pNext;
12677     VkShaderStageFlags    stageFlags;
12678     VkPipelineLayout      layout;
12679     uint32_t              set;
12680 } VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
12681 
12682 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo*   pBindDescriptorSetsInfo);
12683 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo*        pPushConstantsInfo);
12684 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo*    pPushDescriptorSetInfo);
12685 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
12686 typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
12687 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
12688 
12689 #ifndef VK_NO_PROTOTYPES
12690 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
12691     VkCommandBuffer                             commandBuffer,
12692     const VkBindDescriptorSetsInfo*             pBindDescriptorSetsInfo);
12693 
12694 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
12695     VkCommandBuffer                             commandBuffer,
12696     const VkPushConstantsInfo*                  pPushConstantsInfo);
12697 
12698 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
12699     VkCommandBuffer                             commandBuffer,
12700     const VkPushDescriptorSetInfo*              pPushDescriptorSetInfo);
12701 
12702 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
12703     VkCommandBuffer                             commandBuffer,
12704     const VkPushDescriptorSetWithTemplateInfo*  pPushDescriptorSetWithTemplateInfo);
12705 
12706 VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
12707     VkCommandBuffer                             commandBuffer,
12708     const VkSetDescriptorBufferOffsetsInfoEXT*  pSetDescriptorBufferOffsetsInfo);
12709 
12710 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
12711     VkCommandBuffer                             commandBuffer,
12712     const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
12713 #endif
12714 
12715 
12716 // VK_KHR_video_encode_quantization_map is a preprocessor guard. Do not pass it to API calls.
12717 #define VK_KHR_video_encode_quantization_map 1
12718 #define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION 2
12719 #define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME "VK_KHR_video_encode_quantization_map"
12720 typedef struct VkVideoEncodeQuantizationMapCapabilitiesKHR {
12721     VkStructureType    sType;
12722     void*              pNext;
12723     VkExtent2D         maxQuantizationMapExtent;
12724 } VkVideoEncodeQuantizationMapCapabilitiesKHR;
12725 
12726 typedef struct VkVideoFormatQuantizationMapPropertiesKHR {
12727     VkStructureType    sType;
12728     void*              pNext;
12729     VkExtent2D         quantizationMapTexelSize;
12730 } VkVideoFormatQuantizationMapPropertiesKHR;
12731 
12732 typedef struct VkVideoEncodeQuantizationMapInfoKHR {
12733     VkStructureType    sType;
12734     const void*        pNext;
12735     VkImageView        quantizationMap;
12736     VkExtent2D         quantizationMapExtent;
12737 } VkVideoEncodeQuantizationMapInfoKHR;
12738 
12739 typedef struct VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
12740     VkStructureType    sType;
12741     const void*        pNext;
12742     VkExtent2D         quantizationMapTexelSize;
12743 } VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR;
12744 
12745 typedef struct VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
12746     VkStructureType    sType;
12747     void*              pNext;
12748     VkBool32           videoEncodeQuantizationMap;
12749 } VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR;
12750 
12751 typedef struct VkVideoEncodeH264QuantizationMapCapabilitiesKHR {
12752     VkStructureType    sType;
12753     void*              pNext;
12754     int32_t            minQpDelta;
12755     int32_t            maxQpDelta;
12756 } VkVideoEncodeH264QuantizationMapCapabilitiesKHR;
12757 
12758 typedef struct VkVideoEncodeH265QuantizationMapCapabilitiesKHR {
12759     VkStructureType    sType;
12760     void*              pNext;
12761     int32_t            minQpDelta;
12762     int32_t            maxQpDelta;
12763 } VkVideoEncodeH265QuantizationMapCapabilitiesKHR;
12764 
12765 typedef struct VkVideoFormatH265QuantizationMapPropertiesKHR {
12766     VkStructureType                     sType;
12767     void*                               pNext;
12768     VkVideoEncodeH265CtbSizeFlagsKHR    compatibleCtbSizes;
12769 } VkVideoFormatH265QuantizationMapPropertiesKHR;
12770 
12771 typedef struct VkVideoEncodeAV1QuantizationMapCapabilitiesKHR {
12772     VkStructureType    sType;
12773     void*              pNext;
12774     int32_t            minQIndexDelta;
12775     int32_t            maxQIndexDelta;
12776 } VkVideoEncodeAV1QuantizationMapCapabilitiesKHR;
12777 
12778 typedef struct VkVideoFormatAV1QuantizationMapPropertiesKHR {
12779     VkStructureType                           sType;
12780     void*                                     pNext;
12781     VkVideoEncodeAV1SuperblockSizeFlagsKHR    compatibleSuperblockSizes;
12782 } VkVideoFormatAV1QuantizationMapPropertiesKHR;
12783 
12784 
12785 
12786 // VK_KHR_shader_relaxed_extended_instruction is a preprocessor guard. Do not pass it to API calls.
12787 #define VK_KHR_shader_relaxed_extended_instruction 1
12788 #define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION 1
12789 #define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME "VK_KHR_shader_relaxed_extended_instruction"
12790 typedef struct VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
12791     VkStructureType    sType;
12792     void*              pNext;
12793     VkBool32           shaderRelaxedExtendedInstruction;
12794 } VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR;
12795 
12796 
12797 
12798 // VK_KHR_maintenance7 is a preprocessor guard. Do not pass it to API calls.
12799 #define VK_KHR_maintenance7 1
12800 #define VK_KHR_MAINTENANCE_7_SPEC_VERSION 1
12801 #define VK_KHR_MAINTENANCE_7_EXTENSION_NAME "VK_KHR_maintenance7"
12802 
12803 typedef enum VkPhysicalDeviceLayeredApiKHR {
12804     VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = 0,
12805     VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = 1,
12806     VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = 2,
12807     VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = 3,
12808     VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = 4,
12809     VK_PHYSICAL_DEVICE_LAYERED_API_MAX_ENUM_KHR = 0x7FFFFFFF
12810 } VkPhysicalDeviceLayeredApiKHR;
12811 typedef struct VkPhysicalDeviceMaintenance7FeaturesKHR {
12812     VkStructureType    sType;
12813     void*              pNext;
12814     VkBool32           maintenance7;
12815 } VkPhysicalDeviceMaintenance7FeaturesKHR;
12816 
12817 typedef struct VkPhysicalDeviceMaintenance7PropertiesKHR {
12818     VkStructureType    sType;
12819     void*              pNext;
12820     VkBool32           robustFragmentShadingRateAttachmentAccess;
12821     VkBool32           separateDepthStencilAttachmentAccess;
12822     uint32_t           maxDescriptorSetTotalUniformBuffersDynamic;
12823     uint32_t           maxDescriptorSetTotalStorageBuffersDynamic;
12824     uint32_t           maxDescriptorSetTotalBuffersDynamic;
12825     uint32_t           maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic;
12826     uint32_t           maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic;
12827     uint32_t           maxDescriptorSetUpdateAfterBindTotalBuffersDynamic;
12828 } VkPhysicalDeviceMaintenance7PropertiesKHR;
12829 
12830 typedef struct VkPhysicalDeviceLayeredApiPropertiesKHR {
12831     VkStructureType                  sType;
12832     void*                            pNext;
12833     uint32_t                         vendorID;
12834     uint32_t                         deviceID;
12835     VkPhysicalDeviceLayeredApiKHR    layeredAPI;
12836     char                             deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
12837 } VkPhysicalDeviceLayeredApiPropertiesKHR;
12838 
12839 typedef struct VkPhysicalDeviceLayeredApiPropertiesListKHR {
12840     VkStructureType                             sType;
12841     void*                                       pNext;
12842     uint32_t                                    layeredApiCount;
12843     VkPhysicalDeviceLayeredApiPropertiesKHR*    pLayeredApis;
12844 } VkPhysicalDeviceLayeredApiPropertiesListKHR;
12845 
12846 typedef struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR {
12847     VkStructureType                sType;
12848     void*                          pNext;
12849     VkPhysicalDeviceProperties2    properties;
12850 } VkPhysicalDeviceLayeredApiVulkanPropertiesKHR;
12851 
12852 
12853 
12854 // VK_KHR_maintenance8 is a preprocessor guard. Do not pass it to API calls.
12855 #define VK_KHR_maintenance8 1
12856 #define VK_KHR_MAINTENANCE_8_SPEC_VERSION 1
12857 #define VK_KHR_MAINTENANCE_8_EXTENSION_NAME "VK_KHR_maintenance8"
12858 typedef VkFlags64 VkAccessFlags3KHR;
12859 
12860 // Flag bits for VkAccessFlagBits3KHR
12861 typedef VkFlags64 VkAccessFlagBits3KHR;
12862 static const VkAccessFlagBits3KHR VK_ACCESS_3_NONE_KHR = 0ULL;
12863 
12864 typedef struct VkPhysicalDeviceMaintenance8FeaturesKHR {
12865     VkStructureType    sType;
12866     void*              pNext;
12867     VkBool32           maintenance8;
12868 } VkPhysicalDeviceMaintenance8FeaturesKHR;
12869 
12870 typedef struct VkMemoryBarrierAccessFlags3KHR {
12871     VkStructureType      sType;
12872     const void*          pNext;
12873     VkAccessFlags3KHR    srcAccessMask3;
12874     VkAccessFlags3KHR    dstAccessMask3;
12875 } VkMemoryBarrierAccessFlags3KHR;
12876 
12877 
12878 
12879 // VK_KHR_video_maintenance2 is a preprocessor guard. Do not pass it to API calls.
12880 #define VK_KHR_video_maintenance2 1
12881 #define VK_KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION 1
12882 #define VK_KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_video_maintenance2"
12883 typedef struct VkPhysicalDeviceVideoMaintenance2FeaturesKHR {
12884     VkStructureType    sType;
12885     void*              pNext;
12886     VkBool32           videoMaintenance2;
12887 } VkPhysicalDeviceVideoMaintenance2FeaturesKHR;
12888 
12889 typedef struct VkVideoDecodeH264InlineSessionParametersInfoKHR {
12890     VkStructureType                            sType;
12891     const void*                                pNext;
12892     const StdVideoH264SequenceParameterSet*    pStdSPS;
12893     const StdVideoH264PictureParameterSet*     pStdPPS;
12894 } VkVideoDecodeH264InlineSessionParametersInfoKHR;
12895 
12896 typedef struct VkVideoDecodeH265InlineSessionParametersInfoKHR {
12897     VkStructureType                            sType;
12898     const void*                                pNext;
12899     const StdVideoH265VideoParameterSet*       pStdVPS;
12900     const StdVideoH265SequenceParameterSet*    pStdSPS;
12901     const StdVideoH265PictureParameterSet*     pStdPPS;
12902 } VkVideoDecodeH265InlineSessionParametersInfoKHR;
12903 
12904 typedef struct VkVideoDecodeAV1InlineSessionParametersInfoKHR {
12905     VkStructureType                     sType;
12906     const void*                         pNext;
12907     const StdVideoAV1SequenceHeader*    pStdSequenceHeader;
12908 } VkVideoDecodeAV1InlineSessionParametersInfoKHR;
12909 
12910 
12911 
12912 // VK_KHR_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
12913 #define VK_KHR_depth_clamp_zero_one 1
12914 #define VK_KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
12915 #define VK_KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_KHR_depth_clamp_zero_one"
12916 typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesKHR {
12917     VkStructureType    sType;
12918     void*              pNext;
12919     VkBool32           depthClampZeroOne;
12920 } VkPhysicalDeviceDepthClampZeroOneFeaturesKHR;
12921 
12922 
12923 
12924 // VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
12925 #define VK_EXT_debug_report 1
12926 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
12927 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  10
12928 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
12929 
12930 typedef enum VkDebugReportObjectTypeEXT {
12931     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
12932     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
12933     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
12934     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
12935     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
12936     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
12937     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
12938     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
12939     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
12940     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
12941     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
12942     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
12943     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
12944     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
12945     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
12946     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
12947     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
12948     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
12949     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
12950     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
12951     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
12952     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
12953     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
12954     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
12955     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
12956     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
12957     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
12958     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
12959     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
12960     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
12961     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
12962     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
12963     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
12964     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
12965     VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
12966     VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
12967     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
12968     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
12969     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
12970     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
12971     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
12972   // VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT is a deprecated alias
12973     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
12974   // VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT is a deprecated alias
12975     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
12976     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
12977     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
12978     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
12979 } VkDebugReportObjectTypeEXT;
12980 
12981 typedef enum VkDebugReportFlagBitsEXT {
12982     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
12983     VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
12984     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
12985     VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
12986     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
12987     VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12988 } VkDebugReportFlagBitsEXT;
12989 typedef VkFlags VkDebugReportFlagsEXT;
12990 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
12991     VkDebugReportFlagsEXT                       flags,
12992     VkDebugReportObjectTypeEXT                  objectType,
12993     uint64_t                                    object,
12994     size_t                                      location,
12995     int32_t                                     messageCode,
12996     const char*                                 pLayerPrefix,
12997     const char*                                 pMessage,
12998     void*                                       pUserData);
12999 
13000 typedef struct VkDebugReportCallbackCreateInfoEXT {
13001     VkStructureType                 sType;
13002     const void*                     pNext;
13003     VkDebugReportFlagsEXT           flags;
13004     PFN_vkDebugReportCallbackEXT    pfnCallback;
13005     void*                           pUserData;
13006 } VkDebugReportCallbackCreateInfoEXT;
13007 
13008 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
13009 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
13010 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);
13011 
13012 #ifndef VK_NO_PROTOTYPES
13013 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
13014     VkInstance                                  instance,
13015     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
13016     const VkAllocationCallbacks*                pAllocator,
13017     VkDebugReportCallbackEXT*                   pCallback);
13018 
13019 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
13020     VkInstance                                  instance,
13021     VkDebugReportCallbackEXT                    callback,
13022     const VkAllocationCallbacks*                pAllocator);
13023 
13024 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
13025     VkInstance                                  instance,
13026     VkDebugReportFlagsEXT                       flags,
13027     VkDebugReportObjectTypeEXT                  objectType,
13028     uint64_t                                    object,
13029     size_t                                      location,
13030     int32_t                                     messageCode,
13031     const char*                                 pLayerPrefix,
13032     const char*                                 pMessage);
13033 #endif
13034 
13035 
13036 // VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
13037 #define VK_NV_glsl_shader 1
13038 #define VK_NV_GLSL_SHADER_SPEC_VERSION    1
13039 #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
13040 
13041 
13042 // VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
13043 #define VK_EXT_depth_range_unrestricted 1
13044 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
13045 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
13046 
13047 
13048 // VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
13049 #define VK_IMG_filter_cubic 1
13050 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
13051 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
13052 
13053 
13054 // VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
13055 #define VK_AMD_rasterization_order 1
13056 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
13057 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
13058 
13059 typedef enum VkRasterizationOrderAMD {
13060     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
13061     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
13062     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
13063 } VkRasterizationOrderAMD;
13064 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
13065     VkStructureType            sType;
13066     const void*                pNext;
13067     VkRasterizationOrderAMD    rasterizationOrder;
13068 } VkPipelineRasterizationStateRasterizationOrderAMD;
13069 
13070 
13071 
13072 // VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
13073 #define VK_AMD_shader_trinary_minmax 1
13074 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
13075 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
13076 
13077 
13078 // VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
13079 #define VK_AMD_shader_explicit_vertex_parameter 1
13080 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
13081 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
13082 
13083 
13084 // VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
13085 #define VK_EXT_debug_marker 1
13086 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
13087 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
13088 typedef struct VkDebugMarkerObjectNameInfoEXT {
13089     VkStructureType               sType;
13090     const void*                   pNext;
13091     VkDebugReportObjectTypeEXT    objectType;
13092     uint64_t                      object;
13093     const char*                   pObjectName;
13094 } VkDebugMarkerObjectNameInfoEXT;
13095 
13096 typedef struct VkDebugMarkerObjectTagInfoEXT {
13097     VkStructureType               sType;
13098     const void*                   pNext;
13099     VkDebugReportObjectTypeEXT    objectType;
13100     uint64_t                      object;
13101     uint64_t                      tagName;
13102     size_t                        tagSize;
13103     const void*                   pTag;
13104 } VkDebugMarkerObjectTagInfoEXT;
13105 
13106 typedef struct VkDebugMarkerMarkerInfoEXT {
13107     VkStructureType    sType;
13108     const void*        pNext;
13109     const char*        pMarkerName;
13110     float              color[4];
13111 } VkDebugMarkerMarkerInfoEXT;
13112 
13113 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
13114 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
13115 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
13116 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
13117 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
13118 
13119 #ifndef VK_NO_PROTOTYPES
13120 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
13121     VkDevice                                    device,
13122     const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
13123 
13124 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
13125     VkDevice                                    device,
13126     const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
13127 
13128 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
13129     VkCommandBuffer                             commandBuffer,
13130     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
13131 
13132 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
13133     VkCommandBuffer                             commandBuffer);
13134 
13135 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
13136     VkCommandBuffer                             commandBuffer,
13137     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
13138 #endif
13139 
13140 
13141 // VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
13142 #define VK_AMD_gcn_shader 1
13143 #define VK_AMD_GCN_SHADER_SPEC_VERSION    1
13144 #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
13145 
13146 
13147 // VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
13148 #define VK_NV_dedicated_allocation 1
13149 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
13150 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
13151 typedef struct VkDedicatedAllocationImageCreateInfoNV {
13152     VkStructureType    sType;
13153     const void*        pNext;
13154     VkBool32           dedicatedAllocation;
13155 } VkDedicatedAllocationImageCreateInfoNV;
13156 
13157 typedef struct VkDedicatedAllocationBufferCreateInfoNV {
13158     VkStructureType    sType;
13159     const void*        pNext;
13160     VkBool32           dedicatedAllocation;
13161 } VkDedicatedAllocationBufferCreateInfoNV;
13162 
13163 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
13164     VkStructureType    sType;
13165     const void*        pNext;
13166     VkImage            image;
13167     VkBuffer           buffer;
13168 } VkDedicatedAllocationMemoryAllocateInfoNV;
13169 
13170 
13171 
13172 // VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
13173 #define VK_EXT_transform_feedback 1
13174 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
13175 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
13176 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
13177 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
13178     VkStructureType    sType;
13179     void*              pNext;
13180     VkBool32           transformFeedback;
13181     VkBool32           geometryStreams;
13182 } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
13183 
13184 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
13185     VkStructureType    sType;
13186     void*              pNext;
13187     uint32_t           maxTransformFeedbackStreams;
13188     uint32_t           maxTransformFeedbackBuffers;
13189     VkDeviceSize       maxTransformFeedbackBufferSize;
13190     uint32_t           maxTransformFeedbackStreamDataSize;
13191     uint32_t           maxTransformFeedbackBufferDataSize;
13192     uint32_t           maxTransformFeedbackBufferDataStride;
13193     VkBool32           transformFeedbackQueries;
13194     VkBool32           transformFeedbackStreamsLinesTriangles;
13195     VkBool32           transformFeedbackRasterizationStreamSelect;
13196     VkBool32           transformFeedbackDraw;
13197 } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
13198 
13199 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
13200     VkStructureType                                     sType;
13201     const void*                                         pNext;
13202     VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
13203     uint32_t                                            rasterizationStream;
13204 } VkPipelineRasterizationStateStreamCreateInfoEXT;
13205 
13206 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
13207 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
13208 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
13209 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
13210 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
13211 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
13212 
13213 #ifndef VK_NO_PROTOTYPES
13214 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
13215     VkCommandBuffer                             commandBuffer,
13216     uint32_t                                    firstBinding,
13217     uint32_t                                    bindingCount,
13218     const VkBuffer*                             pBuffers,
13219     const VkDeviceSize*                         pOffsets,
13220     const VkDeviceSize*                         pSizes);
13221 
13222 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
13223     VkCommandBuffer                             commandBuffer,
13224     uint32_t                                    firstCounterBuffer,
13225     uint32_t                                    counterBufferCount,
13226     const VkBuffer*                             pCounterBuffers,
13227     const VkDeviceSize*                         pCounterBufferOffsets);
13228 
13229 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
13230     VkCommandBuffer                             commandBuffer,
13231     uint32_t                                    firstCounterBuffer,
13232     uint32_t                                    counterBufferCount,
13233     const VkBuffer*                             pCounterBuffers,
13234     const VkDeviceSize*                         pCounterBufferOffsets);
13235 
13236 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
13237     VkCommandBuffer                             commandBuffer,
13238     VkQueryPool                                 queryPool,
13239     uint32_t                                    query,
13240     VkQueryControlFlags                         flags,
13241     uint32_t                                    index);
13242 
13243 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
13244     VkCommandBuffer                             commandBuffer,
13245     VkQueryPool                                 queryPool,
13246     uint32_t                                    query,
13247     uint32_t                                    index);
13248 
13249 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
13250     VkCommandBuffer                             commandBuffer,
13251     uint32_t                                    instanceCount,
13252     uint32_t                                    firstInstance,
13253     VkBuffer                                    counterBuffer,
13254     VkDeviceSize                                counterBufferOffset,
13255     uint32_t                                    counterOffset,
13256     uint32_t                                    vertexStride);
13257 #endif
13258 
13259 
13260 // VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
13261 #define VK_NVX_binary_import 1
13262 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
13263 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
13264 #define VK_NVX_BINARY_IMPORT_SPEC_VERSION 2
13265 #define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
13266 typedef struct VkCuModuleCreateInfoNVX {
13267     VkStructureType    sType;
13268     const void*        pNext;
13269     size_t             dataSize;
13270     const void*        pData;
13271 } VkCuModuleCreateInfoNVX;
13272 
13273 typedef struct VkCuModuleTexturingModeCreateInfoNVX {
13274     VkStructureType    sType;
13275     const void*        pNext;
13276     VkBool32           use64bitTexturing;
13277 } VkCuModuleTexturingModeCreateInfoNVX;
13278 
13279 typedef struct VkCuFunctionCreateInfoNVX {
13280     VkStructureType    sType;
13281     const void*        pNext;
13282     VkCuModuleNVX      module;
13283     const char*        pName;
13284 } VkCuFunctionCreateInfoNVX;
13285 
13286 typedef struct VkCuLaunchInfoNVX {
13287     VkStructureType        sType;
13288     const void*            pNext;
13289     VkCuFunctionNVX        function;
13290     uint32_t               gridDimX;
13291     uint32_t               gridDimY;
13292     uint32_t               gridDimZ;
13293     uint32_t               blockDimX;
13294     uint32_t               blockDimY;
13295     uint32_t               blockDimZ;
13296     uint32_t               sharedMemBytes;
13297     size_t                 paramCount;
13298     const void* const *    pParams;
13299     size_t                 extraCount;
13300     const void* const *    pExtras;
13301 } VkCuLaunchInfoNVX;
13302 
13303 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
13304 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
13305 typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
13306 typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
13307 typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
13308 
13309 #ifndef VK_NO_PROTOTYPES
13310 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
13311     VkDevice                                    device,
13312     const VkCuModuleCreateInfoNVX*              pCreateInfo,
13313     const VkAllocationCallbacks*                pAllocator,
13314     VkCuModuleNVX*                              pModule);
13315 
13316 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
13317     VkDevice                                    device,
13318     const VkCuFunctionCreateInfoNVX*            pCreateInfo,
13319     const VkAllocationCallbacks*                pAllocator,
13320     VkCuFunctionNVX*                            pFunction);
13321 
13322 VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
13323     VkDevice                                    device,
13324     VkCuModuleNVX                               module,
13325     const VkAllocationCallbacks*                pAllocator);
13326 
13327 VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
13328     VkDevice                                    device,
13329     VkCuFunctionNVX                             function,
13330     const VkAllocationCallbacks*                pAllocator);
13331 
13332 VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
13333     VkCommandBuffer                             commandBuffer,
13334     const VkCuLaunchInfoNVX*                    pLaunchInfo);
13335 #endif
13336 
13337 
13338 // VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
13339 #define VK_NVX_image_view_handle 1
13340 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 3
13341 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
13342 typedef struct VkImageViewHandleInfoNVX {
13343     VkStructureType     sType;
13344     const void*         pNext;
13345     VkImageView         imageView;
13346     VkDescriptorType    descriptorType;
13347     VkSampler           sampler;
13348 } VkImageViewHandleInfoNVX;
13349 
13350 typedef struct VkImageViewAddressPropertiesNVX {
13351     VkStructureType    sType;
13352     void*              pNext;
13353     VkDeviceAddress    deviceAddress;
13354     VkDeviceSize       size;
13355 } VkImageViewAddressPropertiesNVX;
13356 
13357 typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
13358 typedef uint64_t (VKAPI_PTR *PFN_vkGetImageViewHandle64NVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
13359 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
13360 
13361 #ifndef VK_NO_PROTOTYPES
13362 VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
13363     VkDevice                                    device,
13364     const VkImageViewHandleInfoNVX*             pInfo);
13365 
13366 VKAPI_ATTR uint64_t VKAPI_CALL vkGetImageViewHandle64NVX(
13367     VkDevice                                    device,
13368     const VkImageViewHandleInfoNVX*             pInfo);
13369 
13370 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
13371     VkDevice                                    device,
13372     VkImageView                                 imageView,
13373     VkImageViewAddressPropertiesNVX*            pProperties);
13374 #endif
13375 
13376 
13377 // VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
13378 #define VK_AMD_draw_indirect_count 1
13379 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
13380 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
13381 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
13382 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
13383 
13384 #ifndef VK_NO_PROTOTYPES
13385 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
13386     VkCommandBuffer                             commandBuffer,
13387     VkBuffer                                    buffer,
13388     VkDeviceSize                                offset,
13389     VkBuffer                                    countBuffer,
13390     VkDeviceSize                                countBufferOffset,
13391     uint32_t                                    maxDrawCount,
13392     uint32_t                                    stride);
13393 
13394 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
13395     VkCommandBuffer                             commandBuffer,
13396     VkBuffer                                    buffer,
13397     VkDeviceSize                                offset,
13398     VkBuffer                                    countBuffer,
13399     VkDeviceSize                                countBufferOffset,
13400     uint32_t                                    maxDrawCount,
13401     uint32_t                                    stride);
13402 #endif
13403 
13404 
13405 // VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
13406 #define VK_AMD_negative_viewport_height 1
13407 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
13408 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
13409 
13410 
13411 // VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
13412 #define VK_AMD_gpu_shader_half_float 1
13413 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
13414 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
13415 
13416 
13417 // VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
13418 #define VK_AMD_shader_ballot 1
13419 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
13420 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
13421 
13422 
13423 // VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
13424 #define VK_AMD_texture_gather_bias_lod 1
13425 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
13426 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
13427 typedef struct VkTextureLODGatherFormatPropertiesAMD {
13428     VkStructureType    sType;
13429     void*              pNext;
13430     VkBool32           supportsTextureGatherLODBiasAMD;
13431 } VkTextureLODGatherFormatPropertiesAMD;
13432 
13433 
13434 
13435 // VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
13436 #define VK_AMD_shader_info 1
13437 #define VK_AMD_SHADER_INFO_SPEC_VERSION   1
13438 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
13439 
13440 typedef enum VkShaderInfoTypeAMD {
13441     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
13442     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
13443     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
13444     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
13445 } VkShaderInfoTypeAMD;
13446 typedef struct VkShaderResourceUsageAMD {
13447     uint32_t    numUsedVgprs;
13448     uint32_t    numUsedSgprs;
13449     uint32_t    ldsSizePerLocalWorkGroup;
13450     size_t      ldsUsageSizeInBytes;
13451     size_t      scratchMemUsageInBytes;
13452 } VkShaderResourceUsageAMD;
13453 
13454 typedef struct VkShaderStatisticsInfoAMD {
13455     VkShaderStageFlags          shaderStageMask;
13456     VkShaderResourceUsageAMD    resourceUsage;
13457     uint32_t                    numPhysicalVgprs;
13458     uint32_t                    numPhysicalSgprs;
13459     uint32_t                    numAvailableVgprs;
13460     uint32_t                    numAvailableSgprs;
13461     uint32_t                    computeWorkGroupSize[3];
13462 } VkShaderStatisticsInfoAMD;
13463 
13464 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
13465 
13466 #ifndef VK_NO_PROTOTYPES
13467 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
13468     VkDevice                                    device,
13469     VkPipeline                                  pipeline,
13470     VkShaderStageFlagBits                       shaderStage,
13471     VkShaderInfoTypeAMD                         infoType,
13472     size_t*                                     pInfoSize,
13473     void*                                       pInfo);
13474 #endif
13475 
13476 
13477 // VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
13478 #define VK_AMD_shader_image_load_store_lod 1
13479 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
13480 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
13481 
13482 
13483 // VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
13484 #define VK_NV_corner_sampled_image 1
13485 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
13486 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
13487 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
13488     VkStructureType    sType;
13489     void*              pNext;
13490     VkBool32           cornerSampledImage;
13491 } VkPhysicalDeviceCornerSampledImageFeaturesNV;
13492 
13493 
13494 
13495 // VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
13496 #define VK_IMG_format_pvrtc 1
13497 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
13498 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
13499 
13500 
13501 // VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
13502 #define VK_NV_external_memory_capabilities 1
13503 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
13504 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
13505 
13506 typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
13507     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
13508     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
13509     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
13510     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
13511     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
13512 } VkExternalMemoryHandleTypeFlagBitsNV;
13513 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
13514 
13515 typedef enum VkExternalMemoryFeatureFlagBitsNV {
13516     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
13517     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
13518     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
13519     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
13520 } VkExternalMemoryFeatureFlagBitsNV;
13521 typedef VkFlags VkExternalMemoryFeatureFlagsNV;
13522 typedef struct VkExternalImageFormatPropertiesNV {
13523     VkImageFormatProperties              imageFormatProperties;
13524     VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
13525     VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
13526     VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
13527 } VkExternalImageFormatPropertiesNV;
13528 
13529 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
13530 
13531 #ifndef VK_NO_PROTOTYPES
13532 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
13533     VkPhysicalDevice                            physicalDevice,
13534     VkFormat                                    format,
13535     VkImageType                                 type,
13536     VkImageTiling                               tiling,
13537     VkImageUsageFlags                           usage,
13538     VkImageCreateFlags                          flags,
13539     VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
13540     VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
13541 #endif
13542 
13543 
13544 // VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
13545 #define VK_NV_external_memory 1
13546 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
13547 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
13548 typedef struct VkExternalMemoryImageCreateInfoNV {
13549     VkStructureType                      sType;
13550     const void*                          pNext;
13551     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
13552 } VkExternalMemoryImageCreateInfoNV;
13553 
13554 typedef struct VkExportMemoryAllocateInfoNV {
13555     VkStructureType                      sType;
13556     const void*                          pNext;
13557     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
13558 } VkExportMemoryAllocateInfoNV;
13559 
13560 
13561 
13562 // VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
13563 #define VK_EXT_validation_flags 1
13564 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
13565 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
13566 
13567 typedef enum VkValidationCheckEXT {
13568     VK_VALIDATION_CHECK_ALL_EXT = 0,
13569     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
13570     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
13571 } VkValidationCheckEXT;
13572 typedef struct VkValidationFlagsEXT {
13573     VkStructureType                sType;
13574     const void*                    pNext;
13575     uint32_t                       disabledValidationCheckCount;
13576     const VkValidationCheckEXT*    pDisabledValidationChecks;
13577 } VkValidationFlagsEXT;
13578 
13579 
13580 
13581 // VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
13582 #define VK_EXT_shader_subgroup_ballot 1
13583 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
13584 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
13585 
13586 
13587 // VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
13588 #define VK_EXT_shader_subgroup_vote 1
13589 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
13590 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
13591 
13592 
13593 // VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
13594 #define VK_EXT_texture_compression_astc_hdr 1
13595 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
13596 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
13597 typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
13598 
13599 
13600 
13601 // VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
13602 #define VK_EXT_astc_decode_mode 1
13603 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
13604 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
13605 typedef struct VkImageViewASTCDecodeModeEXT {
13606     VkStructureType    sType;
13607     const void*        pNext;
13608     VkFormat           decodeMode;
13609 } VkImageViewASTCDecodeModeEXT;
13610 
13611 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
13612     VkStructureType    sType;
13613     void*              pNext;
13614     VkBool32           decodeModeSharedExponent;
13615 } VkPhysicalDeviceASTCDecodeFeaturesEXT;
13616 
13617 
13618 
13619 // VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
13620 #define VK_EXT_pipeline_robustness 1
13621 #define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
13622 #define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
13623 typedef VkPipelineRobustnessBufferBehavior VkPipelineRobustnessBufferBehaviorEXT;
13624 
13625 typedef VkPipelineRobustnessImageBehavior VkPipelineRobustnessImageBehaviorEXT;
13626 
13627 typedef VkPhysicalDevicePipelineRobustnessFeatures VkPhysicalDevicePipelineRobustnessFeaturesEXT;
13628 
13629 typedef VkPhysicalDevicePipelineRobustnessProperties VkPhysicalDevicePipelineRobustnessPropertiesEXT;
13630 
13631 typedef VkPipelineRobustnessCreateInfo VkPipelineRobustnessCreateInfoEXT;
13632 
13633 
13634 
13635 // VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
13636 #define VK_EXT_conditional_rendering 1
13637 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
13638 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
13639 
13640 typedef enum VkConditionalRenderingFlagBitsEXT {
13641     VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
13642     VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13643 } VkConditionalRenderingFlagBitsEXT;
13644 typedef VkFlags VkConditionalRenderingFlagsEXT;
13645 typedef struct VkConditionalRenderingBeginInfoEXT {
13646     VkStructureType                   sType;
13647     const void*                       pNext;
13648     VkBuffer                          buffer;
13649     VkDeviceSize                      offset;
13650     VkConditionalRenderingFlagsEXT    flags;
13651 } VkConditionalRenderingBeginInfoEXT;
13652 
13653 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
13654     VkStructureType    sType;
13655     void*              pNext;
13656     VkBool32           conditionalRendering;
13657     VkBool32           inheritedConditionalRendering;
13658 } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
13659 
13660 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
13661     VkStructureType    sType;
13662     const void*        pNext;
13663     VkBool32           conditionalRenderingEnable;
13664 } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
13665 
13666 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
13667 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
13668 
13669 #ifndef VK_NO_PROTOTYPES
13670 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
13671     VkCommandBuffer                             commandBuffer,
13672     const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin);
13673 
13674 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
13675     VkCommandBuffer                             commandBuffer);
13676 #endif
13677 
13678 
13679 // VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
13680 #define VK_NV_clip_space_w_scaling 1
13681 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
13682 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
13683 typedef struct VkViewportWScalingNV {
13684     float    xcoeff;
13685     float    ycoeff;
13686 } VkViewportWScalingNV;
13687 
13688 typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
13689     VkStructureType                sType;
13690     const void*                    pNext;
13691     VkBool32                       viewportWScalingEnable;
13692     uint32_t                       viewportCount;
13693     const VkViewportWScalingNV*    pViewportWScalings;
13694 } VkPipelineViewportWScalingStateCreateInfoNV;
13695 
13696 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
13697 
13698 #ifndef VK_NO_PROTOTYPES
13699 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
13700     VkCommandBuffer                             commandBuffer,
13701     uint32_t                                    firstViewport,
13702     uint32_t                                    viewportCount,
13703     const VkViewportWScalingNV*                 pViewportWScalings);
13704 #endif
13705 
13706 
13707 // VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
13708 #define VK_EXT_direct_mode_display 1
13709 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
13710 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
13711 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
13712 
13713 #ifndef VK_NO_PROTOTYPES
13714 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
13715     VkPhysicalDevice                            physicalDevice,
13716     VkDisplayKHR                                display);
13717 #endif
13718 
13719 
13720 // VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
13721 #define VK_EXT_display_surface_counter 1
13722 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
13723 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
13724 
13725 typedef enum VkSurfaceCounterFlagBitsEXT {
13726     VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
13727   // VK_SURFACE_COUNTER_VBLANK_EXT is a deprecated alias
13728     VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
13729     VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13730 } VkSurfaceCounterFlagBitsEXT;
13731 typedef VkFlags VkSurfaceCounterFlagsEXT;
13732 typedef struct VkSurfaceCapabilities2EXT {
13733     VkStructureType                  sType;
13734     void*                            pNext;
13735     uint32_t                         minImageCount;
13736     uint32_t                         maxImageCount;
13737     VkExtent2D                       currentExtent;
13738     VkExtent2D                       minImageExtent;
13739     VkExtent2D                       maxImageExtent;
13740     uint32_t                         maxImageArrayLayers;
13741     VkSurfaceTransformFlagsKHR       supportedTransforms;
13742     VkSurfaceTransformFlagBitsKHR    currentTransform;
13743     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
13744     VkImageUsageFlags                supportedUsageFlags;
13745     VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
13746 } VkSurfaceCapabilities2EXT;
13747 
13748 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
13749 
13750 #ifndef VK_NO_PROTOTYPES
13751 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
13752     VkPhysicalDevice                            physicalDevice,
13753     VkSurfaceKHR                                surface,
13754     VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
13755 #endif
13756 
13757 
13758 // VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
13759 #define VK_EXT_display_control 1
13760 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
13761 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
13762 
13763 typedef enum VkDisplayPowerStateEXT {
13764     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
13765     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
13766     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
13767     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
13768 } VkDisplayPowerStateEXT;
13769 
13770 typedef enum VkDeviceEventTypeEXT {
13771     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
13772     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
13773 } VkDeviceEventTypeEXT;
13774 
13775 typedef enum VkDisplayEventTypeEXT {
13776     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
13777     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
13778 } VkDisplayEventTypeEXT;
13779 typedef struct VkDisplayPowerInfoEXT {
13780     VkStructureType           sType;
13781     const void*               pNext;
13782     VkDisplayPowerStateEXT    powerState;
13783 } VkDisplayPowerInfoEXT;
13784 
13785 typedef struct VkDeviceEventInfoEXT {
13786     VkStructureType         sType;
13787     const void*             pNext;
13788     VkDeviceEventTypeEXT    deviceEvent;
13789 } VkDeviceEventInfoEXT;
13790 
13791 typedef struct VkDisplayEventInfoEXT {
13792     VkStructureType          sType;
13793     const void*              pNext;
13794     VkDisplayEventTypeEXT    displayEvent;
13795 } VkDisplayEventInfoEXT;
13796 
13797 typedef struct VkSwapchainCounterCreateInfoEXT {
13798     VkStructureType             sType;
13799     const void*                 pNext;
13800     VkSurfaceCounterFlagsEXT    surfaceCounters;
13801 } VkSwapchainCounterCreateInfoEXT;
13802 
13803 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
13804 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
13805 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
13806 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
13807 
13808 #ifndef VK_NO_PROTOTYPES
13809 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
13810     VkDevice                                    device,
13811     VkDisplayKHR                                display,
13812     const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
13813 
13814 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
13815     VkDevice                                    device,
13816     const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
13817     const VkAllocationCallbacks*                pAllocator,
13818     VkFence*                                    pFence);
13819 
13820 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
13821     VkDevice                                    device,
13822     VkDisplayKHR                                display,
13823     const VkDisplayEventInfoEXT*                pDisplayEventInfo,
13824     const VkAllocationCallbacks*                pAllocator,
13825     VkFence*                                    pFence);
13826 
13827 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
13828     VkDevice                                    device,
13829     VkSwapchainKHR                              swapchain,
13830     VkSurfaceCounterFlagBitsEXT                 counter,
13831     uint64_t*                                   pCounterValue);
13832 #endif
13833 
13834 
13835 // VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
13836 #define VK_GOOGLE_display_timing 1
13837 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
13838 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
13839 typedef struct VkRefreshCycleDurationGOOGLE {
13840     uint64_t    refreshDuration;
13841 } VkRefreshCycleDurationGOOGLE;
13842 
13843 typedef struct VkPastPresentationTimingGOOGLE {
13844     uint32_t    presentID;
13845     uint64_t    desiredPresentTime;
13846     uint64_t    actualPresentTime;
13847     uint64_t    earliestPresentTime;
13848     uint64_t    presentMargin;
13849 } VkPastPresentationTimingGOOGLE;
13850 
13851 typedef struct VkPresentTimeGOOGLE {
13852     uint32_t    presentID;
13853     uint64_t    desiredPresentTime;
13854 } VkPresentTimeGOOGLE;
13855 
13856 typedef struct VkPresentTimesInfoGOOGLE {
13857     VkStructureType               sType;
13858     const void*                   pNext;
13859     uint32_t                      swapchainCount;
13860     const VkPresentTimeGOOGLE*    pTimes;
13861 } VkPresentTimesInfoGOOGLE;
13862 
13863 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
13864 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
13865 
13866 #ifndef VK_NO_PROTOTYPES
13867 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
13868     VkDevice                                    device,
13869     VkSwapchainKHR                              swapchain,
13870     VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
13871 
13872 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
13873     VkDevice                                    device,
13874     VkSwapchainKHR                              swapchain,
13875     uint32_t*                                   pPresentationTimingCount,
13876     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
13877 #endif
13878 
13879 
13880 // VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
13881 #define VK_NV_sample_mask_override_coverage 1
13882 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
13883 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
13884 
13885 
13886 // VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
13887 #define VK_NV_geometry_shader_passthrough 1
13888 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
13889 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
13890 
13891 
13892 // VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
13893 #define VK_NV_viewport_array2 1
13894 #define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
13895 #define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
13896 // VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION is a deprecated alias
13897 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
13898 // VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME is a deprecated alias
13899 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
13900 
13901 
13902 // VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
13903 #define VK_NVX_multiview_per_view_attributes 1
13904 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
13905 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
13906 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
13907     VkStructureType    sType;
13908     void*              pNext;
13909     VkBool32           perViewPositionAllComponents;
13910 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
13911 
13912 typedef struct VkMultiviewPerViewAttributesInfoNVX {
13913     VkStructureType    sType;
13914     const void*        pNext;
13915     VkBool32           perViewAttributes;
13916     VkBool32           perViewAttributesPositionXOnly;
13917 } VkMultiviewPerViewAttributesInfoNVX;
13918 
13919 
13920 
13921 // VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
13922 #define VK_NV_viewport_swizzle 1
13923 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
13924 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
13925 
13926 typedef enum VkViewportCoordinateSwizzleNV {
13927     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
13928     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
13929     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
13930     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
13931     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
13932     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
13933     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
13934     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
13935     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
13936 } VkViewportCoordinateSwizzleNV;
13937 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
13938 typedef struct VkViewportSwizzleNV {
13939     VkViewportCoordinateSwizzleNV    x;
13940     VkViewportCoordinateSwizzleNV    y;
13941     VkViewportCoordinateSwizzleNV    z;
13942     VkViewportCoordinateSwizzleNV    w;
13943 } VkViewportSwizzleNV;
13944 
13945 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
13946     VkStructureType                                sType;
13947     const void*                                    pNext;
13948     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
13949     uint32_t                                       viewportCount;
13950     const VkViewportSwizzleNV*                     pViewportSwizzles;
13951 } VkPipelineViewportSwizzleStateCreateInfoNV;
13952 
13953 
13954 
13955 // VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
13956 #define VK_EXT_discard_rectangles 1
13957 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
13958 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
13959 
13960 typedef enum VkDiscardRectangleModeEXT {
13961     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
13962     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
13963     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
13964 } VkDiscardRectangleModeEXT;
13965 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
13966 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
13967     VkStructureType    sType;
13968     void*              pNext;
13969     uint32_t           maxDiscardRectangles;
13970 } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
13971 
13972 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
13973     VkStructureType                                  sType;
13974     const void*                                      pNext;
13975     VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
13976     VkDiscardRectangleModeEXT                        discardRectangleMode;
13977     uint32_t                                         discardRectangleCount;
13978     const VkRect2D*                                  pDiscardRectangles;
13979 } VkPipelineDiscardRectangleStateCreateInfoEXT;
13980 
13981 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
13982 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
13983 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
13984 
13985 #ifndef VK_NO_PROTOTYPES
13986 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
13987     VkCommandBuffer                             commandBuffer,
13988     uint32_t                                    firstDiscardRectangle,
13989     uint32_t                                    discardRectangleCount,
13990     const VkRect2D*                             pDiscardRectangles);
13991 
13992 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
13993     VkCommandBuffer                             commandBuffer,
13994     VkBool32                                    discardRectangleEnable);
13995 
13996 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
13997     VkCommandBuffer                             commandBuffer,
13998     VkDiscardRectangleModeEXT                   discardRectangleMode);
13999 #endif
14000 
14001 
14002 // VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
14003 #define VK_EXT_conservative_rasterization 1
14004 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
14005 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
14006 
14007 typedef enum VkConservativeRasterizationModeEXT {
14008     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
14009     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
14010     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
14011     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
14012 } VkConservativeRasterizationModeEXT;
14013 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
14014 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
14015     VkStructureType    sType;
14016     void*              pNext;
14017     float              primitiveOverestimationSize;
14018     float              maxExtraPrimitiveOverestimationSize;
14019     float              extraPrimitiveOverestimationSizeGranularity;
14020     VkBool32           primitiveUnderestimation;
14021     VkBool32           conservativePointAndLineRasterization;
14022     VkBool32           degenerateTrianglesRasterized;
14023     VkBool32           degenerateLinesRasterized;
14024     VkBool32           fullyCoveredFragmentShaderInputVariable;
14025     VkBool32           conservativeRasterizationPostDepthCoverage;
14026 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
14027 
14028 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
14029     VkStructureType                                           sType;
14030     const void*                                               pNext;
14031     VkPipelineRasterizationConservativeStateCreateFlagsEXT    flags;
14032     VkConservativeRasterizationModeEXT                        conservativeRasterizationMode;
14033     float                                                     extraPrimitiveOverestimationSize;
14034 } VkPipelineRasterizationConservativeStateCreateInfoEXT;
14035 
14036 
14037 
14038 // VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
14039 #define VK_EXT_depth_clip_enable 1
14040 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
14041 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
14042 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
14043 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
14044     VkStructureType    sType;
14045     void*              pNext;
14046     VkBool32           depthClipEnable;
14047 } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
14048 
14049 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
14050     VkStructureType                                        sType;
14051     const void*                                            pNext;
14052     VkPipelineRasterizationDepthClipStateCreateFlagsEXT    flags;
14053     VkBool32                                               depthClipEnable;
14054 } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
14055 
14056 
14057 
14058 // VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
14059 #define VK_EXT_swapchain_colorspace 1
14060 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 5
14061 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
14062 
14063 
14064 // VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
14065 #define VK_EXT_hdr_metadata 1
14066 #define VK_EXT_HDR_METADATA_SPEC_VERSION  3
14067 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
14068 typedef struct VkXYColorEXT {
14069     float    x;
14070     float    y;
14071 } VkXYColorEXT;
14072 
14073 typedef struct VkHdrMetadataEXT {
14074     VkStructureType    sType;
14075     const void*        pNext;
14076     VkXYColorEXT       displayPrimaryRed;
14077     VkXYColorEXT       displayPrimaryGreen;
14078     VkXYColorEXT       displayPrimaryBlue;
14079     VkXYColorEXT       whitePoint;
14080     float              maxLuminance;
14081     float              minLuminance;
14082     float              maxContentLightLevel;
14083     float              maxFrameAverageLightLevel;
14084 } VkHdrMetadataEXT;
14085 
14086 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
14087 
14088 #ifndef VK_NO_PROTOTYPES
14089 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
14090     VkDevice                                    device,
14091     uint32_t                                    swapchainCount,
14092     const VkSwapchainKHR*                       pSwapchains,
14093     const VkHdrMetadataEXT*                     pMetadata);
14094 #endif
14095 
14096 
14097 // VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
14098 #define VK_IMG_relaxed_line_rasterization 1
14099 #define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
14100 #define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
14101 typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
14102     VkStructureType    sType;
14103     void*              pNext;
14104     VkBool32           relaxedLineRasterization;
14105 } VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
14106 
14107 
14108 
14109 // VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
14110 #define VK_EXT_external_memory_dma_buf 1
14111 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
14112 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
14113 
14114 
14115 // VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
14116 #define VK_EXT_queue_family_foreign 1
14117 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
14118 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
14119 #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~2U)
14120 
14121 
14122 // VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
14123 #define VK_EXT_debug_utils 1
14124 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
14125 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   2
14126 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
14127 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
14128 
14129 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
14130     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
14131     VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
14132     VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
14133     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
14134     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14135 } VkDebugUtilsMessageSeverityFlagBitsEXT;
14136 
14137 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
14138     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
14139     VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
14140     VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
14141     VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
14142     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14143 } VkDebugUtilsMessageTypeFlagBitsEXT;
14144 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
14145 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
14146 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
14147 typedef struct VkDebugUtilsLabelEXT {
14148     VkStructureType    sType;
14149     const void*        pNext;
14150     const char*        pLabelName;
14151     float              color[4];
14152 } VkDebugUtilsLabelEXT;
14153 
14154 typedef struct VkDebugUtilsObjectNameInfoEXT {
14155     VkStructureType    sType;
14156     const void*        pNext;
14157     VkObjectType       objectType;
14158     uint64_t           objectHandle;
14159     const char*        pObjectName;
14160 } VkDebugUtilsObjectNameInfoEXT;
14161 
14162 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
14163     VkStructureType                              sType;
14164     const void*                                  pNext;
14165     VkDebugUtilsMessengerCallbackDataFlagsEXT    flags;
14166     const char*                                  pMessageIdName;
14167     int32_t                                      messageIdNumber;
14168     const char*                                  pMessage;
14169     uint32_t                                     queueLabelCount;
14170     const VkDebugUtilsLabelEXT*                  pQueueLabels;
14171     uint32_t                                     cmdBufLabelCount;
14172     const VkDebugUtilsLabelEXT*                  pCmdBufLabels;
14173     uint32_t                                     objectCount;
14174     const VkDebugUtilsObjectNameInfoEXT*         pObjects;
14175 } VkDebugUtilsMessengerCallbackDataEXT;
14176 
14177 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
14178     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
14179     VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,
14180     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
14181     void*                                            pUserData);
14182 
14183 typedef struct VkDebugUtilsMessengerCreateInfoEXT {
14184     VkStructureType                         sType;
14185     const void*                             pNext;
14186     VkDebugUtilsMessengerCreateFlagsEXT     flags;
14187     VkDebugUtilsMessageSeverityFlagsEXT     messageSeverity;
14188     VkDebugUtilsMessageTypeFlagsEXT         messageType;
14189     PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
14190     void*                                   pUserData;
14191 } VkDebugUtilsMessengerCreateInfoEXT;
14192 
14193 typedef struct VkDebugUtilsObjectTagInfoEXT {
14194     VkStructureType    sType;
14195     const void*        pNext;
14196     VkObjectType       objectType;
14197     uint64_t           objectHandle;
14198     uint64_t           tagName;
14199     size_t             tagSize;
14200     const void*        pTag;
14201 } VkDebugUtilsObjectTagInfoEXT;
14202 
14203 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
14204 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
14205 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
14206 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
14207 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
14208 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
14209 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
14210 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
14211 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
14212 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
14213 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
14214 
14215 #ifndef VK_NO_PROTOTYPES
14216 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
14217     VkDevice                                    device,
14218     const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
14219 
14220 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
14221     VkDevice                                    device,
14222     const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
14223 
14224 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
14225     VkQueue                                     queue,
14226     const VkDebugUtilsLabelEXT*                 pLabelInfo);
14227 
14228 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
14229     VkQueue                                     queue);
14230 
14231 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
14232     VkQueue                                     queue,
14233     const VkDebugUtilsLabelEXT*                 pLabelInfo);
14234 
14235 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
14236     VkCommandBuffer                             commandBuffer,
14237     const VkDebugUtilsLabelEXT*                 pLabelInfo);
14238 
14239 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
14240     VkCommandBuffer                             commandBuffer);
14241 
14242 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
14243     VkCommandBuffer                             commandBuffer,
14244     const VkDebugUtilsLabelEXT*                 pLabelInfo);
14245 
14246 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
14247     VkInstance                                  instance,
14248     const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo,
14249     const VkAllocationCallbacks*                pAllocator,
14250     VkDebugUtilsMessengerEXT*                   pMessenger);
14251 
14252 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
14253     VkInstance                                  instance,
14254     VkDebugUtilsMessengerEXT                    messenger,
14255     const VkAllocationCallbacks*                pAllocator);
14256 
14257 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
14258     VkInstance                                  instance,
14259     VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
14260     VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
14261     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
14262 #endif
14263 
14264 
14265 // VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
14266 #define VK_EXT_sampler_filter_minmax 1
14267 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
14268 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
14269 typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
14270 
14271 typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
14272 
14273 typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
14274 
14275 
14276 
14277 // VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
14278 #define VK_AMD_gpu_shader_int16 1
14279 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
14280 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
14281 
14282 
14283 // VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
14284 #define VK_AMD_mixed_attachment_samples 1
14285 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
14286 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
14287 typedef struct VkAttachmentSampleCountInfoAMD {
14288     VkStructureType                 sType;
14289     const void*                     pNext;
14290     uint32_t                        colorAttachmentCount;
14291     const VkSampleCountFlagBits*    pColorAttachmentSamples;
14292     VkSampleCountFlagBits           depthStencilAttachmentSamples;
14293 } VkAttachmentSampleCountInfoAMD;
14294 
14295 
14296 
14297 // VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
14298 #define VK_AMD_shader_fragment_mask 1
14299 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
14300 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
14301 
14302 
14303 // VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
14304 #define VK_EXT_inline_uniform_block 1
14305 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
14306 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
14307 typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
14308 
14309 typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
14310 
14311 typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
14312 
14313 typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
14314 
14315 
14316 
14317 // VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
14318 #define VK_EXT_shader_stencil_export 1
14319 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
14320 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
14321 
14322 
14323 // VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
14324 #define VK_EXT_sample_locations 1
14325 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
14326 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
14327 typedef struct VkSampleLocationEXT {
14328     float    x;
14329     float    y;
14330 } VkSampleLocationEXT;
14331 
14332 typedef struct VkSampleLocationsInfoEXT {
14333     VkStructureType               sType;
14334     const void*                   pNext;
14335     VkSampleCountFlagBits         sampleLocationsPerPixel;
14336     VkExtent2D                    sampleLocationGridSize;
14337     uint32_t                      sampleLocationsCount;
14338     const VkSampleLocationEXT*    pSampleLocations;
14339 } VkSampleLocationsInfoEXT;
14340 
14341 typedef struct VkAttachmentSampleLocationsEXT {
14342     uint32_t                    attachmentIndex;
14343     VkSampleLocationsInfoEXT    sampleLocationsInfo;
14344 } VkAttachmentSampleLocationsEXT;
14345 
14346 typedef struct VkSubpassSampleLocationsEXT {
14347     uint32_t                    subpassIndex;
14348     VkSampleLocationsInfoEXT    sampleLocationsInfo;
14349 } VkSubpassSampleLocationsEXT;
14350 
14351 typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
14352     VkStructureType                          sType;
14353     const void*                              pNext;
14354     uint32_t                                 attachmentInitialSampleLocationsCount;
14355     const VkAttachmentSampleLocationsEXT*    pAttachmentInitialSampleLocations;
14356     uint32_t                                 postSubpassSampleLocationsCount;
14357     const VkSubpassSampleLocationsEXT*       pPostSubpassSampleLocations;
14358 } VkRenderPassSampleLocationsBeginInfoEXT;
14359 
14360 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
14361     VkStructureType             sType;
14362     const void*                 pNext;
14363     VkBool32                    sampleLocationsEnable;
14364     VkSampleLocationsInfoEXT    sampleLocationsInfo;
14365 } VkPipelineSampleLocationsStateCreateInfoEXT;
14366 
14367 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
14368     VkStructureType       sType;
14369     void*                 pNext;
14370     VkSampleCountFlags    sampleLocationSampleCounts;
14371     VkExtent2D            maxSampleLocationGridSize;
14372     float                 sampleLocationCoordinateRange[2];
14373     uint32_t              sampleLocationSubPixelBits;
14374     VkBool32              variableSampleLocations;
14375 } VkPhysicalDeviceSampleLocationsPropertiesEXT;
14376 
14377 typedef struct VkMultisamplePropertiesEXT {
14378     VkStructureType    sType;
14379     void*              pNext;
14380     VkExtent2D         maxSampleLocationGridSize;
14381 } VkMultisamplePropertiesEXT;
14382 
14383 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
14384 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
14385 
14386 #ifndef VK_NO_PROTOTYPES
14387 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
14388     VkCommandBuffer                             commandBuffer,
14389     const VkSampleLocationsInfoEXT*             pSampleLocationsInfo);
14390 
14391 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
14392     VkPhysicalDevice                            physicalDevice,
14393     VkSampleCountFlagBits                       samples,
14394     VkMultisamplePropertiesEXT*                 pMultisampleProperties);
14395 #endif
14396 
14397 
14398 // VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
14399 #define VK_EXT_blend_operation_advanced 1
14400 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
14401 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
14402 
14403 typedef enum VkBlendOverlapEXT {
14404     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
14405     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
14406     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
14407     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
14408 } VkBlendOverlapEXT;
14409 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
14410     VkStructureType    sType;
14411     void*              pNext;
14412     VkBool32           advancedBlendCoherentOperations;
14413 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
14414 
14415 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
14416     VkStructureType    sType;
14417     void*              pNext;
14418     uint32_t           advancedBlendMaxColorAttachments;
14419     VkBool32           advancedBlendIndependentBlend;
14420     VkBool32           advancedBlendNonPremultipliedSrcColor;
14421     VkBool32           advancedBlendNonPremultipliedDstColor;
14422     VkBool32           advancedBlendCorrelatedOverlap;
14423     VkBool32           advancedBlendAllOperations;
14424 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
14425 
14426 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
14427     VkStructureType      sType;
14428     const void*          pNext;
14429     VkBool32             srcPremultiplied;
14430     VkBool32             dstPremultiplied;
14431     VkBlendOverlapEXT    blendOverlap;
14432 } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
14433 
14434 
14435 
14436 // VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
14437 #define VK_NV_fragment_coverage_to_color 1
14438 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
14439 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
14440 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
14441 typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
14442     VkStructureType                                sType;
14443     const void*                                    pNext;
14444     VkPipelineCoverageToColorStateCreateFlagsNV    flags;
14445     VkBool32                                       coverageToColorEnable;
14446     uint32_t                                       coverageToColorLocation;
14447 } VkPipelineCoverageToColorStateCreateInfoNV;
14448 
14449 
14450 
14451 // VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
14452 #define VK_NV_framebuffer_mixed_samples 1
14453 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
14454 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
14455 
14456 typedef enum VkCoverageModulationModeNV {
14457     VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
14458     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
14459     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
14460     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
14461     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
14462 } VkCoverageModulationModeNV;
14463 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
14464 typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
14465     VkStructureType                                   sType;
14466     const void*                                       pNext;
14467     VkPipelineCoverageModulationStateCreateFlagsNV    flags;
14468     VkCoverageModulationModeNV                        coverageModulationMode;
14469     VkBool32                                          coverageModulationTableEnable;
14470     uint32_t                                          coverageModulationTableCount;
14471     const float*                                      pCoverageModulationTable;
14472 } VkPipelineCoverageModulationStateCreateInfoNV;
14473 
14474 typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
14475 
14476 
14477 
14478 // VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
14479 #define VK_NV_fill_rectangle 1
14480 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
14481 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
14482 
14483 
14484 // VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
14485 #define VK_NV_shader_sm_builtins 1
14486 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
14487 #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
14488 typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
14489     VkStructureType    sType;
14490     void*              pNext;
14491     uint32_t           shaderSMCount;
14492     uint32_t           shaderWarpsPerSM;
14493 } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
14494 
14495 typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
14496     VkStructureType    sType;
14497     void*              pNext;
14498     VkBool32           shaderSMBuiltins;
14499 } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
14500 
14501 
14502 
14503 // VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
14504 #define VK_EXT_post_depth_coverage 1
14505 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
14506 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
14507 
14508 
14509 // VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
14510 #define VK_EXT_image_drm_format_modifier 1
14511 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
14512 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
14513 typedef struct VkDrmFormatModifierPropertiesEXT {
14514     uint64_t                drmFormatModifier;
14515     uint32_t                drmFormatModifierPlaneCount;
14516     VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
14517 } VkDrmFormatModifierPropertiesEXT;
14518 
14519 typedef struct VkDrmFormatModifierPropertiesListEXT {
14520     VkStructureType                      sType;
14521     void*                                pNext;
14522     uint32_t                             drmFormatModifierCount;
14523     VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties;
14524 } VkDrmFormatModifierPropertiesListEXT;
14525 
14526 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
14527     VkStructureType    sType;
14528     const void*        pNext;
14529     uint64_t           drmFormatModifier;
14530     VkSharingMode      sharingMode;
14531     uint32_t           queueFamilyIndexCount;
14532     const uint32_t*    pQueueFamilyIndices;
14533 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
14534 
14535 typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
14536     VkStructureType    sType;
14537     const void*        pNext;
14538     uint32_t           drmFormatModifierCount;
14539     const uint64_t*    pDrmFormatModifiers;
14540 } VkImageDrmFormatModifierListCreateInfoEXT;
14541 
14542 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
14543     VkStructureType               sType;
14544     const void*                   pNext;
14545     uint64_t                      drmFormatModifier;
14546     uint32_t                      drmFormatModifierPlaneCount;
14547     const VkSubresourceLayout*    pPlaneLayouts;
14548 } VkImageDrmFormatModifierExplicitCreateInfoEXT;
14549 
14550 typedef struct VkImageDrmFormatModifierPropertiesEXT {
14551     VkStructureType    sType;
14552     void*              pNext;
14553     uint64_t           drmFormatModifier;
14554 } VkImageDrmFormatModifierPropertiesEXT;
14555 
14556 typedef struct VkDrmFormatModifierProperties2EXT {
14557     uint64_t                 drmFormatModifier;
14558     uint32_t                 drmFormatModifierPlaneCount;
14559     VkFormatFeatureFlags2    drmFormatModifierTilingFeatures;
14560 } VkDrmFormatModifierProperties2EXT;
14561 
14562 typedef struct VkDrmFormatModifierPropertiesList2EXT {
14563     VkStructureType                       sType;
14564     void*                                 pNext;
14565     uint32_t                              drmFormatModifierCount;
14566     VkDrmFormatModifierProperties2EXT*    pDrmFormatModifierProperties;
14567 } VkDrmFormatModifierPropertiesList2EXT;
14568 
14569 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
14570 
14571 #ifndef VK_NO_PROTOTYPES
14572 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
14573     VkDevice                                    device,
14574     VkImage                                     image,
14575     VkImageDrmFormatModifierPropertiesEXT*      pProperties);
14576 #endif
14577 
14578 
14579 // VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
14580 #define VK_EXT_validation_cache 1
14581 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
14582 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
14583 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
14584 
14585 typedef enum VkValidationCacheHeaderVersionEXT {
14586     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
14587     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
14588 } VkValidationCacheHeaderVersionEXT;
14589 typedef VkFlags VkValidationCacheCreateFlagsEXT;
14590 typedef struct VkValidationCacheCreateInfoEXT {
14591     VkStructureType                    sType;
14592     const void*                        pNext;
14593     VkValidationCacheCreateFlagsEXT    flags;
14594     size_t                             initialDataSize;
14595     const void*                        pInitialData;
14596 } VkValidationCacheCreateInfoEXT;
14597 
14598 typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
14599     VkStructureType         sType;
14600     const void*             pNext;
14601     VkValidationCacheEXT    validationCache;
14602 } VkShaderModuleValidationCacheCreateInfoEXT;
14603 
14604 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
14605 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
14606 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
14607 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
14608 
14609 #ifndef VK_NO_PROTOTYPES
14610 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
14611     VkDevice                                    device,
14612     const VkValidationCacheCreateInfoEXT*       pCreateInfo,
14613     const VkAllocationCallbacks*                pAllocator,
14614     VkValidationCacheEXT*                       pValidationCache);
14615 
14616 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
14617     VkDevice                                    device,
14618     VkValidationCacheEXT                        validationCache,
14619     const VkAllocationCallbacks*                pAllocator);
14620 
14621 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
14622     VkDevice                                    device,
14623     VkValidationCacheEXT                        dstCache,
14624     uint32_t                                    srcCacheCount,
14625     const VkValidationCacheEXT*                 pSrcCaches);
14626 
14627 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
14628     VkDevice                                    device,
14629     VkValidationCacheEXT                        validationCache,
14630     size_t*                                     pDataSize,
14631     void*                                       pData);
14632 #endif
14633 
14634 
14635 // VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
14636 #define VK_EXT_descriptor_indexing 1
14637 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
14638 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
14639 typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
14640 
14641 typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
14642 
14643 typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
14644 
14645 typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
14646 
14647 typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
14648 
14649 typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
14650 
14651 typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
14652 
14653 
14654 
14655 // VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
14656 #define VK_EXT_shader_viewport_index_layer 1
14657 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
14658 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
14659 
14660 
14661 // VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
14662 #define VK_NV_shading_rate_image 1
14663 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
14664 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
14665 
14666 typedef enum VkShadingRatePaletteEntryNV {
14667     VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
14668     VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
14669     VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
14670     VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
14671     VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
14672     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
14673     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
14674     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
14675     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
14676     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
14677     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
14678     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
14679     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
14680 } VkShadingRatePaletteEntryNV;
14681 
14682 typedef enum VkCoarseSampleOrderTypeNV {
14683     VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
14684     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
14685     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
14686     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
14687     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
14688 } VkCoarseSampleOrderTypeNV;
14689 typedef struct VkShadingRatePaletteNV {
14690     uint32_t                              shadingRatePaletteEntryCount;
14691     const VkShadingRatePaletteEntryNV*    pShadingRatePaletteEntries;
14692 } VkShadingRatePaletteNV;
14693 
14694 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
14695     VkStructureType                  sType;
14696     const void*                      pNext;
14697     VkBool32                         shadingRateImageEnable;
14698     uint32_t                         viewportCount;
14699     const VkShadingRatePaletteNV*    pShadingRatePalettes;
14700 } VkPipelineViewportShadingRateImageStateCreateInfoNV;
14701 
14702 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
14703     VkStructureType    sType;
14704     void*              pNext;
14705     VkBool32           shadingRateImage;
14706     VkBool32           shadingRateCoarseSampleOrder;
14707 } VkPhysicalDeviceShadingRateImageFeaturesNV;
14708 
14709 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
14710     VkStructureType    sType;
14711     void*              pNext;
14712     VkExtent2D         shadingRateTexelSize;
14713     uint32_t           shadingRatePaletteSize;
14714     uint32_t           shadingRateMaxCoarseSamples;
14715 } VkPhysicalDeviceShadingRateImagePropertiesNV;
14716 
14717 typedef struct VkCoarseSampleLocationNV {
14718     uint32_t    pixelX;
14719     uint32_t    pixelY;
14720     uint32_t    sample;
14721 } VkCoarseSampleLocationNV;
14722 
14723 typedef struct VkCoarseSampleOrderCustomNV {
14724     VkShadingRatePaletteEntryNV        shadingRate;
14725     uint32_t                           sampleCount;
14726     uint32_t                           sampleLocationCount;
14727     const VkCoarseSampleLocationNV*    pSampleLocations;
14728 } VkCoarseSampleOrderCustomNV;
14729 
14730 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
14731     VkStructureType                       sType;
14732     const void*                           pNext;
14733     VkCoarseSampleOrderTypeNV             sampleOrderType;
14734     uint32_t                              customSampleOrderCount;
14735     const VkCoarseSampleOrderCustomNV*    pCustomSampleOrders;
14736 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
14737 
14738 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
14739 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
14740 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
14741 
14742 #ifndef VK_NO_PROTOTYPES
14743 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
14744     VkCommandBuffer                             commandBuffer,
14745     VkImageView                                 imageView,
14746     VkImageLayout                               imageLayout);
14747 
14748 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
14749     VkCommandBuffer                             commandBuffer,
14750     uint32_t                                    firstViewport,
14751     uint32_t                                    viewportCount,
14752     const VkShadingRatePaletteNV*               pShadingRatePalettes);
14753 
14754 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
14755     VkCommandBuffer                             commandBuffer,
14756     VkCoarseSampleOrderTypeNV                   sampleOrderType,
14757     uint32_t                                    customSampleOrderCount,
14758     const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders);
14759 #endif
14760 
14761 
14762 // VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
14763 #define VK_NV_ray_tracing 1
14764 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
14765 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
14766 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
14767 #define VK_SHADER_UNUSED_KHR              (~0U)
14768 #define VK_SHADER_UNUSED_NV               VK_SHADER_UNUSED_KHR
14769 
14770 typedef enum VkRayTracingShaderGroupTypeKHR {
14771     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
14772     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
14773     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
14774     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
14775     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
14776     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
14777     VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14778 } VkRayTracingShaderGroupTypeKHR;
14779 typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
14780 
14781 
14782 typedef enum VkGeometryTypeKHR {
14783     VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
14784     VK_GEOMETRY_TYPE_AABBS_KHR = 1,
14785     VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
14786     VK_GEOMETRY_TYPE_SPHERES_NV = 1000429004,
14787     VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV = 1000429005,
14788     VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
14789     VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
14790     VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14791 } VkGeometryTypeKHR;
14792 typedef VkGeometryTypeKHR VkGeometryTypeNV;
14793 
14794 
14795 typedef enum VkAccelerationStructureTypeKHR {
14796     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
14797     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
14798     VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
14799     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
14800     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
14801     VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14802 } VkAccelerationStructureTypeKHR;
14803 typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
14804 
14805 
14806 typedef enum VkCopyAccelerationStructureModeKHR {
14807     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
14808     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
14809     VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
14810     VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
14811     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
14812     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
14813     VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
14814 } VkCopyAccelerationStructureModeKHR;
14815 typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
14816 
14817 
14818 typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
14819     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
14820     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
14821     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
14822     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
14823 } VkAccelerationStructureMemoryRequirementsTypeNV;
14824 
14825 typedef enum VkGeometryFlagBitsKHR {
14826     VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
14827     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
14828     VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
14829     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
14830     VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14831 } VkGeometryFlagBitsKHR;
14832 typedef VkFlags VkGeometryFlagsKHR;
14833 typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
14834 
14835 typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
14836 
14837 
14838 typedef enum VkGeometryInstanceFlagBitsKHR {
14839     VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
14840     VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
14841     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
14842     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
14843     VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0x00000010,
14844     VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000020,
14845     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
14846     VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
14847     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
14848     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
14849     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
14850     VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14851 } VkGeometryInstanceFlagBitsKHR;
14852 typedef VkFlags VkGeometryInstanceFlagsKHR;
14853 typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
14854 
14855 typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
14856 
14857 
14858 typedef enum VkBuildAccelerationStructureFlagBitsKHR {
14859     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
14860     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
14861     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
14862     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
14863     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
14864     VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
14865     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x00000040,
14866     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000080,
14867     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x00000100,
14868 #ifdef VK_ENABLE_BETA_EXTENSIONS
14869     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = 0x00000200,
14870 #endif
14871     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = 0x00000800,
14872     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
14873     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
14874     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
14875     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
14876     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
14877     VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14878 } VkBuildAccelerationStructureFlagBitsKHR;
14879 typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
14880 typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
14881 
14882 typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
14883 
14884 typedef struct VkRayTracingShaderGroupCreateInfoNV {
14885     VkStructureType                   sType;
14886     const void*                       pNext;
14887     VkRayTracingShaderGroupTypeKHR    type;
14888     uint32_t                          generalShader;
14889     uint32_t                          closestHitShader;
14890     uint32_t                          anyHitShader;
14891     uint32_t                          intersectionShader;
14892 } VkRayTracingShaderGroupCreateInfoNV;
14893 
14894 typedef struct VkRayTracingPipelineCreateInfoNV {
14895     VkStructureType                               sType;
14896     const void*                                   pNext;
14897     VkPipelineCreateFlags                         flags;
14898     uint32_t                                      stageCount;
14899     const VkPipelineShaderStageCreateInfo*        pStages;
14900     uint32_t                                      groupCount;
14901     const VkRayTracingShaderGroupCreateInfoNV*    pGroups;
14902     uint32_t                                      maxRecursionDepth;
14903     VkPipelineLayout                              layout;
14904     VkPipeline                                    basePipelineHandle;
14905     int32_t                                       basePipelineIndex;
14906 } VkRayTracingPipelineCreateInfoNV;
14907 
14908 typedef struct VkGeometryTrianglesNV {
14909     VkStructureType    sType;
14910     const void*        pNext;
14911     VkBuffer           vertexData;
14912     VkDeviceSize       vertexOffset;
14913     uint32_t           vertexCount;
14914     VkDeviceSize       vertexStride;
14915     VkFormat           vertexFormat;
14916     VkBuffer           indexData;
14917     VkDeviceSize       indexOffset;
14918     uint32_t           indexCount;
14919     VkIndexType        indexType;
14920     VkBuffer           transformData;
14921     VkDeviceSize       transformOffset;
14922 } VkGeometryTrianglesNV;
14923 
14924 typedef struct VkGeometryAABBNV {
14925     VkStructureType    sType;
14926     const void*        pNext;
14927     VkBuffer           aabbData;
14928     uint32_t           numAABBs;
14929     uint32_t           stride;
14930     VkDeviceSize       offset;
14931 } VkGeometryAABBNV;
14932 
14933 typedef struct VkGeometryDataNV {
14934     VkGeometryTrianglesNV    triangles;
14935     VkGeometryAABBNV         aabbs;
14936 } VkGeometryDataNV;
14937 
14938 typedef struct VkGeometryNV {
14939     VkStructureType       sType;
14940     const void*           pNext;
14941     VkGeometryTypeKHR     geometryType;
14942     VkGeometryDataNV      geometry;
14943     VkGeometryFlagsKHR    flags;
14944 } VkGeometryNV;
14945 
14946 typedef struct VkAccelerationStructureInfoNV {
14947     VkStructureType                        sType;
14948     const void*                            pNext;
14949     VkAccelerationStructureTypeNV          type;
14950     VkBuildAccelerationStructureFlagsNV    flags;
14951     uint32_t                               instanceCount;
14952     uint32_t                               geometryCount;
14953     const VkGeometryNV*                    pGeometries;
14954 } VkAccelerationStructureInfoNV;
14955 
14956 typedef struct VkAccelerationStructureCreateInfoNV {
14957     VkStructureType                  sType;
14958     const void*                      pNext;
14959     VkDeviceSize                     compactedSize;
14960     VkAccelerationStructureInfoNV    info;
14961 } VkAccelerationStructureCreateInfoNV;
14962 
14963 typedef struct VkBindAccelerationStructureMemoryInfoNV {
14964     VkStructureType              sType;
14965     const void*                  pNext;
14966     VkAccelerationStructureNV    accelerationStructure;
14967     VkDeviceMemory               memory;
14968     VkDeviceSize                 memoryOffset;
14969     uint32_t                     deviceIndexCount;
14970     const uint32_t*              pDeviceIndices;
14971 } VkBindAccelerationStructureMemoryInfoNV;
14972 
14973 typedef struct VkWriteDescriptorSetAccelerationStructureNV {
14974     VkStructureType                     sType;
14975     const void*                         pNext;
14976     uint32_t                            accelerationStructureCount;
14977     const VkAccelerationStructureNV*    pAccelerationStructures;
14978 } VkWriteDescriptorSetAccelerationStructureNV;
14979 
14980 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
14981     VkStructureType                                    sType;
14982     const void*                                        pNext;
14983     VkAccelerationStructureMemoryRequirementsTypeNV    type;
14984     VkAccelerationStructureNV                          accelerationStructure;
14985 } VkAccelerationStructureMemoryRequirementsInfoNV;
14986 
14987 typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
14988     VkStructureType    sType;
14989     void*              pNext;
14990     uint32_t           shaderGroupHandleSize;
14991     uint32_t           maxRecursionDepth;
14992     uint32_t           maxShaderGroupStride;
14993     uint32_t           shaderGroupBaseAlignment;
14994     uint64_t           maxGeometryCount;
14995     uint64_t           maxInstanceCount;
14996     uint64_t           maxTriangleCount;
14997     uint32_t           maxDescriptorSetAccelerationStructures;
14998 } VkPhysicalDeviceRayTracingPropertiesNV;
14999 
15000 typedef struct VkTransformMatrixKHR {
15001     float    matrix[3][4];
15002 } VkTransformMatrixKHR;
15003 
15004 typedef VkTransformMatrixKHR VkTransformMatrixNV;
15005 
15006 typedef struct VkAabbPositionsKHR {
15007     float    minX;
15008     float    minY;
15009     float    minZ;
15010     float    maxX;
15011     float    maxY;
15012     float    maxZ;
15013 } VkAabbPositionsKHR;
15014 
15015 typedef VkAabbPositionsKHR VkAabbPositionsNV;
15016 
15017 typedef struct VkAccelerationStructureInstanceKHR {
15018     VkTransformMatrixKHR          transform;
15019     uint32_t                      instanceCustomIndex:24;
15020     uint32_t                      mask:8;
15021     uint32_t                      instanceShaderBindingTableRecordOffset:24;
15022     VkGeometryInstanceFlagsKHR    flags:8;
15023     uint64_t                      accelerationStructureReference;
15024 } VkAccelerationStructureInstanceKHR;
15025 
15026 typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
15027 
15028 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
15029 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
15030 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
15031 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
15032 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);
15033 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
15034 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);
15035 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
15036 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
15037 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
15038 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
15039 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
15040 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
15041 
15042 #ifndef VK_NO_PROTOTYPES
15043 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
15044     VkDevice                                    device,
15045     const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
15046     const VkAllocationCallbacks*                pAllocator,
15047     VkAccelerationStructureNV*                  pAccelerationStructure);
15048 
15049 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
15050     VkDevice                                    device,
15051     VkAccelerationStructureNV                   accelerationStructure,
15052     const VkAllocationCallbacks*                pAllocator);
15053 
15054 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
15055     VkDevice                                    device,
15056     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
15057     VkMemoryRequirements2KHR*                   pMemoryRequirements);
15058 
15059 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
15060     VkDevice                                    device,
15061     uint32_t                                    bindInfoCount,
15062     const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
15063 
15064 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
15065     VkCommandBuffer                             commandBuffer,
15066     const VkAccelerationStructureInfoNV*        pInfo,
15067     VkBuffer                                    instanceData,
15068     VkDeviceSize                                instanceOffset,
15069     VkBool32                                    update,
15070     VkAccelerationStructureNV                   dst,
15071     VkAccelerationStructureNV                   src,
15072     VkBuffer                                    scratch,
15073     VkDeviceSize                                scratchOffset);
15074 
15075 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
15076     VkCommandBuffer                             commandBuffer,
15077     VkAccelerationStructureNV                   dst,
15078     VkAccelerationStructureNV                   src,
15079     VkCopyAccelerationStructureModeKHR          mode);
15080 
15081 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
15082     VkCommandBuffer                             commandBuffer,
15083     VkBuffer                                    raygenShaderBindingTableBuffer,
15084     VkDeviceSize                                raygenShaderBindingOffset,
15085     VkBuffer                                    missShaderBindingTableBuffer,
15086     VkDeviceSize                                missShaderBindingOffset,
15087     VkDeviceSize                                missShaderBindingStride,
15088     VkBuffer                                    hitShaderBindingTableBuffer,
15089     VkDeviceSize                                hitShaderBindingOffset,
15090     VkDeviceSize                                hitShaderBindingStride,
15091     VkBuffer                                    callableShaderBindingTableBuffer,
15092     VkDeviceSize                                callableShaderBindingOffset,
15093     VkDeviceSize                                callableShaderBindingStride,
15094     uint32_t                                    width,
15095     uint32_t                                    height,
15096     uint32_t                                    depth);
15097 
15098 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
15099     VkDevice                                    device,
15100     VkPipelineCache                             pipelineCache,
15101     uint32_t                                    createInfoCount,
15102     const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
15103     const VkAllocationCallbacks*                pAllocator,
15104     VkPipeline*                                 pPipelines);
15105 
15106 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
15107     VkDevice                                    device,
15108     VkPipeline                                  pipeline,
15109     uint32_t                                    firstGroup,
15110     uint32_t                                    groupCount,
15111     size_t                                      dataSize,
15112     void*                                       pData);
15113 
15114 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
15115     VkDevice                                    device,
15116     VkPipeline                                  pipeline,
15117     uint32_t                                    firstGroup,
15118     uint32_t                                    groupCount,
15119     size_t                                      dataSize,
15120     void*                                       pData);
15121 
15122 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
15123     VkDevice                                    device,
15124     VkAccelerationStructureNV                   accelerationStructure,
15125     size_t                                      dataSize,
15126     void*                                       pData);
15127 
15128 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
15129     VkCommandBuffer                             commandBuffer,
15130     uint32_t                                    accelerationStructureCount,
15131     const VkAccelerationStructureNV*            pAccelerationStructures,
15132     VkQueryType                                 queryType,
15133     VkQueryPool                                 queryPool,
15134     uint32_t                                    firstQuery);
15135 
15136 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
15137     VkDevice                                    device,
15138     VkPipeline                                  pipeline,
15139     uint32_t                                    shader);
15140 #endif
15141 
15142 
15143 // VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
15144 #define VK_NV_representative_fragment_test 1
15145 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
15146 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
15147 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
15148     VkStructureType    sType;
15149     void*              pNext;
15150     VkBool32           representativeFragmentTest;
15151 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
15152 
15153 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
15154     VkStructureType    sType;
15155     const void*        pNext;
15156     VkBool32           representativeFragmentTestEnable;
15157 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
15158 
15159 
15160 
15161 // VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
15162 #define VK_EXT_filter_cubic 1
15163 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION  3
15164 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
15165 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
15166     VkStructureType    sType;
15167     void*              pNext;
15168     VkImageViewType    imageViewType;
15169 } VkPhysicalDeviceImageViewImageFormatInfoEXT;
15170 
15171 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
15172     VkStructureType    sType;
15173     void*              pNext;
15174     VkBool32           filterCubic;
15175     VkBool32           filterCubicMinmax;
15176 } VkFilterCubicImageViewImageFormatPropertiesEXT;
15177 
15178 
15179 
15180 // VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
15181 #define VK_QCOM_render_pass_shader_resolve 1
15182 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
15183 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
15184 
15185 
15186 // VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
15187 #define VK_EXT_global_priority 1
15188 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
15189 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
15190 typedef VkQueueGlobalPriority VkQueueGlobalPriorityEXT;
15191 
15192 typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoEXT;
15193 
15194 
15195 
15196 // VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
15197 #define VK_EXT_external_memory_host 1
15198 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
15199 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
15200 typedef struct VkImportMemoryHostPointerInfoEXT {
15201     VkStructureType                       sType;
15202     const void*                           pNext;
15203     VkExternalMemoryHandleTypeFlagBits    handleType;
15204     void*                                 pHostPointer;
15205 } VkImportMemoryHostPointerInfoEXT;
15206 
15207 typedef struct VkMemoryHostPointerPropertiesEXT {
15208     VkStructureType    sType;
15209     void*              pNext;
15210     uint32_t           memoryTypeBits;
15211 } VkMemoryHostPointerPropertiesEXT;
15212 
15213 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
15214     VkStructureType    sType;
15215     void*              pNext;
15216     VkDeviceSize       minImportedHostPointerAlignment;
15217 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
15218 
15219 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
15220 
15221 #ifndef VK_NO_PROTOTYPES
15222 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
15223     VkDevice                                    device,
15224     VkExternalMemoryHandleTypeFlagBits          handleType,
15225     const void*                                 pHostPointer,
15226     VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties);
15227 #endif
15228 
15229 
15230 // VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
15231 #define VK_AMD_buffer_marker 1
15232 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
15233 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
15234 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
15235 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkBuffer                                            dstBuffer, VkDeviceSize                                        dstOffset, uint32_t                                            marker);
15236 
15237 #ifndef VK_NO_PROTOTYPES
15238 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
15239     VkCommandBuffer                             commandBuffer,
15240     VkPipelineStageFlagBits                     pipelineStage,
15241     VkBuffer                                    dstBuffer,
15242     VkDeviceSize                                dstOffset,
15243     uint32_t                                    marker);
15244 
15245 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
15246     VkCommandBuffer                             commandBuffer,
15247     VkPipelineStageFlags2                       stage,
15248     VkBuffer                                    dstBuffer,
15249     VkDeviceSize                                dstOffset,
15250     uint32_t                                    marker);
15251 #endif
15252 
15253 
15254 // VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
15255 #define VK_AMD_pipeline_compiler_control 1
15256 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
15257 #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
15258 
15259 typedef enum VkPipelineCompilerControlFlagBitsAMD {
15260     VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
15261 } VkPipelineCompilerControlFlagBitsAMD;
15262 typedef VkFlags VkPipelineCompilerControlFlagsAMD;
15263 typedef struct VkPipelineCompilerControlCreateInfoAMD {
15264     VkStructureType                      sType;
15265     const void*                          pNext;
15266     VkPipelineCompilerControlFlagsAMD    compilerControlFlags;
15267 } VkPipelineCompilerControlCreateInfoAMD;
15268 
15269 
15270 
15271 // VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
15272 #define VK_EXT_calibrated_timestamps 1
15273 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
15274 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
15275 typedef VkTimeDomainKHR VkTimeDomainEXT;
15276 
15277 typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
15278 
15279 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
15280 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
15281 
15282 #ifndef VK_NO_PROTOTYPES
15283 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
15284     VkPhysicalDevice                            physicalDevice,
15285     uint32_t*                                   pTimeDomainCount,
15286     VkTimeDomainKHR*                            pTimeDomains);
15287 
15288 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
15289     VkDevice                                    device,
15290     uint32_t                                    timestampCount,
15291     const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
15292     uint64_t*                                   pTimestamps,
15293     uint64_t*                                   pMaxDeviation);
15294 #endif
15295 
15296 
15297 // VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
15298 #define VK_AMD_shader_core_properties 1
15299 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
15300 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
15301 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
15302     VkStructureType    sType;
15303     void*              pNext;
15304     uint32_t           shaderEngineCount;
15305     uint32_t           shaderArraysPerEngineCount;
15306     uint32_t           computeUnitsPerShaderArray;
15307     uint32_t           simdPerComputeUnit;
15308     uint32_t           wavefrontsPerSimd;
15309     uint32_t           wavefrontSize;
15310     uint32_t           sgprsPerSimd;
15311     uint32_t           minSgprAllocation;
15312     uint32_t           maxSgprAllocation;
15313     uint32_t           sgprAllocationGranularity;
15314     uint32_t           vgprsPerSimd;
15315     uint32_t           minVgprAllocation;
15316     uint32_t           maxVgprAllocation;
15317     uint32_t           vgprAllocationGranularity;
15318 } VkPhysicalDeviceShaderCorePropertiesAMD;
15319 
15320 
15321 
15322 // VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
15323 #define VK_AMD_memory_overallocation_behavior 1
15324 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
15325 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
15326 
15327 typedef enum VkMemoryOverallocationBehaviorAMD {
15328     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
15329     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
15330     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
15331     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
15332 } VkMemoryOverallocationBehaviorAMD;
15333 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
15334     VkStructureType                      sType;
15335     const void*                          pNext;
15336     VkMemoryOverallocationBehaviorAMD    overallocationBehavior;
15337 } VkDeviceMemoryOverallocationCreateInfoAMD;
15338 
15339 
15340 
15341 // VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
15342 #define VK_EXT_vertex_attribute_divisor 1
15343 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
15344 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
15345 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
15346     VkStructureType    sType;
15347     void*              pNext;
15348     uint32_t           maxVertexAttribDivisor;
15349 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
15350 
15351 typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionEXT;
15352 
15353 typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoEXT;
15354 
15355 typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
15356 
15357 
15358 
15359 // VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
15360 #define VK_EXT_pipeline_creation_feedback 1
15361 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
15362 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
15363 typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
15364 
15365 typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
15366 
15367 typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
15368 
15369 typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
15370 
15371 
15372 
15373 // VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
15374 #define VK_NV_shader_subgroup_partitioned 1
15375 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
15376 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
15377 
15378 
15379 // VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
15380 #define VK_NV_compute_shader_derivatives 1
15381 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
15382 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
15383 typedef VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
15384 
15385 
15386 
15387 // VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
15388 #define VK_NV_mesh_shader 1
15389 #define VK_NV_MESH_SHADER_SPEC_VERSION    1
15390 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
15391 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
15392     VkStructureType    sType;
15393     void*              pNext;
15394     VkBool32           taskShader;
15395     VkBool32           meshShader;
15396 } VkPhysicalDeviceMeshShaderFeaturesNV;
15397 
15398 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
15399     VkStructureType    sType;
15400     void*              pNext;
15401     uint32_t           maxDrawMeshTasksCount;
15402     uint32_t           maxTaskWorkGroupInvocations;
15403     uint32_t           maxTaskWorkGroupSize[3];
15404     uint32_t           maxTaskTotalMemorySize;
15405     uint32_t           maxTaskOutputCount;
15406     uint32_t           maxMeshWorkGroupInvocations;
15407     uint32_t           maxMeshWorkGroupSize[3];
15408     uint32_t           maxMeshTotalMemorySize;
15409     uint32_t           maxMeshOutputVertices;
15410     uint32_t           maxMeshOutputPrimitives;
15411     uint32_t           maxMeshMultiviewViewCount;
15412     uint32_t           meshOutputPerVertexGranularity;
15413     uint32_t           meshOutputPerPrimitiveGranularity;
15414 } VkPhysicalDeviceMeshShaderPropertiesNV;
15415 
15416 typedef struct VkDrawMeshTasksIndirectCommandNV {
15417     uint32_t    taskCount;
15418     uint32_t    firstTask;
15419 } VkDrawMeshTasksIndirectCommandNV;
15420 
15421 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
15422 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
15423 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
15424 
15425 #ifndef VK_NO_PROTOTYPES
15426 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
15427     VkCommandBuffer                             commandBuffer,
15428     uint32_t                                    taskCount,
15429     uint32_t                                    firstTask);
15430 
15431 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
15432     VkCommandBuffer                             commandBuffer,
15433     VkBuffer                                    buffer,
15434     VkDeviceSize                                offset,
15435     uint32_t                                    drawCount,
15436     uint32_t                                    stride);
15437 
15438 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
15439     VkCommandBuffer                             commandBuffer,
15440     VkBuffer                                    buffer,
15441     VkDeviceSize                                offset,
15442     VkBuffer                                    countBuffer,
15443     VkDeviceSize                                countBufferOffset,
15444     uint32_t                                    maxDrawCount,
15445     uint32_t                                    stride);
15446 #endif
15447 
15448 
15449 // VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
15450 #define VK_NV_fragment_shader_barycentric 1
15451 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
15452 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
15453 typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
15454 
15455 
15456 
15457 // VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
15458 #define VK_NV_shader_image_footprint 1
15459 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
15460 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
15461 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
15462     VkStructureType    sType;
15463     void*              pNext;
15464     VkBool32           imageFootprint;
15465 } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
15466 
15467 
15468 
15469 // VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
15470 #define VK_NV_scissor_exclusive 1
15471 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
15472 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
15473 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
15474     VkStructureType    sType;
15475     const void*        pNext;
15476     uint32_t           exclusiveScissorCount;
15477     const VkRect2D*    pExclusiveScissors;
15478 } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
15479 
15480 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
15481     VkStructureType    sType;
15482     void*              pNext;
15483     VkBool32           exclusiveScissor;
15484 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
15485 
15486 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
15487 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
15488 
15489 #ifndef VK_NO_PROTOTYPES
15490 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
15491     VkCommandBuffer                             commandBuffer,
15492     uint32_t                                    firstExclusiveScissor,
15493     uint32_t                                    exclusiveScissorCount,
15494     const VkBool32*                             pExclusiveScissorEnables);
15495 
15496 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
15497     VkCommandBuffer                             commandBuffer,
15498     uint32_t                                    firstExclusiveScissor,
15499     uint32_t                                    exclusiveScissorCount,
15500     const VkRect2D*                             pExclusiveScissors);
15501 #endif
15502 
15503 
15504 // VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
15505 #define VK_NV_device_diagnostic_checkpoints 1
15506 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
15507 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
15508 typedef struct VkQueueFamilyCheckpointPropertiesNV {
15509     VkStructureType         sType;
15510     void*                   pNext;
15511     VkPipelineStageFlags    checkpointExecutionStageMask;
15512 } VkQueueFamilyCheckpointPropertiesNV;
15513 
15514 typedef struct VkCheckpointDataNV {
15515     VkStructureType            sType;
15516     void*                      pNext;
15517     VkPipelineStageFlagBits    stage;
15518     void*                      pCheckpointMarker;
15519 } VkCheckpointDataNV;
15520 
15521 typedef struct VkQueueFamilyCheckpointProperties2NV {
15522     VkStructureType          sType;
15523     void*                    pNext;
15524     VkPipelineStageFlags2    checkpointExecutionStageMask;
15525 } VkQueueFamilyCheckpointProperties2NV;
15526 
15527 typedef struct VkCheckpointData2NV {
15528     VkStructureType          sType;
15529     void*                    pNext;
15530     VkPipelineStageFlags2    stage;
15531     void*                    pCheckpointMarker;
15532 } VkCheckpointData2NV;
15533 
15534 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
15535 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
15536 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
15537 
15538 #ifndef VK_NO_PROTOTYPES
15539 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
15540     VkCommandBuffer                             commandBuffer,
15541     const void*                                 pCheckpointMarker);
15542 
15543 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
15544     VkQueue                                     queue,
15545     uint32_t*                                   pCheckpointDataCount,
15546     VkCheckpointDataNV*                         pCheckpointData);
15547 
15548 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
15549     VkQueue                                     queue,
15550     uint32_t*                                   pCheckpointDataCount,
15551     VkCheckpointData2NV*                        pCheckpointData);
15552 #endif
15553 
15554 
15555 // VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
15556 #define VK_INTEL_shader_integer_functions2 1
15557 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
15558 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
15559 typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
15560     VkStructureType    sType;
15561     void*              pNext;
15562     VkBool32           shaderIntegerFunctions2;
15563 } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
15564 
15565 
15566 
15567 // VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
15568 #define VK_INTEL_performance_query 1
15569 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
15570 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
15571 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
15572 
15573 typedef enum VkPerformanceConfigurationTypeINTEL {
15574     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
15575     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
15576 } VkPerformanceConfigurationTypeINTEL;
15577 
15578 typedef enum VkQueryPoolSamplingModeINTEL {
15579     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
15580     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
15581 } VkQueryPoolSamplingModeINTEL;
15582 
15583 typedef enum VkPerformanceOverrideTypeINTEL {
15584     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
15585     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
15586     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
15587 } VkPerformanceOverrideTypeINTEL;
15588 
15589 typedef enum VkPerformanceParameterTypeINTEL {
15590     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
15591     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
15592     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
15593 } VkPerformanceParameterTypeINTEL;
15594 
15595 typedef enum VkPerformanceValueTypeINTEL {
15596     VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
15597     VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
15598     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
15599     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
15600     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
15601     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
15602 } VkPerformanceValueTypeINTEL;
15603 typedef union VkPerformanceValueDataINTEL {
15604     uint32_t       value32;
15605     uint64_t       value64;
15606     float          valueFloat;
15607     VkBool32       valueBool;
15608     const char*    valueString;
15609 } VkPerformanceValueDataINTEL;
15610 
15611 typedef struct VkPerformanceValueINTEL {
15612     VkPerformanceValueTypeINTEL    type;
15613     VkPerformanceValueDataINTEL    data;
15614 } VkPerformanceValueINTEL;
15615 
15616 typedef struct VkInitializePerformanceApiInfoINTEL {
15617     VkStructureType    sType;
15618     const void*        pNext;
15619     void*              pUserData;
15620 } VkInitializePerformanceApiInfoINTEL;
15621 
15622 typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
15623     VkStructureType                 sType;
15624     const void*                     pNext;
15625     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
15626 } VkQueryPoolPerformanceQueryCreateInfoINTEL;
15627 
15628 typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
15629 
15630 typedef struct VkPerformanceMarkerInfoINTEL {
15631     VkStructureType    sType;
15632     const void*        pNext;
15633     uint64_t           marker;
15634 } VkPerformanceMarkerInfoINTEL;
15635 
15636 typedef struct VkPerformanceStreamMarkerInfoINTEL {
15637     VkStructureType    sType;
15638     const void*        pNext;
15639     uint32_t           marker;
15640 } VkPerformanceStreamMarkerInfoINTEL;
15641 
15642 typedef struct VkPerformanceOverrideInfoINTEL {
15643     VkStructureType                   sType;
15644     const void*                       pNext;
15645     VkPerformanceOverrideTypeINTEL    type;
15646     VkBool32                          enable;
15647     uint64_t                          parameter;
15648 } VkPerformanceOverrideInfoINTEL;
15649 
15650 typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
15651     VkStructureType                        sType;
15652     const void*                            pNext;
15653     VkPerformanceConfigurationTypeINTEL    type;
15654 } VkPerformanceConfigurationAcquireInfoINTEL;
15655 
15656 typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
15657 typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
15658 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
15659 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
15660 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
15661 typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
15662 typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
15663 typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
15664 typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
15665 
15666 #ifndef VK_NO_PROTOTYPES
15667 VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
15668     VkDevice                                    device,
15669     const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo);
15670 
15671 VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
15672     VkDevice                                    device);
15673 
15674 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
15675     VkCommandBuffer                             commandBuffer,
15676     const VkPerformanceMarkerInfoINTEL*         pMarkerInfo);
15677 
15678 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
15679     VkCommandBuffer                             commandBuffer,
15680     const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo);
15681 
15682 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
15683     VkCommandBuffer                             commandBuffer,
15684     const VkPerformanceOverrideInfoINTEL*       pOverrideInfo);
15685 
15686 VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
15687     VkDevice                                    device,
15688     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
15689     VkPerformanceConfigurationINTEL*            pConfiguration);
15690 
15691 VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
15692     VkDevice                                    device,
15693     VkPerformanceConfigurationINTEL             configuration);
15694 
15695 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
15696     VkQueue                                     queue,
15697     VkPerformanceConfigurationINTEL             configuration);
15698 
15699 VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
15700     VkDevice                                    device,
15701     VkPerformanceParameterTypeINTEL             parameter,
15702     VkPerformanceValueINTEL*                    pValue);
15703 #endif
15704 
15705 
15706 // VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
15707 #define VK_EXT_pci_bus_info 1
15708 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  2
15709 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
15710 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
15711     VkStructureType    sType;
15712     void*              pNext;
15713     uint32_t           pciDomain;
15714     uint32_t           pciBus;
15715     uint32_t           pciDevice;
15716     uint32_t           pciFunction;
15717 } VkPhysicalDevicePCIBusInfoPropertiesEXT;
15718 
15719 
15720 
15721 // VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
15722 #define VK_AMD_display_native_hdr 1
15723 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
15724 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
15725 typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
15726     VkStructureType    sType;
15727     void*              pNext;
15728     VkBool32           localDimmingSupport;
15729 } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
15730 
15731 typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
15732     VkStructureType    sType;
15733     const void*        pNext;
15734     VkBool32           localDimmingEnable;
15735 } VkSwapchainDisplayNativeHdrCreateInfoAMD;
15736 
15737 typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
15738 
15739 #ifndef VK_NO_PROTOTYPES
15740 VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
15741     VkDevice                                    device,
15742     VkSwapchainKHR                              swapChain,
15743     VkBool32                                    localDimmingEnable);
15744 #endif
15745 
15746 
15747 // VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
15748 #define VK_EXT_fragment_density_map 1
15749 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
15750 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
15751 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
15752     VkStructureType    sType;
15753     void*              pNext;
15754     VkBool32           fragmentDensityMap;
15755     VkBool32           fragmentDensityMapDynamic;
15756     VkBool32           fragmentDensityMapNonSubsampledImages;
15757 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
15758 
15759 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
15760     VkStructureType    sType;
15761     void*              pNext;
15762     VkExtent2D         minFragmentDensityTexelSize;
15763     VkExtent2D         maxFragmentDensityTexelSize;
15764     VkBool32           fragmentDensityInvocations;
15765 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
15766 
15767 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
15768     VkStructureType          sType;
15769     const void*              pNext;
15770     VkAttachmentReference    fragmentDensityMapAttachment;
15771 } VkRenderPassFragmentDensityMapCreateInfoEXT;
15772 
15773 typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
15774     VkStructureType    sType;
15775     const void*        pNext;
15776     VkImageView        imageView;
15777     VkImageLayout      imageLayout;
15778 } VkRenderingFragmentDensityMapAttachmentInfoEXT;
15779 
15780 
15781 
15782 // VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
15783 #define VK_EXT_scalar_block_layout 1
15784 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
15785 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
15786 typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
15787 
15788 
15789 
15790 // VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
15791 #define VK_GOOGLE_hlsl_functionality1 1
15792 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
15793 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
15794 // VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION is a deprecated alias
15795 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
15796 // VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME is a deprecated alias
15797 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
15798 
15799 
15800 // VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
15801 #define VK_GOOGLE_decorate_string 1
15802 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
15803 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
15804 
15805 
15806 // VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
15807 #define VK_EXT_subgroup_size_control 1
15808 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
15809 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
15810 typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
15811 
15812 typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
15813 
15814 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
15815 
15816 
15817 
15818 // VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
15819 #define VK_AMD_shader_core_properties2 1
15820 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
15821 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
15822 
15823 typedef enum VkShaderCorePropertiesFlagBitsAMD {
15824     VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
15825 } VkShaderCorePropertiesFlagBitsAMD;
15826 typedef VkFlags VkShaderCorePropertiesFlagsAMD;
15827 typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
15828     VkStructureType                   sType;
15829     void*                             pNext;
15830     VkShaderCorePropertiesFlagsAMD    shaderCoreFeatures;
15831     uint32_t                          activeComputeUnitCount;
15832 } VkPhysicalDeviceShaderCoreProperties2AMD;
15833 
15834 
15835 
15836 // VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
15837 #define VK_AMD_device_coherent_memory 1
15838 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
15839 #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
15840 typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
15841     VkStructureType    sType;
15842     void*              pNext;
15843     VkBool32           deviceCoherentMemory;
15844 } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
15845 
15846 
15847 
15848 // VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
15849 #define VK_EXT_shader_image_atomic_int64 1
15850 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
15851 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
15852 typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
15853     VkStructureType    sType;
15854     void*              pNext;
15855     VkBool32           shaderImageInt64Atomics;
15856     VkBool32           sparseImageInt64Atomics;
15857 } VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
15858 
15859 
15860 
15861 // VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
15862 #define VK_EXT_memory_budget 1
15863 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
15864 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
15865 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
15866     VkStructureType    sType;
15867     void*              pNext;
15868     VkDeviceSize       heapBudget[VK_MAX_MEMORY_HEAPS];
15869     VkDeviceSize       heapUsage[VK_MAX_MEMORY_HEAPS];
15870 } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
15871 
15872 
15873 
15874 // VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
15875 #define VK_EXT_memory_priority 1
15876 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
15877 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
15878 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
15879     VkStructureType    sType;
15880     void*              pNext;
15881     VkBool32           memoryPriority;
15882 } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
15883 
15884 typedef struct VkMemoryPriorityAllocateInfoEXT {
15885     VkStructureType    sType;
15886     const void*        pNext;
15887     float              priority;
15888 } VkMemoryPriorityAllocateInfoEXT;
15889 
15890 
15891 
15892 // VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
15893 #define VK_NV_dedicated_allocation_image_aliasing 1
15894 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
15895 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
15896 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
15897     VkStructureType    sType;
15898     void*              pNext;
15899     VkBool32           dedicatedAllocationImageAliasing;
15900 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
15901 
15902 
15903 
15904 // VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
15905 #define VK_EXT_buffer_device_address 1
15906 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
15907 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
15908 typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
15909     VkStructureType    sType;
15910     void*              pNext;
15911     VkBool32           bufferDeviceAddress;
15912     VkBool32           bufferDeviceAddressCaptureReplay;
15913     VkBool32           bufferDeviceAddressMultiDevice;
15914 } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
15915 
15916 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
15917 
15918 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
15919 
15920 typedef struct VkBufferDeviceAddressCreateInfoEXT {
15921     VkStructureType    sType;
15922     const void*        pNext;
15923     VkDeviceAddress    deviceAddress;
15924 } VkBufferDeviceAddressCreateInfoEXT;
15925 
15926 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
15927 
15928 #ifndef VK_NO_PROTOTYPES
15929 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
15930     VkDevice                                    device,
15931     const VkBufferDeviceAddressInfo*            pInfo);
15932 #endif
15933 
15934 
15935 // VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
15936 #define VK_EXT_tooling_info 1
15937 #define VK_EXT_TOOLING_INFO_SPEC_VERSION  1
15938 #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
15939 typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
15940 
15941 typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
15942 
15943 typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
15944 
15945 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
15946 
15947 #ifndef VK_NO_PROTOTYPES
15948 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
15949     VkPhysicalDevice                            physicalDevice,
15950     uint32_t*                                   pToolCount,
15951     VkPhysicalDeviceToolProperties*             pToolProperties);
15952 #endif
15953 
15954 
15955 // VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
15956 #define VK_EXT_separate_stencil_usage 1
15957 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
15958 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
15959 typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
15960 
15961 
15962 
15963 // VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
15964 #define VK_EXT_validation_features 1
15965 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
15966 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
15967 
15968 typedef enum VkValidationFeatureEnableEXT {
15969     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
15970     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
15971     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
15972     VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
15973     VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
15974     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
15975 } VkValidationFeatureEnableEXT;
15976 
15977 typedef enum VkValidationFeatureDisableEXT {
15978     VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
15979     VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
15980     VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
15981     VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
15982     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
15983     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
15984     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
15985     VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
15986     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
15987 } VkValidationFeatureDisableEXT;
15988 typedef struct VkValidationFeaturesEXT {
15989     VkStructureType                         sType;
15990     const void*                             pNext;
15991     uint32_t                                enabledValidationFeatureCount;
15992     const VkValidationFeatureEnableEXT*     pEnabledValidationFeatures;
15993     uint32_t                                disabledValidationFeatureCount;
15994     const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
15995 } VkValidationFeaturesEXT;
15996 
15997 
15998 
15999 // VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
16000 #define VK_NV_cooperative_matrix 1
16001 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
16002 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
16003 typedef VkComponentTypeKHR VkComponentTypeNV;
16004 
16005 typedef VkScopeKHR VkScopeNV;
16006 
16007 typedef struct VkCooperativeMatrixPropertiesNV {
16008     VkStructureType      sType;
16009     void*                pNext;
16010     uint32_t             MSize;
16011     uint32_t             NSize;
16012     uint32_t             KSize;
16013     VkComponentTypeNV    AType;
16014     VkComponentTypeNV    BType;
16015     VkComponentTypeNV    CType;
16016     VkComponentTypeNV    DType;
16017     VkScopeNV            scope;
16018 } VkCooperativeMatrixPropertiesNV;
16019 
16020 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
16021     VkStructureType    sType;
16022     void*              pNext;
16023     VkBool32           cooperativeMatrix;
16024     VkBool32           cooperativeMatrixRobustBufferAccess;
16025 } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
16026 
16027 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
16028     VkStructureType       sType;
16029     void*                 pNext;
16030     VkShaderStageFlags    cooperativeMatrixSupportedStages;
16031 } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
16032 
16033 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
16034 
16035 #ifndef VK_NO_PROTOTYPES
16036 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
16037     VkPhysicalDevice                            physicalDevice,
16038     uint32_t*                                   pPropertyCount,
16039     VkCooperativeMatrixPropertiesNV*            pProperties);
16040 #endif
16041 
16042 
16043 // VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
16044 #define VK_NV_coverage_reduction_mode 1
16045 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
16046 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
16047 
16048 typedef enum VkCoverageReductionModeNV {
16049     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
16050     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
16051     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
16052 } VkCoverageReductionModeNV;
16053 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
16054 typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
16055     VkStructureType    sType;
16056     void*              pNext;
16057     VkBool32           coverageReductionMode;
16058 } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
16059 
16060 typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
16061     VkStructureType                                  sType;
16062     const void*                                      pNext;
16063     VkPipelineCoverageReductionStateCreateFlagsNV    flags;
16064     VkCoverageReductionModeNV                        coverageReductionMode;
16065 } VkPipelineCoverageReductionStateCreateInfoNV;
16066 
16067 typedef struct VkFramebufferMixedSamplesCombinationNV {
16068     VkStructureType              sType;
16069     void*                        pNext;
16070     VkCoverageReductionModeNV    coverageReductionMode;
16071     VkSampleCountFlagBits        rasterizationSamples;
16072     VkSampleCountFlags           depthStencilSamples;
16073     VkSampleCountFlags           colorSamples;
16074 } VkFramebufferMixedSamplesCombinationNV;
16075 
16076 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
16077 
16078 #ifndef VK_NO_PROTOTYPES
16079 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
16080     VkPhysicalDevice                            physicalDevice,
16081     uint32_t*                                   pCombinationCount,
16082     VkFramebufferMixedSamplesCombinationNV*     pCombinations);
16083 #endif
16084 
16085 
16086 // VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
16087 #define VK_EXT_fragment_shader_interlock 1
16088 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
16089 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
16090 typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
16091     VkStructureType    sType;
16092     void*              pNext;
16093     VkBool32           fragmentShaderSampleInterlock;
16094     VkBool32           fragmentShaderPixelInterlock;
16095     VkBool32           fragmentShaderShadingRateInterlock;
16096 } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
16097 
16098 
16099 
16100 // VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
16101 #define VK_EXT_ycbcr_image_arrays 1
16102 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
16103 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
16104 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
16105     VkStructureType    sType;
16106     void*              pNext;
16107     VkBool32           ycbcrImageArrays;
16108 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
16109 
16110 
16111 
16112 // VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
16113 #define VK_EXT_provoking_vertex 1
16114 #define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
16115 #define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
16116 
16117 typedef enum VkProvokingVertexModeEXT {
16118     VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
16119     VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
16120     VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
16121 } VkProvokingVertexModeEXT;
16122 typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
16123     VkStructureType    sType;
16124     void*              pNext;
16125     VkBool32           provokingVertexLast;
16126     VkBool32           transformFeedbackPreservesProvokingVertex;
16127 } VkPhysicalDeviceProvokingVertexFeaturesEXT;
16128 
16129 typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
16130     VkStructureType    sType;
16131     void*              pNext;
16132     VkBool32           provokingVertexModePerPipeline;
16133     VkBool32           transformFeedbackPreservesTriangleFanProvokingVertex;
16134 } VkPhysicalDeviceProvokingVertexPropertiesEXT;
16135 
16136 typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
16137     VkStructureType             sType;
16138     const void*                 pNext;
16139     VkProvokingVertexModeEXT    provokingVertexMode;
16140 } VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
16141 
16142 
16143 
16144 // VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
16145 #define VK_EXT_headless_surface 1
16146 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
16147 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
16148 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
16149 typedef struct VkHeadlessSurfaceCreateInfoEXT {
16150     VkStructureType                    sType;
16151     const void*                        pNext;
16152     VkHeadlessSurfaceCreateFlagsEXT    flags;
16153 } VkHeadlessSurfaceCreateInfoEXT;
16154 
16155 typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
16156 
16157 #ifndef VK_NO_PROTOTYPES
16158 VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
16159     VkInstance                                  instance,
16160     const VkHeadlessSurfaceCreateInfoEXT*       pCreateInfo,
16161     const VkAllocationCallbacks*                pAllocator,
16162     VkSurfaceKHR*                               pSurface);
16163 #endif
16164 
16165 
16166 // VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
16167 #define VK_EXT_line_rasterization 1
16168 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
16169 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
16170 typedef VkLineRasterizationMode VkLineRasterizationModeEXT;
16171 
16172 typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesEXT;
16173 
16174 typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesEXT;
16175 
16176 typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoEXT;
16177 
16178 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
16179 
16180 #ifndef VK_NO_PROTOTYPES
16181 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
16182     VkCommandBuffer                             commandBuffer,
16183     uint32_t                                    lineStippleFactor,
16184     uint16_t                                    lineStipplePattern);
16185 #endif
16186 
16187 
16188 // VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
16189 #define VK_EXT_shader_atomic_float 1
16190 #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
16191 #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
16192 typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
16193     VkStructureType    sType;
16194     void*              pNext;
16195     VkBool32           shaderBufferFloat32Atomics;
16196     VkBool32           shaderBufferFloat32AtomicAdd;
16197     VkBool32           shaderBufferFloat64Atomics;
16198     VkBool32           shaderBufferFloat64AtomicAdd;
16199     VkBool32           shaderSharedFloat32Atomics;
16200     VkBool32           shaderSharedFloat32AtomicAdd;
16201     VkBool32           shaderSharedFloat64Atomics;
16202     VkBool32           shaderSharedFloat64AtomicAdd;
16203     VkBool32           shaderImageFloat32Atomics;
16204     VkBool32           shaderImageFloat32AtomicAdd;
16205     VkBool32           sparseImageFloat32Atomics;
16206     VkBool32           sparseImageFloat32AtomicAdd;
16207 } VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
16208 
16209 
16210 
16211 // VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
16212 #define VK_EXT_host_query_reset 1
16213 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
16214 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
16215 typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
16216 
16217 typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
16218 
16219 #ifndef VK_NO_PROTOTYPES
16220 VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
16221     VkDevice                                    device,
16222     VkQueryPool                                 queryPool,
16223     uint32_t                                    firstQuery,
16224     uint32_t                                    queryCount);
16225 #endif
16226 
16227 
16228 // VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
16229 #define VK_EXT_index_type_uint8 1
16230 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
16231 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
16232 typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
16233 
16234 
16235 
16236 // VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
16237 #define VK_EXT_extended_dynamic_state 1
16238 #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
16239 #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
16240 typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
16241     VkStructureType    sType;
16242     void*              pNext;
16243     VkBool32           extendedDynamicState;
16244 } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
16245 
16246 typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
16247 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
16248 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
16249 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
16250 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
16251 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);
16252 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
16253 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
16254 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
16255 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
16256 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
16257 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
16258 
16259 #ifndef VK_NO_PROTOTYPES
16260 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
16261     VkCommandBuffer                             commandBuffer,
16262     VkCullModeFlags                             cullMode);
16263 
16264 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
16265     VkCommandBuffer                             commandBuffer,
16266     VkFrontFace                                 frontFace);
16267 
16268 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
16269     VkCommandBuffer                             commandBuffer,
16270     VkPrimitiveTopology                         primitiveTopology);
16271 
16272 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
16273     VkCommandBuffer                             commandBuffer,
16274     uint32_t                                    viewportCount,
16275     const VkViewport*                           pViewports);
16276 
16277 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
16278     VkCommandBuffer                             commandBuffer,
16279     uint32_t                                    scissorCount,
16280     const VkRect2D*                             pScissors);
16281 
16282 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
16283     VkCommandBuffer                             commandBuffer,
16284     uint32_t                                    firstBinding,
16285     uint32_t                                    bindingCount,
16286     const VkBuffer*                             pBuffers,
16287     const VkDeviceSize*                         pOffsets,
16288     const VkDeviceSize*                         pSizes,
16289     const VkDeviceSize*                         pStrides);
16290 
16291 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
16292     VkCommandBuffer                             commandBuffer,
16293     VkBool32                                    depthTestEnable);
16294 
16295 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
16296     VkCommandBuffer                             commandBuffer,
16297     VkBool32                                    depthWriteEnable);
16298 
16299 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
16300     VkCommandBuffer                             commandBuffer,
16301     VkCompareOp                                 depthCompareOp);
16302 
16303 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
16304     VkCommandBuffer                             commandBuffer,
16305     VkBool32                                    depthBoundsTestEnable);
16306 
16307 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
16308     VkCommandBuffer                             commandBuffer,
16309     VkBool32                                    stencilTestEnable);
16310 
16311 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
16312     VkCommandBuffer                             commandBuffer,
16313     VkStencilFaceFlags                          faceMask,
16314     VkStencilOp                                 failOp,
16315     VkStencilOp                                 passOp,
16316     VkStencilOp                                 depthFailOp,
16317     VkCompareOp                                 compareOp);
16318 #endif
16319 
16320 
16321 // VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
16322 #define VK_EXT_host_image_copy 1
16323 #define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
16324 #define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
16325 typedef VkHostImageCopyFlagBits VkHostImageCopyFlagBitsEXT;
16326 
16327 typedef VkHostImageCopyFlags VkHostImageCopyFlagsEXT;
16328 
16329 typedef VkPhysicalDeviceHostImageCopyFeatures VkPhysicalDeviceHostImageCopyFeaturesEXT;
16330 
16331 typedef VkPhysicalDeviceHostImageCopyProperties VkPhysicalDeviceHostImageCopyPropertiesEXT;
16332 
16333 typedef VkMemoryToImageCopy VkMemoryToImageCopyEXT;
16334 
16335 typedef VkImageToMemoryCopy VkImageToMemoryCopyEXT;
16336 
16337 typedef VkCopyMemoryToImageInfo VkCopyMemoryToImageInfoEXT;
16338 
16339 typedef VkCopyImageToMemoryInfo VkCopyImageToMemoryInfoEXT;
16340 
16341 typedef VkCopyImageToImageInfo VkCopyImageToImageInfoEXT;
16342 
16343 typedef VkHostImageLayoutTransitionInfo VkHostImageLayoutTransitionInfoEXT;
16344 
16345 typedef VkSubresourceHostMemcpySize VkSubresourceHostMemcpySizeEXT;
16346 
16347 typedef VkHostImageCopyDevicePerformanceQuery VkHostImageCopyDevicePerformanceQueryEXT;
16348 
16349 typedef VkSubresourceLayout2 VkSubresourceLayout2EXT;
16350 
16351 typedef VkImageSubresource2 VkImageSubresource2EXT;
16352 
16353 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfo*    pCopyMemoryToImageInfo);
16354 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfo*    pCopyImageToMemoryInfo);
16355 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfo*    pCopyImageToImageInfo);
16356 typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo*    pTransitions);
16357 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
16358 
16359 #ifndef VK_NO_PROTOTYPES
16360 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
16361     VkDevice                                    device,
16362     const VkCopyMemoryToImageInfo*              pCopyMemoryToImageInfo);
16363 
16364 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
16365     VkDevice                                    device,
16366     const VkCopyImageToMemoryInfo*              pCopyImageToMemoryInfo);
16367 
16368 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
16369     VkDevice                                    device,
16370     const VkCopyImageToImageInfo*               pCopyImageToImageInfo);
16371 
16372 VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
16373     VkDevice                                    device,
16374     uint32_t                                    transitionCount,
16375     const VkHostImageLayoutTransitionInfo*      pTransitions);
16376 
16377 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
16378     VkDevice                                    device,
16379     VkImage                                     image,
16380     const VkImageSubresource2*                  pSubresource,
16381     VkSubresourceLayout2*                       pLayout);
16382 #endif
16383 
16384 
16385 // VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
16386 #define VK_EXT_map_memory_placed 1
16387 #define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
16388 #define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
16389 typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
16390     VkStructureType    sType;
16391     void*              pNext;
16392     VkBool32           memoryMapPlaced;
16393     VkBool32           memoryMapRangePlaced;
16394     VkBool32           memoryUnmapReserve;
16395 } VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
16396 
16397 typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
16398     VkStructureType    sType;
16399     void*              pNext;
16400     VkDeviceSize       minPlacedMemoryMapAlignment;
16401 } VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
16402 
16403 typedef struct VkMemoryMapPlacedInfoEXT {
16404     VkStructureType    sType;
16405     const void*        pNext;
16406     void*              pPlacedAddress;
16407 } VkMemoryMapPlacedInfoEXT;
16408 
16409 
16410 
16411 // VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
16412 #define VK_EXT_shader_atomic_float2 1
16413 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
16414 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
16415 typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
16416     VkStructureType    sType;
16417     void*              pNext;
16418     VkBool32           shaderBufferFloat16Atomics;
16419     VkBool32           shaderBufferFloat16AtomicAdd;
16420     VkBool32           shaderBufferFloat16AtomicMinMax;
16421     VkBool32           shaderBufferFloat32AtomicMinMax;
16422     VkBool32           shaderBufferFloat64AtomicMinMax;
16423     VkBool32           shaderSharedFloat16Atomics;
16424     VkBool32           shaderSharedFloat16AtomicAdd;
16425     VkBool32           shaderSharedFloat16AtomicMinMax;
16426     VkBool32           shaderSharedFloat32AtomicMinMax;
16427     VkBool32           shaderSharedFloat64AtomicMinMax;
16428     VkBool32           shaderImageFloat32AtomicMinMax;
16429     VkBool32           sparseImageFloat32AtomicMinMax;
16430 } VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
16431 
16432 
16433 
16434 // VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
16435 #define VK_EXT_surface_maintenance1 1
16436 #define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
16437 #define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
16438 
16439 typedef enum VkPresentScalingFlagBitsEXT {
16440     VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 0x00000001,
16441     VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 0x00000002,
16442     VK_PRESENT_SCALING_STRETCH_BIT_EXT = 0x00000004,
16443     VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16444 } VkPresentScalingFlagBitsEXT;
16445 typedef VkFlags VkPresentScalingFlagsEXT;
16446 
16447 typedef enum VkPresentGravityFlagBitsEXT {
16448     VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0x00000001,
16449     VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0x00000002,
16450     VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0x00000004,
16451     VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16452 } VkPresentGravityFlagBitsEXT;
16453 typedef VkFlags VkPresentGravityFlagsEXT;
16454 typedef struct VkSurfacePresentModeEXT {
16455     VkStructureType     sType;
16456     void*               pNext;
16457     VkPresentModeKHR    presentMode;
16458 } VkSurfacePresentModeEXT;
16459 
16460 typedef struct VkSurfacePresentScalingCapabilitiesEXT {
16461     VkStructureType             sType;
16462     void*                       pNext;
16463     VkPresentScalingFlagsEXT    supportedPresentScaling;
16464     VkPresentGravityFlagsEXT    supportedPresentGravityX;
16465     VkPresentGravityFlagsEXT    supportedPresentGravityY;
16466     VkExtent2D                  minScaledImageExtent;
16467     VkExtent2D                  maxScaledImageExtent;
16468 } VkSurfacePresentScalingCapabilitiesEXT;
16469 
16470 typedef struct VkSurfacePresentModeCompatibilityEXT {
16471     VkStructureType      sType;
16472     void*                pNext;
16473     uint32_t             presentModeCount;
16474     VkPresentModeKHR*    pPresentModes;
16475 } VkSurfacePresentModeCompatibilityEXT;
16476 
16477 
16478 
16479 // VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
16480 #define VK_EXT_swapchain_maintenance1 1
16481 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
16482 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
16483 typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT {
16484     VkStructureType    sType;
16485     void*              pNext;
16486     VkBool32           swapchainMaintenance1;
16487 } VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
16488 
16489 typedef struct VkSwapchainPresentFenceInfoEXT {
16490     VkStructureType    sType;
16491     const void*        pNext;
16492     uint32_t           swapchainCount;
16493     const VkFence*     pFences;
16494 } VkSwapchainPresentFenceInfoEXT;
16495 
16496 typedef struct VkSwapchainPresentModesCreateInfoEXT {
16497     VkStructureType            sType;
16498     const void*                pNext;
16499     uint32_t                   presentModeCount;
16500     const VkPresentModeKHR*    pPresentModes;
16501 } VkSwapchainPresentModesCreateInfoEXT;
16502 
16503 typedef struct VkSwapchainPresentModeInfoEXT {
16504     VkStructureType            sType;
16505     const void*                pNext;
16506     uint32_t                   swapchainCount;
16507     const VkPresentModeKHR*    pPresentModes;
16508 } VkSwapchainPresentModeInfoEXT;
16509 
16510 typedef struct VkSwapchainPresentScalingCreateInfoEXT {
16511     VkStructureType             sType;
16512     const void*                 pNext;
16513     VkPresentScalingFlagsEXT    scalingBehavior;
16514     VkPresentGravityFlagsEXT    presentGravityX;
16515     VkPresentGravityFlagsEXT    presentGravityY;
16516 } VkSwapchainPresentScalingCreateInfoEXT;
16517 
16518 typedef struct VkReleaseSwapchainImagesInfoEXT {
16519     VkStructureType    sType;
16520     const void*        pNext;
16521     VkSwapchainKHR     swapchain;
16522     uint32_t           imageIndexCount;
16523     const uint32_t*    pImageIndices;
16524 } VkReleaseSwapchainImagesInfoEXT;
16525 
16526 typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo);
16527 
16528 #ifndef VK_NO_PROTOTYPES
16529 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
16530     VkDevice                                    device,
16531     const VkReleaseSwapchainImagesInfoEXT*      pReleaseInfo);
16532 #endif
16533 
16534 
16535 // VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
16536 #define VK_EXT_shader_demote_to_helper_invocation 1
16537 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
16538 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
16539 typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
16540 
16541 
16542 
16543 // VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
16544 #define VK_NV_device_generated_commands 1
16545 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
16546 #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
16547 #define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
16548 
16549 typedef enum VkIndirectCommandsTokenTypeNV {
16550     VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
16551     VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
16552     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
16553     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
16554     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
16555     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
16556     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
16557     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
16558     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
16559     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
16560     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
16561     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16562 } VkIndirectCommandsTokenTypeNV;
16563 
16564 typedef enum VkIndirectStateFlagBitsNV {
16565     VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
16566     VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
16567 } VkIndirectStateFlagBitsNV;
16568 typedef VkFlags VkIndirectStateFlagsNV;
16569 
16570 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
16571     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
16572     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
16573     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
16574     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
16575 } VkIndirectCommandsLayoutUsageFlagBitsNV;
16576 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
16577 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
16578     VkStructureType    sType;
16579     void*              pNext;
16580     uint32_t           maxGraphicsShaderGroupCount;
16581     uint32_t           maxIndirectSequenceCount;
16582     uint32_t           maxIndirectCommandsTokenCount;
16583     uint32_t           maxIndirectCommandsStreamCount;
16584     uint32_t           maxIndirectCommandsTokenOffset;
16585     uint32_t           maxIndirectCommandsStreamStride;
16586     uint32_t           minSequencesCountBufferOffsetAlignment;
16587     uint32_t           minSequencesIndexBufferOffsetAlignment;
16588     uint32_t           minIndirectCommandsBufferOffsetAlignment;
16589 } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
16590 
16591 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
16592     VkStructureType    sType;
16593     void*              pNext;
16594     VkBool32           deviceGeneratedCommands;
16595 } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
16596 
16597 typedef struct VkGraphicsShaderGroupCreateInfoNV {
16598     VkStructureType                                 sType;
16599     const void*                                     pNext;
16600     uint32_t                                        stageCount;
16601     const VkPipelineShaderStageCreateInfo*          pStages;
16602     const VkPipelineVertexInputStateCreateInfo*     pVertexInputState;
16603     const VkPipelineTessellationStateCreateInfo*    pTessellationState;
16604 } VkGraphicsShaderGroupCreateInfoNV;
16605 
16606 typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
16607     VkStructureType                             sType;
16608     const void*                                 pNext;
16609     uint32_t                                    groupCount;
16610     const VkGraphicsShaderGroupCreateInfoNV*    pGroups;
16611     uint32_t                                    pipelineCount;
16612     const VkPipeline*                           pPipelines;
16613 } VkGraphicsPipelineShaderGroupsCreateInfoNV;
16614 
16615 typedef struct VkBindShaderGroupIndirectCommandNV {
16616     uint32_t    groupIndex;
16617 } VkBindShaderGroupIndirectCommandNV;
16618 
16619 typedef struct VkBindIndexBufferIndirectCommandNV {
16620     VkDeviceAddress    bufferAddress;
16621     uint32_t           size;
16622     VkIndexType        indexType;
16623 } VkBindIndexBufferIndirectCommandNV;
16624 
16625 typedef struct VkBindVertexBufferIndirectCommandNV {
16626     VkDeviceAddress    bufferAddress;
16627     uint32_t           size;
16628     uint32_t           stride;
16629 } VkBindVertexBufferIndirectCommandNV;
16630 
16631 typedef struct VkSetStateFlagsIndirectCommandNV {
16632     uint32_t    data;
16633 } VkSetStateFlagsIndirectCommandNV;
16634 
16635 typedef struct VkIndirectCommandsStreamNV {
16636     VkBuffer        buffer;
16637     VkDeviceSize    offset;
16638 } VkIndirectCommandsStreamNV;
16639 
16640 typedef struct VkIndirectCommandsLayoutTokenNV {
16641     VkStructureType                  sType;
16642     const void*                      pNext;
16643     VkIndirectCommandsTokenTypeNV    tokenType;
16644     uint32_t                         stream;
16645     uint32_t                         offset;
16646     uint32_t                         vertexBindingUnit;
16647     VkBool32                         vertexDynamicStride;
16648     VkPipelineLayout                 pushconstantPipelineLayout;
16649     VkShaderStageFlags               pushconstantShaderStageFlags;
16650     uint32_t                         pushconstantOffset;
16651     uint32_t                         pushconstantSize;
16652     VkIndirectStateFlagsNV           indirectStateFlags;
16653     uint32_t                         indexTypeCount;
16654     const VkIndexType*               pIndexTypes;
16655     const uint32_t*                  pIndexTypeValues;
16656 } VkIndirectCommandsLayoutTokenNV;
16657 
16658 typedef struct VkIndirectCommandsLayoutCreateInfoNV {
16659     VkStructureType                           sType;
16660     const void*                               pNext;
16661     VkIndirectCommandsLayoutUsageFlagsNV      flags;
16662     VkPipelineBindPoint                       pipelineBindPoint;
16663     uint32_t                                  tokenCount;
16664     const VkIndirectCommandsLayoutTokenNV*    pTokens;
16665     uint32_t                                  streamCount;
16666     const uint32_t*                           pStreamStrides;
16667 } VkIndirectCommandsLayoutCreateInfoNV;
16668 
16669 typedef struct VkGeneratedCommandsInfoNV {
16670     VkStructureType                      sType;
16671     const void*                          pNext;
16672     VkPipelineBindPoint                  pipelineBindPoint;
16673     VkPipeline                           pipeline;
16674     VkIndirectCommandsLayoutNV           indirectCommandsLayout;
16675     uint32_t                             streamCount;
16676     const VkIndirectCommandsStreamNV*    pStreams;
16677     uint32_t                             sequencesCount;
16678     VkBuffer                             preprocessBuffer;
16679     VkDeviceSize                         preprocessOffset;
16680     VkDeviceSize                         preprocessSize;
16681     VkBuffer                             sequencesCountBuffer;
16682     VkDeviceSize                         sequencesCountOffset;
16683     VkBuffer                             sequencesIndexBuffer;
16684     VkDeviceSize                         sequencesIndexOffset;
16685 } VkGeneratedCommandsInfoNV;
16686 
16687 typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
16688     VkStructureType               sType;
16689     const void*                   pNext;
16690     VkPipelineBindPoint           pipelineBindPoint;
16691     VkPipeline                    pipeline;
16692     VkIndirectCommandsLayoutNV    indirectCommandsLayout;
16693     uint32_t                      maxSequencesCount;
16694 } VkGeneratedCommandsMemoryRequirementsInfoNV;
16695 
16696 typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
16697 typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
16698 typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
16699 typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
16700 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
16701 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
16702 
16703 #ifndef VK_NO_PROTOTYPES
16704 VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
16705     VkDevice                                    device,
16706     const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
16707     VkMemoryRequirements2*                      pMemoryRequirements);
16708 
16709 VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
16710     VkCommandBuffer                             commandBuffer,
16711     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
16712 
16713 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
16714     VkCommandBuffer                             commandBuffer,
16715     VkBool32                                    isPreprocessed,
16716     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
16717 
16718 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
16719     VkCommandBuffer                             commandBuffer,
16720     VkPipelineBindPoint                         pipelineBindPoint,
16721     VkPipeline                                  pipeline,
16722     uint32_t                                    groupIndex);
16723 
16724 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
16725     VkDevice                                    device,
16726     const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
16727     const VkAllocationCallbacks*                pAllocator,
16728     VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout);
16729 
16730 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
16731     VkDevice                                    device,
16732     VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
16733     const VkAllocationCallbacks*                pAllocator);
16734 #endif
16735 
16736 
16737 // VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
16738 #define VK_NV_inherited_viewport_scissor 1
16739 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
16740 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
16741 typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
16742     VkStructureType    sType;
16743     void*              pNext;
16744     VkBool32           inheritedViewportScissor2D;
16745 } VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
16746 
16747 typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
16748     VkStructureType      sType;
16749     const void*          pNext;
16750     VkBool32             viewportScissor2D;
16751     uint32_t             viewportDepthCount;
16752     const VkViewport*    pViewportDepths;
16753 } VkCommandBufferInheritanceViewportScissorInfoNV;
16754 
16755 
16756 
16757 // VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
16758 #define VK_EXT_texel_buffer_alignment 1
16759 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
16760 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
16761 typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
16762     VkStructureType    sType;
16763     void*              pNext;
16764     VkBool32           texelBufferAlignment;
16765 } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
16766 
16767 typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
16768 
16769 
16770 
16771 // VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
16772 #define VK_QCOM_render_pass_transform 1
16773 #define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 4
16774 #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
16775 typedef struct VkRenderPassTransformBeginInfoQCOM {
16776     VkStructureType                  sType;
16777     void*                            pNext;
16778     VkSurfaceTransformFlagBitsKHR    transform;
16779 } VkRenderPassTransformBeginInfoQCOM;
16780 
16781 typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
16782     VkStructureType                  sType;
16783     void*                            pNext;
16784     VkSurfaceTransformFlagBitsKHR    transform;
16785     VkRect2D                         renderArea;
16786 } VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
16787 
16788 
16789 
16790 // VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
16791 #define VK_EXT_depth_bias_control 1
16792 #define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
16793 #define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
16794 
16795 typedef enum VkDepthBiasRepresentationEXT {
16796     VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
16797     VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
16798     VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
16799     VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
16800 } VkDepthBiasRepresentationEXT;
16801 typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
16802     VkStructureType    sType;
16803     void*              pNext;
16804     VkBool32           depthBiasControl;
16805     VkBool32           leastRepresentableValueForceUnormRepresentation;
16806     VkBool32           floatRepresentation;
16807     VkBool32           depthBiasExact;
16808 } VkPhysicalDeviceDepthBiasControlFeaturesEXT;
16809 
16810 typedef struct VkDepthBiasInfoEXT {
16811     VkStructureType    sType;
16812     const void*        pNext;
16813     float              depthBiasConstantFactor;
16814     float              depthBiasClamp;
16815     float              depthBiasSlopeFactor;
16816 } VkDepthBiasInfoEXT;
16817 
16818 typedef struct VkDepthBiasRepresentationInfoEXT {
16819     VkStructureType                 sType;
16820     const void*                     pNext;
16821     VkDepthBiasRepresentationEXT    depthBiasRepresentation;
16822     VkBool32                        depthBiasExact;
16823 } VkDepthBiasRepresentationInfoEXT;
16824 
16825 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT*         pDepthBiasInfo);
16826 
16827 #ifndef VK_NO_PROTOTYPES
16828 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
16829     VkCommandBuffer                             commandBuffer,
16830     const VkDepthBiasInfoEXT*                   pDepthBiasInfo);
16831 #endif
16832 
16833 
16834 // VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
16835 #define VK_EXT_device_memory_report 1
16836 #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
16837 #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
16838 
16839 typedef enum VkDeviceMemoryReportEventTypeEXT {
16840     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
16841     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
16842     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
16843     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
16844     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
16845     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
16846 } VkDeviceMemoryReportEventTypeEXT;
16847 typedef VkFlags VkDeviceMemoryReportFlagsEXT;
16848 typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
16849     VkStructureType    sType;
16850     void*              pNext;
16851     VkBool32           deviceMemoryReport;
16852 } VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
16853 
16854 typedef struct VkDeviceMemoryReportCallbackDataEXT {
16855     VkStructureType                     sType;
16856     void*                               pNext;
16857     VkDeviceMemoryReportFlagsEXT        flags;
16858     VkDeviceMemoryReportEventTypeEXT    type;
16859     uint64_t                            memoryObjectId;
16860     VkDeviceSize                        size;
16861     VkObjectType                        objectType;
16862     uint64_t                            objectHandle;
16863     uint32_t                            heapIndex;
16864 } VkDeviceMemoryReportCallbackDataEXT;
16865 
16866 typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
16867     const VkDeviceMemoryReportCallbackDataEXT*  pCallbackData,
16868     void*                                       pUserData);
16869 
16870 typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
16871     VkStructureType                        sType;
16872     const void*                            pNext;
16873     VkDeviceMemoryReportFlagsEXT           flags;
16874     PFN_vkDeviceMemoryReportCallbackEXT    pfnUserCallback;
16875     void*                                  pUserData;
16876 } VkDeviceDeviceMemoryReportCreateInfoEXT;
16877 
16878 
16879 
16880 // VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
16881 #define VK_EXT_acquire_drm_display 1
16882 #define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
16883 #define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
16884 typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
16885 typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
16886 
16887 #ifndef VK_NO_PROTOTYPES
16888 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
16889     VkPhysicalDevice                            physicalDevice,
16890     int32_t                                     drmFd,
16891     VkDisplayKHR                                display);
16892 
16893 VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
16894     VkPhysicalDevice                            physicalDevice,
16895     int32_t                                     drmFd,
16896     uint32_t                                    connectorId,
16897     VkDisplayKHR*                               display);
16898 #endif
16899 
16900 
16901 // VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
16902 #define VK_EXT_robustness2 1
16903 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION  1
16904 #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
16905 typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
16906     VkStructureType    sType;
16907     void*              pNext;
16908     VkBool32           robustBufferAccess2;
16909     VkBool32           robustImageAccess2;
16910     VkBool32           nullDescriptor;
16911 } VkPhysicalDeviceRobustness2FeaturesEXT;
16912 
16913 typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
16914     VkStructureType    sType;
16915     void*              pNext;
16916     VkDeviceSize       robustStorageBufferAccessSizeAlignment;
16917     VkDeviceSize       robustUniformBufferAccessSizeAlignment;
16918 } VkPhysicalDeviceRobustness2PropertiesEXT;
16919 
16920 
16921 
16922 // VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
16923 #define VK_EXT_custom_border_color 1
16924 #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
16925 #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
16926 typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
16927     VkStructureType      sType;
16928     const void*          pNext;
16929     VkClearColorValue    customBorderColor;
16930     VkFormat             format;
16931 } VkSamplerCustomBorderColorCreateInfoEXT;
16932 
16933 typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
16934     VkStructureType    sType;
16935     void*              pNext;
16936     uint32_t           maxCustomBorderColorSamplers;
16937 } VkPhysicalDeviceCustomBorderColorPropertiesEXT;
16938 
16939 typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
16940     VkStructureType    sType;
16941     void*              pNext;
16942     VkBool32           customBorderColors;
16943     VkBool32           customBorderColorWithoutFormat;
16944 } VkPhysicalDeviceCustomBorderColorFeaturesEXT;
16945 
16946 
16947 
16948 // VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
16949 #define VK_GOOGLE_user_type 1
16950 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
16951 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
16952 
16953 
16954 // VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
16955 #define VK_NV_present_barrier 1
16956 #define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
16957 #define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
16958 typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
16959     VkStructureType    sType;
16960     void*              pNext;
16961     VkBool32           presentBarrier;
16962 } VkPhysicalDevicePresentBarrierFeaturesNV;
16963 
16964 typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
16965     VkStructureType    sType;
16966     void*              pNext;
16967     VkBool32           presentBarrierSupported;
16968 } VkSurfaceCapabilitiesPresentBarrierNV;
16969 
16970 typedef struct VkSwapchainPresentBarrierCreateInfoNV {
16971     VkStructureType    sType;
16972     void*              pNext;
16973     VkBool32           presentBarrierEnable;
16974 } VkSwapchainPresentBarrierCreateInfoNV;
16975 
16976 
16977 
16978 // VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
16979 #define VK_EXT_private_data 1
16980 typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
16981 
16982 #define VK_EXT_PRIVATE_DATA_SPEC_VERSION  1
16983 #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
16984 typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
16985 
16986 typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
16987 
16988 typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
16989 
16990 typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
16991 
16992 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
16993 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
16994 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
16995 typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
16996 
16997 #ifndef VK_NO_PROTOTYPES
16998 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
16999     VkDevice                                    device,
17000     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
17001     const VkAllocationCallbacks*                pAllocator,
17002     VkPrivateDataSlot*                          pPrivateDataSlot);
17003 
17004 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
17005     VkDevice                                    device,
17006     VkPrivateDataSlot                           privateDataSlot,
17007     const VkAllocationCallbacks*                pAllocator);
17008 
17009 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
17010     VkDevice                                    device,
17011     VkObjectType                                objectType,
17012     uint64_t                                    objectHandle,
17013     VkPrivateDataSlot                           privateDataSlot,
17014     uint64_t                                    data);
17015 
17016 VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
17017     VkDevice                                    device,
17018     VkObjectType                                objectType,
17019     uint64_t                                    objectHandle,
17020     VkPrivateDataSlot                           privateDataSlot,
17021     uint64_t*                                   pData);
17022 #endif
17023 
17024 
17025 // VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
17026 #define VK_EXT_pipeline_creation_cache_control 1
17027 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
17028 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
17029 typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
17030 
17031 
17032 
17033 // VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
17034 #define VK_NV_device_diagnostics_config 1
17035 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
17036 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
17037 
17038 typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
17039     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
17040     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
17041     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
17042     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
17043     VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
17044 } VkDeviceDiagnosticsConfigFlagBitsNV;
17045 typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
17046 typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
17047     VkStructureType    sType;
17048     void*              pNext;
17049     VkBool32           diagnosticsConfig;
17050 } VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
17051 
17052 typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
17053     VkStructureType                     sType;
17054     const void*                         pNext;
17055     VkDeviceDiagnosticsConfigFlagsNV    flags;
17056 } VkDeviceDiagnosticsConfigCreateInfoNV;
17057 
17058 
17059 
17060 // VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
17061 #define VK_QCOM_render_pass_store_ops 1
17062 #define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
17063 #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
17064 
17065 
17066 // VK_NV_cuda_kernel_launch is a preprocessor guard. Do not pass it to API calls.
17067 #define VK_NV_cuda_kernel_launch 1
17068 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaModuleNV)
17069 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaFunctionNV)
17070 #define VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION 2
17071 #define VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME "VK_NV_cuda_kernel_launch"
17072 typedef struct VkCudaModuleCreateInfoNV {
17073     VkStructureType    sType;
17074     const void*        pNext;
17075     size_t             dataSize;
17076     const void*        pData;
17077 } VkCudaModuleCreateInfoNV;
17078 
17079 typedef struct VkCudaFunctionCreateInfoNV {
17080     VkStructureType    sType;
17081     const void*        pNext;
17082     VkCudaModuleNV     module;
17083     const char*        pName;
17084 } VkCudaFunctionCreateInfoNV;
17085 
17086 typedef struct VkCudaLaunchInfoNV {
17087     VkStructureType        sType;
17088     const void*            pNext;
17089     VkCudaFunctionNV       function;
17090     uint32_t               gridDimX;
17091     uint32_t               gridDimY;
17092     uint32_t               gridDimZ;
17093     uint32_t               blockDimX;
17094     uint32_t               blockDimY;
17095     uint32_t               blockDimZ;
17096     uint32_t               sharedMemBytes;
17097     size_t                 paramCount;
17098     const void* const *    pParams;
17099     size_t                 extraCount;
17100     const void* const *    pExtras;
17101 } VkCudaLaunchInfoNV;
17102 
17103 typedef struct VkPhysicalDeviceCudaKernelLaunchFeaturesNV {
17104     VkStructureType    sType;
17105     void*              pNext;
17106     VkBool32           cudaKernelLaunchFeatures;
17107 } VkPhysicalDeviceCudaKernelLaunchFeaturesNV;
17108 
17109 typedef struct VkPhysicalDeviceCudaKernelLaunchPropertiesNV {
17110     VkStructureType    sType;
17111     void*              pNext;
17112     uint32_t           computeCapabilityMinor;
17113     uint32_t           computeCapabilityMajor;
17114 } VkPhysicalDeviceCudaKernelLaunchPropertiesNV;
17115 
17116 typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaModuleNV)(VkDevice device, const VkCudaModuleCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaModuleNV* pModule);
17117 typedef VkResult (VKAPI_PTR *PFN_vkGetCudaModuleCacheNV)(VkDevice device, VkCudaModuleNV module, size_t* pCacheSize, void* pCacheData);
17118 typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaFunctionNV)(VkDevice device, const VkCudaFunctionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaFunctionNV* pFunction);
17119 typedef void (VKAPI_PTR *PFN_vkDestroyCudaModuleNV)(VkDevice device, VkCudaModuleNV module, const VkAllocationCallbacks* pAllocator);
17120 typedef void (VKAPI_PTR *PFN_vkDestroyCudaFunctionNV)(VkDevice device, VkCudaFunctionNV function, const VkAllocationCallbacks* pAllocator);
17121 typedef void (VKAPI_PTR *PFN_vkCmdCudaLaunchKernelNV)(VkCommandBuffer commandBuffer, const VkCudaLaunchInfoNV* pLaunchInfo);
17122 
17123 #ifndef VK_NO_PROTOTYPES
17124 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaModuleNV(
17125     VkDevice                                    device,
17126     const VkCudaModuleCreateInfoNV*             pCreateInfo,
17127     const VkAllocationCallbacks*                pAllocator,
17128     VkCudaModuleNV*                             pModule);
17129 
17130 VKAPI_ATTR VkResult VKAPI_CALL vkGetCudaModuleCacheNV(
17131     VkDevice                                    device,
17132     VkCudaModuleNV                              module,
17133     size_t*                                     pCacheSize,
17134     void*                                       pCacheData);
17135 
17136 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaFunctionNV(
17137     VkDevice                                    device,
17138     const VkCudaFunctionCreateInfoNV*           pCreateInfo,
17139     const VkAllocationCallbacks*                pAllocator,
17140     VkCudaFunctionNV*                           pFunction);
17141 
17142 VKAPI_ATTR void VKAPI_CALL vkDestroyCudaModuleNV(
17143     VkDevice                                    device,
17144     VkCudaModuleNV                              module,
17145     const VkAllocationCallbacks*                pAllocator);
17146 
17147 VKAPI_ATTR void VKAPI_CALL vkDestroyCudaFunctionNV(
17148     VkDevice                                    device,
17149     VkCudaFunctionNV                            function,
17150     const VkAllocationCallbacks*                pAllocator);
17151 
17152 VKAPI_ATTR void VKAPI_CALL vkCmdCudaLaunchKernelNV(
17153     VkCommandBuffer                             commandBuffer,
17154     const VkCudaLaunchInfoNV*                   pLaunchInfo);
17155 #endif
17156 
17157 
17158 // VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
17159 #define VK_NV_low_latency 1
17160 #define VK_NV_LOW_LATENCY_SPEC_VERSION    1
17161 #define VK_NV_LOW_LATENCY_EXTENSION_NAME  "VK_NV_low_latency"
17162 typedef struct VkQueryLowLatencySupportNV {
17163     VkStructureType    sType;
17164     const void*        pNext;
17165     void*              pQueriedLowLatencyData;
17166 } VkQueryLowLatencySupportNV;
17167 
17168 
17169 
17170 // VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
17171 #define VK_EXT_descriptor_buffer 1
17172 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
17173 #define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
17174 #define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
17175 typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
17176     VkStructureType    sType;
17177     void*              pNext;
17178     VkBool32           combinedImageSamplerDescriptorSingleArray;
17179     VkBool32           bufferlessPushDescriptors;
17180     VkBool32           allowSamplerImageViewPostSubmitCreation;
17181     VkDeviceSize       descriptorBufferOffsetAlignment;
17182     uint32_t           maxDescriptorBufferBindings;
17183     uint32_t           maxResourceDescriptorBufferBindings;
17184     uint32_t           maxSamplerDescriptorBufferBindings;
17185     uint32_t           maxEmbeddedImmutableSamplerBindings;
17186     uint32_t           maxEmbeddedImmutableSamplers;
17187     size_t             bufferCaptureReplayDescriptorDataSize;
17188     size_t             imageCaptureReplayDescriptorDataSize;
17189     size_t             imageViewCaptureReplayDescriptorDataSize;
17190     size_t             samplerCaptureReplayDescriptorDataSize;
17191     size_t             accelerationStructureCaptureReplayDescriptorDataSize;
17192     size_t             samplerDescriptorSize;
17193     size_t             combinedImageSamplerDescriptorSize;
17194     size_t             sampledImageDescriptorSize;
17195     size_t             storageImageDescriptorSize;
17196     size_t             uniformTexelBufferDescriptorSize;
17197     size_t             robustUniformTexelBufferDescriptorSize;
17198     size_t             storageTexelBufferDescriptorSize;
17199     size_t             robustStorageTexelBufferDescriptorSize;
17200     size_t             uniformBufferDescriptorSize;
17201     size_t             robustUniformBufferDescriptorSize;
17202     size_t             storageBufferDescriptorSize;
17203     size_t             robustStorageBufferDescriptorSize;
17204     size_t             inputAttachmentDescriptorSize;
17205     size_t             accelerationStructureDescriptorSize;
17206     VkDeviceSize       maxSamplerDescriptorBufferRange;
17207     VkDeviceSize       maxResourceDescriptorBufferRange;
17208     VkDeviceSize       samplerDescriptorBufferAddressSpaceSize;
17209     VkDeviceSize       resourceDescriptorBufferAddressSpaceSize;
17210     VkDeviceSize       descriptorBufferAddressSpaceSize;
17211 } VkPhysicalDeviceDescriptorBufferPropertiesEXT;
17212 
17213 typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
17214     VkStructureType    sType;
17215     void*              pNext;
17216     size_t             combinedImageSamplerDensityMapDescriptorSize;
17217 } VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
17218 
17219 typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
17220     VkStructureType    sType;
17221     void*              pNext;
17222     VkBool32           descriptorBuffer;
17223     VkBool32           descriptorBufferCaptureReplay;
17224     VkBool32           descriptorBufferImageLayoutIgnored;
17225     VkBool32           descriptorBufferPushDescriptors;
17226 } VkPhysicalDeviceDescriptorBufferFeaturesEXT;
17227 
17228 typedef struct VkDescriptorAddressInfoEXT {
17229     VkStructureType    sType;
17230     void*              pNext;
17231     VkDeviceAddress    address;
17232     VkDeviceSize       range;
17233     VkFormat           format;
17234 } VkDescriptorAddressInfoEXT;
17235 
17236 typedef struct VkDescriptorBufferBindingInfoEXT {
17237     VkStructureType       sType;
17238     const void*           pNext;
17239     VkDeviceAddress       address;
17240     VkBufferUsageFlags    usage;
17241 } VkDescriptorBufferBindingInfoEXT;
17242 
17243 typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
17244     VkStructureType    sType;
17245     const void*        pNext;
17246     VkBuffer           buffer;
17247 } VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
17248 
17249 typedef union VkDescriptorDataEXT {
17250     const VkSampler*                     pSampler;
17251     const VkDescriptorImageInfo*         pCombinedImageSampler;
17252     const VkDescriptorImageInfo*         pInputAttachmentImage;
17253     const VkDescriptorImageInfo*         pSampledImage;
17254     const VkDescriptorImageInfo*         pStorageImage;
17255     const VkDescriptorAddressInfoEXT*    pUniformTexelBuffer;
17256     const VkDescriptorAddressInfoEXT*    pStorageTexelBuffer;
17257     const VkDescriptorAddressInfoEXT*    pUniformBuffer;
17258     const VkDescriptorAddressInfoEXT*    pStorageBuffer;
17259     VkDeviceAddress                      accelerationStructure;
17260 } VkDescriptorDataEXT;
17261 
17262 typedef struct VkDescriptorGetInfoEXT {
17263     VkStructureType        sType;
17264     const void*            pNext;
17265     VkDescriptorType       type;
17266     VkDescriptorDataEXT    data;
17267 } VkDescriptorGetInfoEXT;
17268 
17269 typedef struct VkBufferCaptureDescriptorDataInfoEXT {
17270     VkStructureType    sType;
17271     const void*        pNext;
17272     VkBuffer           buffer;
17273 } VkBufferCaptureDescriptorDataInfoEXT;
17274 
17275 typedef struct VkImageCaptureDescriptorDataInfoEXT {
17276     VkStructureType    sType;
17277     const void*        pNext;
17278     VkImage            image;
17279 } VkImageCaptureDescriptorDataInfoEXT;
17280 
17281 typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
17282     VkStructureType    sType;
17283     const void*        pNext;
17284     VkImageView        imageView;
17285 } VkImageViewCaptureDescriptorDataInfoEXT;
17286 
17287 typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
17288     VkStructureType    sType;
17289     const void*        pNext;
17290     VkSampler          sampler;
17291 } VkSamplerCaptureDescriptorDataInfoEXT;
17292 
17293 typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
17294     VkStructureType    sType;
17295     const void*        pNext;
17296     const void*        opaqueCaptureDescriptorData;
17297 } VkOpaqueCaptureDescriptorDataCreateInfoEXT;
17298 
17299 typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
17300     VkStructureType               sType;
17301     const void*                   pNext;
17302     VkAccelerationStructureKHR    accelerationStructure;
17303     VkAccelerationStructureNV     accelerationStructureNV;
17304 } VkAccelerationStructureCaptureDescriptorDataInfoEXT;
17305 
17306 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
17307 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
17308 typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
17309 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
17310 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);
17311 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
17312 typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
17313 typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
17314 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
17315 typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
17316 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
17317 
17318 #ifndef VK_NO_PROTOTYPES
17319 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
17320     VkDevice                                    device,
17321     VkDescriptorSetLayout                       layout,
17322     VkDeviceSize*                               pLayoutSizeInBytes);
17323 
17324 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
17325     VkDevice                                    device,
17326     VkDescriptorSetLayout                       layout,
17327     uint32_t                                    binding,
17328     VkDeviceSize*                               pOffset);
17329 
17330 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
17331     VkDevice                                    device,
17332     const VkDescriptorGetInfoEXT*               pDescriptorInfo,
17333     size_t                                      dataSize,
17334     void*                                       pDescriptor);
17335 
17336 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
17337     VkCommandBuffer                             commandBuffer,
17338     uint32_t                                    bufferCount,
17339     const VkDescriptorBufferBindingInfoEXT*     pBindingInfos);
17340 
17341 VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
17342     VkCommandBuffer                             commandBuffer,
17343     VkPipelineBindPoint                         pipelineBindPoint,
17344     VkPipelineLayout                            layout,
17345     uint32_t                                    firstSet,
17346     uint32_t                                    setCount,
17347     const uint32_t*                             pBufferIndices,
17348     const VkDeviceSize*                         pOffsets);
17349 
17350 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
17351     VkCommandBuffer                             commandBuffer,
17352     VkPipelineBindPoint                         pipelineBindPoint,
17353     VkPipelineLayout                            layout,
17354     uint32_t                                    set);
17355 
17356 VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
17357     VkDevice                                    device,
17358     const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
17359     void*                                       pData);
17360 
17361 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
17362     VkDevice                                    device,
17363     const VkImageCaptureDescriptorDataInfoEXT*  pInfo,
17364     void*                                       pData);
17365 
17366 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
17367     VkDevice                                    device,
17368     const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
17369     void*                                       pData);
17370 
17371 VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
17372     VkDevice                                    device,
17373     const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
17374     void*                                       pData);
17375 
17376 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
17377     VkDevice                                    device,
17378     const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
17379     void*                                       pData);
17380 #endif
17381 
17382 
17383 // VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
17384 #define VK_EXT_graphics_pipeline_library 1
17385 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
17386 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
17387 
17388 typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
17389     VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
17390     VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
17391     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
17392     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
17393     VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17394 } VkGraphicsPipelineLibraryFlagBitsEXT;
17395 typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
17396 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
17397     VkStructureType    sType;
17398     void*              pNext;
17399     VkBool32           graphicsPipelineLibrary;
17400 } VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
17401 
17402 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
17403     VkStructureType    sType;
17404     void*              pNext;
17405     VkBool32           graphicsPipelineLibraryFastLinking;
17406     VkBool32           graphicsPipelineLibraryIndependentInterpolationDecoration;
17407 } VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
17408 
17409 typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
17410     VkStructureType                      sType;
17411     const void*                          pNext;
17412     VkGraphicsPipelineLibraryFlagsEXT    flags;
17413 } VkGraphicsPipelineLibraryCreateInfoEXT;
17414 
17415 
17416 
17417 // VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
17418 #define VK_AMD_shader_early_and_late_fragment_tests 1
17419 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
17420 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
17421 typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
17422     VkStructureType    sType;
17423     void*              pNext;
17424     VkBool32           shaderEarlyAndLateFragmentTests;
17425 } VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
17426 
17427 
17428 
17429 // VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
17430 #define VK_NV_fragment_shading_rate_enums 1
17431 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
17432 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
17433 
17434 typedef enum VkFragmentShadingRateTypeNV {
17435     VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
17436     VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
17437     VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
17438 } VkFragmentShadingRateTypeNV;
17439 
17440 typedef enum VkFragmentShadingRateNV {
17441     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
17442     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
17443     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
17444     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
17445     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
17446     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
17447     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
17448     VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
17449     VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
17450     VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
17451     VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
17452     VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
17453     VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
17454 } VkFragmentShadingRateNV;
17455 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
17456     VkStructureType    sType;
17457     void*              pNext;
17458     VkBool32           fragmentShadingRateEnums;
17459     VkBool32           supersampleFragmentShadingRates;
17460     VkBool32           noInvocationFragmentShadingRates;
17461 } VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
17462 
17463 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
17464     VkStructureType          sType;
17465     void*                    pNext;
17466     VkSampleCountFlagBits    maxFragmentShadingRateInvocationCount;
17467 } VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
17468 
17469 typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
17470     VkStructureType                       sType;
17471     const void*                           pNext;
17472     VkFragmentShadingRateTypeNV           shadingRateType;
17473     VkFragmentShadingRateNV               shadingRate;
17474     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
17475 } VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
17476 
17477 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer           commandBuffer, VkFragmentShadingRateNV                     shadingRate, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
17478 
17479 #ifndef VK_NO_PROTOTYPES
17480 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
17481     VkCommandBuffer                             commandBuffer,
17482     VkFragmentShadingRateNV                     shadingRate,
17483     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
17484 #endif
17485 
17486 
17487 // VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
17488 #define VK_NV_ray_tracing_motion_blur 1
17489 #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
17490 #define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
17491 
17492 typedef enum VkAccelerationStructureMotionInstanceTypeNV {
17493     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
17494     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
17495     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
17496     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
17497 } VkAccelerationStructureMotionInstanceTypeNV;
17498 typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
17499 typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
17500 typedef union VkDeviceOrHostAddressConstKHR {
17501     VkDeviceAddress    deviceAddress;
17502     const void*        hostAddress;
17503 } VkDeviceOrHostAddressConstKHR;
17504 
17505 typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
17506     VkStructureType                  sType;
17507     const void*                      pNext;
17508     VkDeviceOrHostAddressConstKHR    vertexData;
17509 } VkAccelerationStructureGeometryMotionTrianglesDataNV;
17510 
17511 typedef struct VkAccelerationStructureMotionInfoNV {
17512     VkStructureType                             sType;
17513     const void*                                 pNext;
17514     uint32_t                                    maxInstances;
17515     VkAccelerationStructureMotionInfoFlagsNV    flags;
17516 } VkAccelerationStructureMotionInfoNV;
17517 
17518 typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
17519     VkTransformMatrixKHR          transformT0;
17520     VkTransformMatrixKHR          transformT1;
17521     uint32_t                      instanceCustomIndex:24;
17522     uint32_t                      mask:8;
17523     uint32_t                      instanceShaderBindingTableRecordOffset:24;
17524     VkGeometryInstanceFlagsKHR    flags:8;
17525     uint64_t                      accelerationStructureReference;
17526 } VkAccelerationStructureMatrixMotionInstanceNV;
17527 
17528 typedef struct VkSRTDataNV {
17529     float    sx;
17530     float    a;
17531     float    b;
17532     float    pvx;
17533     float    sy;
17534     float    c;
17535     float    pvy;
17536     float    sz;
17537     float    pvz;
17538     float    qx;
17539     float    qy;
17540     float    qz;
17541     float    qw;
17542     float    tx;
17543     float    ty;
17544     float    tz;
17545 } VkSRTDataNV;
17546 
17547 typedef struct VkAccelerationStructureSRTMotionInstanceNV {
17548     VkSRTDataNV                   transformT0;
17549     VkSRTDataNV                   transformT1;
17550     uint32_t                      instanceCustomIndex:24;
17551     uint32_t                      mask:8;
17552     uint32_t                      instanceShaderBindingTableRecordOffset:24;
17553     VkGeometryInstanceFlagsKHR    flags:8;
17554     uint64_t                      accelerationStructureReference;
17555 } VkAccelerationStructureSRTMotionInstanceNV;
17556 
17557 typedef union VkAccelerationStructureMotionInstanceDataNV {
17558     VkAccelerationStructureInstanceKHR               staticInstance;
17559     VkAccelerationStructureMatrixMotionInstanceNV    matrixMotionInstance;
17560     VkAccelerationStructureSRTMotionInstanceNV       srtMotionInstance;
17561 } VkAccelerationStructureMotionInstanceDataNV;
17562 
17563 typedef struct VkAccelerationStructureMotionInstanceNV {
17564     VkAccelerationStructureMotionInstanceTypeNV     type;
17565     VkAccelerationStructureMotionInstanceFlagsNV    flags;
17566     VkAccelerationStructureMotionInstanceDataNV     data;
17567 } VkAccelerationStructureMotionInstanceNV;
17568 
17569 typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
17570     VkStructureType    sType;
17571     void*              pNext;
17572     VkBool32           rayTracingMotionBlur;
17573     VkBool32           rayTracingMotionBlurPipelineTraceRaysIndirect;
17574 } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
17575 
17576 
17577 
17578 // VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
17579 #define VK_EXT_ycbcr_2plane_444_formats 1
17580 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
17581 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
17582 typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
17583     VkStructureType    sType;
17584     void*              pNext;
17585     VkBool32           ycbcr2plane444Formats;
17586 } VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
17587 
17588 
17589 
17590 // VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
17591 #define VK_EXT_fragment_density_map2 1
17592 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
17593 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
17594 typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
17595     VkStructureType    sType;
17596     void*              pNext;
17597     VkBool32           fragmentDensityMapDeferred;
17598 } VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
17599 
17600 typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
17601     VkStructureType    sType;
17602     void*              pNext;
17603     VkBool32           subsampledLoads;
17604     VkBool32           subsampledCoarseReconstructionEarlyAccess;
17605     uint32_t           maxSubsampledArrayLayers;
17606     uint32_t           maxDescriptorSetSubsampledSamplers;
17607 } VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
17608 
17609 
17610 
17611 // VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
17612 #define VK_QCOM_rotated_copy_commands 1
17613 #define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
17614 #define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
17615 typedef struct VkCopyCommandTransformInfoQCOM {
17616     VkStructureType                  sType;
17617     const void*                      pNext;
17618     VkSurfaceTransformFlagBitsKHR    transform;
17619 } VkCopyCommandTransformInfoQCOM;
17620 
17621 
17622 
17623 // VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
17624 #define VK_EXT_image_robustness 1
17625 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
17626 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
17627 typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
17628 
17629 
17630 
17631 // VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
17632 #define VK_EXT_image_compression_control 1
17633 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
17634 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
17635 
17636 typedef enum VkImageCompressionFlagBitsEXT {
17637     VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
17638     VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
17639     VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
17640     VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
17641     VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17642 } VkImageCompressionFlagBitsEXT;
17643 typedef VkFlags VkImageCompressionFlagsEXT;
17644 
17645 typedef enum VkImageCompressionFixedRateFlagBitsEXT {
17646     VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
17647     VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
17648     VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
17649     VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
17650     VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
17651     VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
17652     VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
17653     VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
17654     VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
17655     VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
17656     VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
17657     VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
17658     VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
17659     VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
17660     VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
17661     VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
17662     VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
17663     VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
17664     VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
17665     VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
17666     VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
17667     VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
17668     VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
17669     VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
17670     VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
17671     VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17672 } VkImageCompressionFixedRateFlagBitsEXT;
17673 typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
17674 typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
17675     VkStructureType    sType;
17676     void*              pNext;
17677     VkBool32           imageCompressionControl;
17678 } VkPhysicalDeviceImageCompressionControlFeaturesEXT;
17679 
17680 typedef struct VkImageCompressionControlEXT {
17681     VkStructureType                         sType;
17682     const void*                             pNext;
17683     VkImageCompressionFlagsEXT              flags;
17684     uint32_t                                compressionControlPlaneCount;
17685     VkImageCompressionFixedRateFlagsEXT*    pFixedRateFlags;
17686 } VkImageCompressionControlEXT;
17687 
17688 typedef struct VkImageCompressionPropertiesEXT {
17689     VkStructureType                        sType;
17690     void*                                  pNext;
17691     VkImageCompressionFlagsEXT             imageCompressionFlags;
17692     VkImageCompressionFixedRateFlagsEXT    imageCompressionFixedRateFlags;
17693 } VkImageCompressionPropertiesEXT;
17694 
17695 
17696 
17697 // VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
17698 #define VK_EXT_attachment_feedback_loop_layout 1
17699 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
17700 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
17701 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
17702     VkStructureType    sType;
17703     void*              pNext;
17704     VkBool32           attachmentFeedbackLoopLayout;
17705 } VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
17706 
17707 
17708 
17709 // VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
17710 #define VK_EXT_4444_formats 1
17711 #define VK_EXT_4444_FORMATS_SPEC_VERSION  1
17712 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
17713 typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
17714     VkStructureType    sType;
17715     void*              pNext;
17716     VkBool32           formatA4R4G4B4;
17717     VkBool32           formatA4B4G4R4;
17718 } VkPhysicalDevice4444FormatsFeaturesEXT;
17719 
17720 
17721 
17722 // VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
17723 #define VK_EXT_device_fault 1
17724 #define VK_EXT_DEVICE_FAULT_SPEC_VERSION  2
17725 #define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
17726 
17727 typedef enum VkDeviceFaultAddressTypeEXT {
17728     VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
17729     VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
17730     VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
17731     VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
17732     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
17733     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
17734     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
17735     VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
17736 } VkDeviceFaultAddressTypeEXT;
17737 
17738 typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
17739     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
17740     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
17741 } VkDeviceFaultVendorBinaryHeaderVersionEXT;
17742 typedef struct VkPhysicalDeviceFaultFeaturesEXT {
17743     VkStructureType    sType;
17744     void*              pNext;
17745     VkBool32           deviceFault;
17746     VkBool32           deviceFaultVendorBinary;
17747 } VkPhysicalDeviceFaultFeaturesEXT;
17748 
17749 typedef struct VkDeviceFaultCountsEXT {
17750     VkStructureType    sType;
17751     void*              pNext;
17752     uint32_t           addressInfoCount;
17753     uint32_t           vendorInfoCount;
17754     VkDeviceSize       vendorBinarySize;
17755 } VkDeviceFaultCountsEXT;
17756 
17757 typedef struct VkDeviceFaultAddressInfoEXT {
17758     VkDeviceFaultAddressTypeEXT    addressType;
17759     VkDeviceAddress                reportedAddress;
17760     VkDeviceSize                   addressPrecision;
17761 } VkDeviceFaultAddressInfoEXT;
17762 
17763 typedef struct VkDeviceFaultVendorInfoEXT {
17764     char        description[VK_MAX_DESCRIPTION_SIZE];
17765     uint64_t    vendorFaultCode;
17766     uint64_t    vendorFaultData;
17767 } VkDeviceFaultVendorInfoEXT;
17768 
17769 typedef struct VkDeviceFaultInfoEXT {
17770     VkStructureType                 sType;
17771     void*                           pNext;
17772     char                            description[VK_MAX_DESCRIPTION_SIZE];
17773     VkDeviceFaultAddressInfoEXT*    pAddressInfos;
17774     VkDeviceFaultVendorInfoEXT*     pVendorInfos;
17775     void*                           pVendorBinaryData;
17776 } VkDeviceFaultInfoEXT;
17777 
17778 typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
17779     uint32_t                                     headerSize;
17780     VkDeviceFaultVendorBinaryHeaderVersionEXT    headerVersion;
17781     uint32_t                                     vendorID;
17782     uint32_t                                     deviceID;
17783     uint32_t                                     driverVersion;
17784     uint8_t                                      pipelineCacheUUID[VK_UUID_SIZE];
17785     uint32_t                                     applicationNameOffset;
17786     uint32_t                                     applicationVersion;
17787     uint32_t                                     engineNameOffset;
17788     uint32_t                                     engineVersion;
17789     uint32_t                                     apiVersion;
17790 } VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
17791 
17792 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
17793 
17794 #ifndef VK_NO_PROTOTYPES
17795 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
17796     VkDevice                                    device,
17797     VkDeviceFaultCountsEXT*                     pFaultCounts,
17798     VkDeviceFaultInfoEXT*                       pFaultInfo);
17799 #endif
17800 
17801 
17802 // VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
17803 #define VK_ARM_rasterization_order_attachment_access 1
17804 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
17805 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
17806 typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
17807     VkStructureType    sType;
17808     void*              pNext;
17809     VkBool32           rasterizationOrderColorAttachmentAccess;
17810     VkBool32           rasterizationOrderDepthAttachmentAccess;
17811     VkBool32           rasterizationOrderStencilAttachmentAccess;
17812 } VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
17813 
17814 typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
17815 
17816 
17817 
17818 // VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
17819 #define VK_EXT_rgba10x6_formats 1
17820 #define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
17821 #define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
17822 typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
17823     VkStructureType    sType;
17824     void*              pNext;
17825     VkBool32           formatRgba10x6WithoutYCbCrSampler;
17826 } VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
17827 
17828 
17829 
17830 // VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
17831 #define VK_VALVE_mutable_descriptor_type 1
17832 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
17833 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
17834 typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
17835     VkStructureType    sType;
17836     void*              pNext;
17837     VkBool32           mutableDescriptorType;
17838 } VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
17839 
17840 typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
17841 
17842 typedef struct VkMutableDescriptorTypeListEXT {
17843     uint32_t                   descriptorTypeCount;
17844     const VkDescriptorType*    pDescriptorTypes;
17845 } VkMutableDescriptorTypeListEXT;
17846 
17847 typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
17848 
17849 typedef struct VkMutableDescriptorTypeCreateInfoEXT {
17850     VkStructureType                          sType;
17851     const void*                              pNext;
17852     uint32_t                                 mutableDescriptorTypeListCount;
17853     const VkMutableDescriptorTypeListEXT*    pMutableDescriptorTypeLists;
17854 } VkMutableDescriptorTypeCreateInfoEXT;
17855 
17856 typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
17857 
17858 
17859 
17860 // VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
17861 #define VK_EXT_vertex_input_dynamic_state 1
17862 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
17863 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
17864 typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
17865     VkStructureType    sType;
17866     void*              pNext;
17867     VkBool32           vertexInputDynamicState;
17868 } VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
17869 
17870 typedef struct VkVertexInputBindingDescription2EXT {
17871     VkStructureType      sType;
17872     void*                pNext;
17873     uint32_t             binding;
17874     uint32_t             stride;
17875     VkVertexInputRate    inputRate;
17876     uint32_t             divisor;
17877 } VkVertexInputBindingDescription2EXT;
17878 
17879 typedef struct VkVertexInputAttributeDescription2EXT {
17880     VkStructureType    sType;
17881     void*              pNext;
17882     uint32_t           location;
17883     uint32_t           binding;
17884     VkFormat           format;
17885     uint32_t           offset;
17886 } VkVertexInputAttributeDescription2EXT;
17887 
17888 typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
17889 
17890 #ifndef VK_NO_PROTOTYPES
17891 VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
17892     VkCommandBuffer                             commandBuffer,
17893     uint32_t                                    vertexBindingDescriptionCount,
17894     const VkVertexInputBindingDescription2EXT*  pVertexBindingDescriptions,
17895     uint32_t                                    vertexAttributeDescriptionCount,
17896     const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
17897 #endif
17898 
17899 
17900 // VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
17901 #define VK_EXT_physical_device_drm 1
17902 #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
17903 #define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
17904 typedef struct VkPhysicalDeviceDrmPropertiesEXT {
17905     VkStructureType    sType;
17906     void*              pNext;
17907     VkBool32           hasPrimary;
17908     VkBool32           hasRender;
17909     int64_t            primaryMajor;
17910     int64_t            primaryMinor;
17911     int64_t            renderMajor;
17912     int64_t            renderMinor;
17913 } VkPhysicalDeviceDrmPropertiesEXT;
17914 
17915 
17916 
17917 // VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
17918 #define VK_EXT_device_address_binding_report 1
17919 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
17920 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
17921 
17922 typedef enum VkDeviceAddressBindingTypeEXT {
17923     VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
17924     VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
17925     VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
17926 } VkDeviceAddressBindingTypeEXT;
17927 
17928 typedef enum VkDeviceAddressBindingFlagBitsEXT {
17929     VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
17930     VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17931 } VkDeviceAddressBindingFlagBitsEXT;
17932 typedef VkFlags VkDeviceAddressBindingFlagsEXT;
17933 typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
17934     VkStructureType    sType;
17935     void*              pNext;
17936     VkBool32           reportAddressBinding;
17937 } VkPhysicalDeviceAddressBindingReportFeaturesEXT;
17938 
17939 typedef struct VkDeviceAddressBindingCallbackDataEXT {
17940     VkStructureType                   sType;
17941     void*                             pNext;
17942     VkDeviceAddressBindingFlagsEXT    flags;
17943     VkDeviceAddress                   baseAddress;
17944     VkDeviceSize                      size;
17945     VkDeviceAddressBindingTypeEXT     bindingType;
17946 } VkDeviceAddressBindingCallbackDataEXT;
17947 
17948 
17949 
17950 // VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
17951 #define VK_EXT_depth_clip_control 1
17952 #define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
17953 #define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
17954 typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
17955     VkStructureType    sType;
17956     void*              pNext;
17957     VkBool32           depthClipControl;
17958 } VkPhysicalDeviceDepthClipControlFeaturesEXT;
17959 
17960 typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
17961     VkStructureType    sType;
17962     const void*        pNext;
17963     VkBool32           negativeOneToOne;
17964 } VkPipelineViewportDepthClipControlCreateInfoEXT;
17965 
17966 
17967 
17968 // VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
17969 #define VK_EXT_primitive_topology_list_restart 1
17970 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
17971 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
17972 typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
17973     VkStructureType    sType;
17974     void*              pNext;
17975     VkBool32           primitiveTopologyListRestart;
17976     VkBool32           primitiveTopologyPatchListRestart;
17977 } VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
17978 
17979 
17980 
17981 // VK_EXT_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
17982 #define VK_EXT_present_mode_fifo_latest_ready 1
17983 #define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
17984 #define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_EXT_present_mode_fifo_latest_ready"
17985 typedef struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT {
17986     VkStructureType    sType;
17987     void*              pNext;
17988     VkBool32           presentModeFifoLatestReady;
17989 } VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT;
17990 
17991 
17992 
17993 // VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
17994 #define VK_HUAWEI_subpass_shading 1
17995 #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
17996 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
17997 typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
17998     VkStructureType    sType;
17999     void*              pNext;
18000     VkRenderPass       renderPass;
18001     uint32_t           subpass;
18002 } VkSubpassShadingPipelineCreateInfoHUAWEI;
18003 
18004 typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
18005     VkStructureType    sType;
18006     void*              pNext;
18007     VkBool32           subpassShading;
18008 } VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
18009 
18010 typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
18011     VkStructureType    sType;
18012     void*              pNext;
18013     uint32_t           maxSubpassShadingWorkgroupSizeAspectRatio;
18014 } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
18015 
18016 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
18017 typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
18018 
18019 #ifndef VK_NO_PROTOTYPES
18020 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
18021     VkDevice                                    device,
18022     VkRenderPass                                renderpass,
18023     VkExtent2D*                                 pMaxWorkgroupSize);
18024 
18025 VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
18026     VkCommandBuffer                             commandBuffer);
18027 #endif
18028 
18029 
18030 // VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
18031 #define VK_HUAWEI_invocation_mask 1
18032 #define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
18033 #define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
18034 typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
18035     VkStructureType    sType;
18036     void*              pNext;
18037     VkBool32           invocationMask;
18038 } VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
18039 
18040 typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
18041 
18042 #ifndef VK_NO_PROTOTYPES
18043 VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
18044     VkCommandBuffer                             commandBuffer,
18045     VkImageView                                 imageView,
18046     VkImageLayout                               imageLayout);
18047 #endif
18048 
18049 
18050 // VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
18051 #define VK_NV_external_memory_rdma 1
18052 typedef void* VkRemoteAddressNV;
18053 #define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
18054 #define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
18055 typedef struct VkMemoryGetRemoteAddressInfoNV {
18056     VkStructureType                       sType;
18057     const void*                           pNext;
18058     VkDeviceMemory                        memory;
18059     VkExternalMemoryHandleTypeFlagBits    handleType;
18060 } VkMemoryGetRemoteAddressInfoNV;
18061 
18062 typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
18063     VkStructureType    sType;
18064     void*              pNext;
18065     VkBool32           externalMemoryRDMA;
18066 } VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
18067 
18068 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
18069 
18070 #ifndef VK_NO_PROTOTYPES
18071 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
18072     VkDevice                                    device,
18073     const VkMemoryGetRemoteAddressInfoNV*       pMemoryGetRemoteAddressInfo,
18074     VkRemoteAddressNV*                          pAddress);
18075 #endif
18076 
18077 
18078 // VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
18079 #define VK_EXT_pipeline_properties 1
18080 #define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
18081 #define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
18082 typedef VkPipelineInfoKHR VkPipelineInfoEXT;
18083 
18084 typedef struct VkPipelinePropertiesIdentifierEXT {
18085     VkStructureType    sType;
18086     void*              pNext;
18087     uint8_t            pipelineIdentifier[VK_UUID_SIZE];
18088 } VkPipelinePropertiesIdentifierEXT;
18089 
18090 typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
18091     VkStructureType    sType;
18092     void*              pNext;
18093     VkBool32           pipelinePropertiesIdentifier;
18094 } VkPhysicalDevicePipelinePropertiesFeaturesEXT;
18095 
18096 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
18097 
18098 #ifndef VK_NO_PROTOTYPES
18099 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
18100     VkDevice                                    device,
18101     const VkPipelineInfoEXT*                    pPipelineInfo,
18102     VkBaseOutStructure*                         pPipelineProperties);
18103 #endif
18104 
18105 
18106 // VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
18107 #define VK_EXT_frame_boundary 1
18108 #define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
18109 #define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
18110 
18111 typedef enum VkFrameBoundaryFlagBitsEXT {
18112     VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
18113     VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18114 } VkFrameBoundaryFlagBitsEXT;
18115 typedef VkFlags VkFrameBoundaryFlagsEXT;
18116 typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
18117     VkStructureType    sType;
18118     void*              pNext;
18119     VkBool32           frameBoundary;
18120 } VkPhysicalDeviceFrameBoundaryFeaturesEXT;
18121 
18122 typedef struct VkFrameBoundaryEXT {
18123     VkStructureType            sType;
18124     const void*                pNext;
18125     VkFrameBoundaryFlagsEXT    flags;
18126     uint64_t                   frameID;
18127     uint32_t                   imageCount;
18128     const VkImage*             pImages;
18129     uint32_t                   bufferCount;
18130     const VkBuffer*            pBuffers;
18131     uint64_t                   tagName;
18132     size_t                     tagSize;
18133     const void*                pTag;
18134 } VkFrameBoundaryEXT;
18135 
18136 
18137 
18138 // VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
18139 #define VK_EXT_multisampled_render_to_single_sampled 1
18140 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
18141 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
18142 typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
18143     VkStructureType    sType;
18144     void*              pNext;
18145     VkBool32           multisampledRenderToSingleSampled;
18146 } VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
18147 
18148 typedef struct VkSubpassResolvePerformanceQueryEXT {
18149     VkStructureType    sType;
18150     void*              pNext;
18151     VkBool32           optimal;
18152 } VkSubpassResolvePerformanceQueryEXT;
18153 
18154 typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
18155     VkStructureType          sType;
18156     const void*              pNext;
18157     VkBool32                 multisampledRenderToSingleSampledEnable;
18158     VkSampleCountFlagBits    rasterizationSamples;
18159 } VkMultisampledRenderToSingleSampledInfoEXT;
18160 
18161 
18162 
18163 // VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
18164 #define VK_EXT_extended_dynamic_state2 1
18165 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
18166 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
18167 typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
18168     VkStructureType    sType;
18169     void*              pNext;
18170     VkBool32           extendedDynamicState2;
18171     VkBool32           extendedDynamicState2LogicOp;
18172     VkBool32           extendedDynamicState2PatchControlPoints;
18173 } VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
18174 
18175 typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
18176 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
18177 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
18178 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
18179 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
18180 
18181 #ifndef VK_NO_PROTOTYPES
18182 VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
18183     VkCommandBuffer                             commandBuffer,
18184     uint32_t                                    patchControlPoints);
18185 
18186 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
18187     VkCommandBuffer                             commandBuffer,
18188     VkBool32                                    rasterizerDiscardEnable);
18189 
18190 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
18191     VkCommandBuffer                             commandBuffer,
18192     VkBool32                                    depthBiasEnable);
18193 
18194 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
18195     VkCommandBuffer                             commandBuffer,
18196     VkLogicOp                                   logicOp);
18197 
18198 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
18199     VkCommandBuffer                             commandBuffer,
18200     VkBool32                                    primitiveRestartEnable);
18201 #endif
18202 
18203 
18204 // VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
18205 #define VK_EXT_color_write_enable 1
18206 #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
18207 #define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
18208 typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
18209     VkStructureType    sType;
18210     void*              pNext;
18211     VkBool32           colorWriteEnable;
18212 } VkPhysicalDeviceColorWriteEnableFeaturesEXT;
18213 
18214 typedef struct VkPipelineColorWriteCreateInfoEXT {
18215     VkStructureType    sType;
18216     const void*        pNext;
18217     uint32_t           attachmentCount;
18218     const VkBool32*    pColorWriteEnables;
18219 } VkPipelineColorWriteCreateInfoEXT;
18220 
18221 typedef void                                    (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer       commandBuffer, uint32_t                                attachmentCount, const VkBool32*   pColorWriteEnables);
18222 
18223 #ifndef VK_NO_PROTOTYPES
18224 VKAPI_ATTR void                                    VKAPI_CALL vkCmdSetColorWriteEnableEXT(
18225     VkCommandBuffer                             commandBuffer,
18226     uint32_t                                    attachmentCount,
18227     const VkBool32*                             pColorWriteEnables);
18228 #endif
18229 
18230 
18231 // VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
18232 #define VK_EXT_primitives_generated_query 1
18233 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
18234 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
18235 typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
18236     VkStructureType    sType;
18237     void*              pNext;
18238     VkBool32           primitivesGeneratedQuery;
18239     VkBool32           primitivesGeneratedQueryWithRasterizerDiscard;
18240     VkBool32           primitivesGeneratedQueryWithNonZeroStreams;
18241 } VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
18242 
18243 
18244 
18245 // VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
18246 #define VK_EXT_global_priority_query 1
18247 #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
18248 #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
18249 #define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT   VK_MAX_GLOBAL_PRIORITY_SIZE
18250 typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
18251 
18252 typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesEXT;
18253 
18254 
18255 
18256 // VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
18257 #define VK_EXT_image_view_min_lod 1
18258 #define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
18259 #define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
18260 typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
18261     VkStructureType    sType;
18262     void*              pNext;
18263     VkBool32           minLod;
18264 } VkPhysicalDeviceImageViewMinLodFeaturesEXT;
18265 
18266 typedef struct VkImageViewMinLodCreateInfoEXT {
18267     VkStructureType    sType;
18268     const void*        pNext;
18269     float              minLod;
18270 } VkImageViewMinLodCreateInfoEXT;
18271 
18272 
18273 
18274 // VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
18275 #define VK_EXT_multi_draw 1
18276 #define VK_EXT_MULTI_DRAW_SPEC_VERSION    1
18277 #define VK_EXT_MULTI_DRAW_EXTENSION_NAME  "VK_EXT_multi_draw"
18278 typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
18279     VkStructureType    sType;
18280     void*              pNext;
18281     VkBool32           multiDraw;
18282 } VkPhysicalDeviceMultiDrawFeaturesEXT;
18283 
18284 typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
18285     VkStructureType    sType;
18286     void*              pNext;
18287     uint32_t           maxMultiDrawCount;
18288 } VkPhysicalDeviceMultiDrawPropertiesEXT;
18289 
18290 typedef struct VkMultiDrawInfoEXT {
18291     uint32_t    firstVertex;
18292     uint32_t    vertexCount;
18293 } VkMultiDrawInfoEXT;
18294 
18295 typedef struct VkMultiDrawIndexedInfoEXT {
18296     uint32_t    firstIndex;
18297     uint32_t    indexCount;
18298     int32_t     vertexOffset;
18299 } VkMultiDrawIndexedInfoEXT;
18300 
18301 typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
18302 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);
18303 
18304 #ifndef VK_NO_PROTOTYPES
18305 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
18306     VkCommandBuffer                             commandBuffer,
18307     uint32_t                                    drawCount,
18308     const VkMultiDrawInfoEXT*                   pVertexInfo,
18309     uint32_t                                    instanceCount,
18310     uint32_t                                    firstInstance,
18311     uint32_t                                    stride);
18312 
18313 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
18314     VkCommandBuffer                             commandBuffer,
18315     uint32_t                                    drawCount,
18316     const VkMultiDrawIndexedInfoEXT*            pIndexInfo,
18317     uint32_t                                    instanceCount,
18318     uint32_t                                    firstInstance,
18319     uint32_t                                    stride,
18320     const int32_t*                              pVertexOffset);
18321 #endif
18322 
18323 
18324 // VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
18325 #define VK_EXT_image_2d_view_of_3d 1
18326 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
18327 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
18328 typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
18329     VkStructureType    sType;
18330     void*              pNext;
18331     VkBool32           image2DViewOf3D;
18332     VkBool32           sampler2DViewOf3D;
18333 } VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
18334 
18335 
18336 
18337 // VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
18338 #define VK_EXT_shader_tile_image 1
18339 #define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
18340 #define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
18341 typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
18342     VkStructureType    sType;
18343     void*              pNext;
18344     VkBool32           shaderTileImageColorReadAccess;
18345     VkBool32           shaderTileImageDepthReadAccess;
18346     VkBool32           shaderTileImageStencilReadAccess;
18347 } VkPhysicalDeviceShaderTileImageFeaturesEXT;
18348 
18349 typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
18350     VkStructureType    sType;
18351     void*              pNext;
18352     VkBool32           shaderTileImageCoherentReadAccelerated;
18353     VkBool32           shaderTileImageReadSampleFromPixelRateInvocation;
18354     VkBool32           shaderTileImageReadFromHelperInvocation;
18355 } VkPhysicalDeviceShaderTileImagePropertiesEXT;
18356 
18357 
18358 
18359 // VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
18360 #define VK_EXT_opacity_micromap 1
18361 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
18362 #define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
18363 #define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
18364 
18365 typedef enum VkMicromapTypeEXT {
18366     VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
18367 #ifdef VK_ENABLE_BETA_EXTENSIONS
18368     VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
18369 #endif
18370     VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
18371 } VkMicromapTypeEXT;
18372 
18373 typedef enum VkBuildMicromapModeEXT {
18374     VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
18375     VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
18376 } VkBuildMicromapModeEXT;
18377 
18378 typedef enum VkCopyMicromapModeEXT {
18379     VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
18380     VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
18381     VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
18382     VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
18383     VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
18384 } VkCopyMicromapModeEXT;
18385 
18386 typedef enum VkOpacityMicromapFormatEXT {
18387     VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
18388     VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
18389     VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
18390 } VkOpacityMicromapFormatEXT;
18391 
18392 typedef enum VkOpacityMicromapSpecialIndexEXT {
18393     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
18394     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
18395     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
18396     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
18397     VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV = -5,
18398     VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
18399 } VkOpacityMicromapSpecialIndexEXT;
18400 
18401 typedef enum VkAccelerationStructureCompatibilityKHR {
18402     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
18403     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
18404     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
18405 } VkAccelerationStructureCompatibilityKHR;
18406 
18407 typedef enum VkAccelerationStructureBuildTypeKHR {
18408     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
18409     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
18410     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
18411     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
18412 } VkAccelerationStructureBuildTypeKHR;
18413 
18414 typedef enum VkBuildMicromapFlagBitsEXT {
18415     VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
18416     VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
18417     VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
18418     VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18419 } VkBuildMicromapFlagBitsEXT;
18420 typedef VkFlags VkBuildMicromapFlagsEXT;
18421 
18422 typedef enum VkMicromapCreateFlagBitsEXT {
18423     VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
18424     VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18425 } VkMicromapCreateFlagBitsEXT;
18426 typedef VkFlags VkMicromapCreateFlagsEXT;
18427 typedef struct VkMicromapUsageEXT {
18428     uint32_t    count;
18429     uint32_t    subdivisionLevel;
18430     uint32_t    format;
18431 } VkMicromapUsageEXT;
18432 
18433 typedef union VkDeviceOrHostAddressKHR {
18434     VkDeviceAddress    deviceAddress;
18435     void*              hostAddress;
18436 } VkDeviceOrHostAddressKHR;
18437 
18438 typedef struct VkMicromapBuildInfoEXT {
18439     VkStructureType                     sType;
18440     const void*                         pNext;
18441     VkMicromapTypeEXT                   type;
18442     VkBuildMicromapFlagsEXT             flags;
18443     VkBuildMicromapModeEXT              mode;
18444     VkMicromapEXT                       dstMicromap;
18445     uint32_t                            usageCountsCount;
18446     const VkMicromapUsageEXT*           pUsageCounts;
18447     const VkMicromapUsageEXT* const*    ppUsageCounts;
18448     VkDeviceOrHostAddressConstKHR       data;
18449     VkDeviceOrHostAddressKHR            scratchData;
18450     VkDeviceOrHostAddressConstKHR       triangleArray;
18451     VkDeviceSize                        triangleArrayStride;
18452 } VkMicromapBuildInfoEXT;
18453 
18454 typedef struct VkMicromapCreateInfoEXT {
18455     VkStructureType             sType;
18456     const void*                 pNext;
18457     VkMicromapCreateFlagsEXT    createFlags;
18458     VkBuffer                    buffer;
18459     VkDeviceSize                offset;
18460     VkDeviceSize                size;
18461     VkMicromapTypeEXT           type;
18462     VkDeviceAddress             deviceAddress;
18463 } VkMicromapCreateInfoEXT;
18464 
18465 typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
18466     VkStructureType    sType;
18467     void*              pNext;
18468     VkBool32           micromap;
18469     VkBool32           micromapCaptureReplay;
18470     VkBool32           micromapHostCommands;
18471 } VkPhysicalDeviceOpacityMicromapFeaturesEXT;
18472 
18473 typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
18474     VkStructureType    sType;
18475     void*              pNext;
18476     uint32_t           maxOpacity2StateSubdivisionLevel;
18477     uint32_t           maxOpacity4StateSubdivisionLevel;
18478 } VkPhysicalDeviceOpacityMicromapPropertiesEXT;
18479 
18480 typedef struct VkMicromapVersionInfoEXT {
18481     VkStructureType    sType;
18482     const void*        pNext;
18483     const uint8_t*     pVersionData;
18484 } VkMicromapVersionInfoEXT;
18485 
18486 typedef struct VkCopyMicromapToMemoryInfoEXT {
18487     VkStructureType             sType;
18488     const void*                 pNext;
18489     VkMicromapEXT               src;
18490     VkDeviceOrHostAddressKHR    dst;
18491     VkCopyMicromapModeEXT       mode;
18492 } VkCopyMicromapToMemoryInfoEXT;
18493 
18494 typedef struct VkCopyMemoryToMicromapInfoEXT {
18495     VkStructureType                  sType;
18496     const void*                      pNext;
18497     VkDeviceOrHostAddressConstKHR    src;
18498     VkMicromapEXT                    dst;
18499     VkCopyMicromapModeEXT            mode;
18500 } VkCopyMemoryToMicromapInfoEXT;
18501 
18502 typedef struct VkCopyMicromapInfoEXT {
18503     VkStructureType          sType;
18504     const void*              pNext;
18505     VkMicromapEXT            src;
18506     VkMicromapEXT            dst;
18507     VkCopyMicromapModeEXT    mode;
18508 } VkCopyMicromapInfoEXT;
18509 
18510 typedef struct VkMicromapBuildSizesInfoEXT {
18511     VkStructureType    sType;
18512     const void*        pNext;
18513     VkDeviceSize       micromapSize;
18514     VkDeviceSize       buildScratchSize;
18515     VkBool32           discardable;
18516 } VkMicromapBuildSizesInfoEXT;
18517 
18518 typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
18519     VkStructureType                     sType;
18520     void*                               pNext;
18521     VkIndexType                         indexType;
18522     VkDeviceOrHostAddressConstKHR       indexBuffer;
18523     VkDeviceSize                        indexStride;
18524     uint32_t                            baseTriangle;
18525     uint32_t                            usageCountsCount;
18526     const VkMicromapUsageEXT*           pUsageCounts;
18527     const VkMicromapUsageEXT* const*    ppUsageCounts;
18528     VkMicromapEXT                       micromap;
18529 } VkAccelerationStructureTrianglesOpacityMicromapEXT;
18530 
18531 typedef struct VkMicromapTriangleEXT {
18532     uint32_t    dataOffset;
18533     uint16_t    subdivisionLevel;
18534     uint16_t    format;
18535 } VkMicromapTriangleEXT;
18536 
18537 typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice                                           device, const VkMicromapCreateInfoEXT*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkMicromapEXT*                        pMicromap);
18538 typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
18539 typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
18540 typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
18541 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
18542 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
18543 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
18544 typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
18545 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
18546 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
18547 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
18548 typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
18549 typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
18550 typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkMicromapBuildInfoEXT*  pBuildInfo, VkMicromapBuildSizesInfoEXT*           pSizeInfo);
18551 
18552 #ifndef VK_NO_PROTOTYPES
18553 VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
18554     VkDevice                                    device,
18555     const VkMicromapCreateInfoEXT*              pCreateInfo,
18556     const VkAllocationCallbacks*                pAllocator,
18557     VkMicromapEXT*                              pMicromap);
18558 
18559 VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
18560     VkDevice                                    device,
18561     VkMicromapEXT                               micromap,
18562     const VkAllocationCallbacks*                pAllocator);
18563 
18564 VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
18565     VkCommandBuffer                             commandBuffer,
18566     uint32_t                                    infoCount,
18567     const VkMicromapBuildInfoEXT*               pInfos);
18568 
18569 VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
18570     VkDevice                                    device,
18571     VkDeferredOperationKHR                      deferredOperation,
18572     uint32_t                                    infoCount,
18573     const VkMicromapBuildInfoEXT*               pInfos);
18574 
18575 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
18576     VkDevice                                    device,
18577     VkDeferredOperationKHR                      deferredOperation,
18578     const VkCopyMicromapInfoEXT*                pInfo);
18579 
18580 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
18581     VkDevice                                    device,
18582     VkDeferredOperationKHR                      deferredOperation,
18583     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
18584 
18585 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
18586     VkDevice                                    device,
18587     VkDeferredOperationKHR                      deferredOperation,
18588     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
18589 
18590 VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
18591     VkDevice                                    device,
18592     uint32_t                                    micromapCount,
18593     const VkMicromapEXT*                        pMicromaps,
18594     VkQueryType                                 queryType,
18595     size_t                                      dataSize,
18596     void*                                       pData,
18597     size_t                                      stride);
18598 
18599 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
18600     VkCommandBuffer                             commandBuffer,
18601     const VkCopyMicromapInfoEXT*                pInfo);
18602 
18603 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
18604     VkCommandBuffer                             commandBuffer,
18605     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
18606 
18607 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
18608     VkCommandBuffer                             commandBuffer,
18609     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
18610 
18611 VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
18612     VkCommandBuffer                             commandBuffer,
18613     uint32_t                                    micromapCount,
18614     const VkMicromapEXT*                        pMicromaps,
18615     VkQueryType                                 queryType,
18616     VkQueryPool                                 queryPool,
18617     uint32_t                                    firstQuery);
18618 
18619 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
18620     VkDevice                                    device,
18621     const VkMicromapVersionInfoEXT*             pVersionInfo,
18622     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
18623 
18624 VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
18625     VkDevice                                    device,
18626     VkAccelerationStructureBuildTypeKHR         buildType,
18627     const VkMicromapBuildInfoEXT*               pBuildInfo,
18628     VkMicromapBuildSizesInfoEXT*                pSizeInfo);
18629 #endif
18630 
18631 
18632 // VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
18633 #define VK_EXT_load_store_op_none 1
18634 #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
18635 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
18636 
18637 
18638 // VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
18639 #define VK_HUAWEI_cluster_culling_shader 1
18640 #define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
18641 #define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
18642 typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
18643     VkStructureType    sType;
18644     void*              pNext;
18645     VkBool32           clustercullingShader;
18646     VkBool32           multiviewClusterCullingShader;
18647 } VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
18648 
18649 typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
18650     VkStructureType    sType;
18651     void*              pNext;
18652     uint32_t           maxWorkGroupCount[3];
18653     uint32_t           maxWorkGroupSize[3];
18654     uint32_t           maxOutputClusterCount;
18655     VkDeviceSize       indirectBufferOffsetAlignment;
18656 } VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
18657 
18658 typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
18659     VkStructureType    sType;
18660     void*              pNext;
18661     VkBool32           clusterShadingRate;
18662 } VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
18663 
18664 typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
18665 typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
18666 
18667 #ifndef VK_NO_PROTOTYPES
18668 VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
18669     VkCommandBuffer                             commandBuffer,
18670     uint32_t                                    groupCountX,
18671     uint32_t                                    groupCountY,
18672     uint32_t                                    groupCountZ);
18673 
18674 VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
18675     VkCommandBuffer                             commandBuffer,
18676     VkBuffer                                    buffer,
18677     VkDeviceSize                                offset);
18678 #endif
18679 
18680 
18681 // VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
18682 #define VK_EXT_border_color_swizzle 1
18683 #define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
18684 #define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
18685 typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
18686     VkStructureType    sType;
18687     void*              pNext;
18688     VkBool32           borderColorSwizzle;
18689     VkBool32           borderColorSwizzleFromImage;
18690 } VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
18691 
18692 typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
18693     VkStructureType       sType;
18694     const void*           pNext;
18695     VkComponentMapping    components;
18696     VkBool32              srgb;
18697 } VkSamplerBorderColorComponentMappingCreateInfoEXT;
18698 
18699 
18700 
18701 // VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
18702 #define VK_EXT_pageable_device_local_memory 1
18703 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
18704 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
18705 typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
18706     VkStructureType    sType;
18707     void*              pNext;
18708     VkBool32           pageableDeviceLocalMemory;
18709 } VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
18710 
18711 typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice       device, VkDeviceMemory memory, float          priority);
18712 
18713 #ifndef VK_NO_PROTOTYPES
18714 VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
18715     VkDevice                                    device,
18716     VkDeviceMemory                              memory,
18717     float                                       priority);
18718 #endif
18719 
18720 
18721 // VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
18722 #define VK_ARM_shader_core_properties 1
18723 #define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
18724 #define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
18725 typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
18726     VkStructureType    sType;
18727     void*              pNext;
18728     uint32_t           pixelRate;
18729     uint32_t           texelRate;
18730     uint32_t           fmaRate;
18731 } VkPhysicalDeviceShaderCorePropertiesARM;
18732 
18733 
18734 
18735 // VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
18736 #define VK_ARM_scheduling_controls 1
18737 #define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1
18738 #define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
18739 typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
18740 
18741 // Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
18742 typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
18743 static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
18744 
18745 typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
18746     VkStructureType    sType;
18747     void*              pNext;
18748     uint32_t           shaderCoreCount;
18749 } VkDeviceQueueShaderCoreControlCreateInfoARM;
18750 
18751 typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
18752     VkStructureType    sType;
18753     void*              pNext;
18754     VkBool32           schedulingControls;
18755 } VkPhysicalDeviceSchedulingControlsFeaturesARM;
18756 
18757 typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
18758     VkStructureType                               sType;
18759     void*                                         pNext;
18760     VkPhysicalDeviceSchedulingControlsFlagsARM    schedulingControlsFlags;
18761 } VkPhysicalDeviceSchedulingControlsPropertiesARM;
18762 
18763 
18764 
18765 // VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
18766 #define VK_EXT_image_sliced_view_of_3d 1
18767 #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
18768 #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
18769 #define VK_REMAINING_3D_SLICES_EXT        (~0U)
18770 typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
18771     VkStructureType    sType;
18772     void*              pNext;
18773     VkBool32           imageSlicedViewOf3D;
18774 } VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
18775 
18776 typedef struct VkImageViewSlicedCreateInfoEXT {
18777     VkStructureType    sType;
18778     const void*        pNext;
18779     uint32_t           sliceOffset;
18780     uint32_t           sliceCount;
18781 } VkImageViewSlicedCreateInfoEXT;
18782 
18783 
18784 
18785 // VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
18786 #define VK_VALVE_descriptor_set_host_mapping 1
18787 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
18788 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
18789 typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
18790     VkStructureType    sType;
18791     void*              pNext;
18792     VkBool32           descriptorSetHostMapping;
18793 } VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
18794 
18795 typedef struct VkDescriptorSetBindingReferenceVALVE {
18796     VkStructureType          sType;
18797     const void*              pNext;
18798     VkDescriptorSetLayout    descriptorSetLayout;
18799     uint32_t                 binding;
18800 } VkDescriptorSetBindingReferenceVALVE;
18801 
18802 typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
18803     VkStructureType    sType;
18804     void*              pNext;
18805     size_t             descriptorOffset;
18806     uint32_t           descriptorSize;
18807 } VkDescriptorSetLayoutHostMappingInfoVALVE;
18808 
18809 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
18810 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
18811 
18812 #ifndef VK_NO_PROTOTYPES
18813 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
18814     VkDevice                                    device,
18815     const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
18816     VkDescriptorSetLayoutHostMappingInfoVALVE*  pHostMapping);
18817 
18818 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
18819     VkDevice                                    device,
18820     VkDescriptorSet                             descriptorSet,
18821     void**                                      ppData);
18822 #endif
18823 
18824 
18825 // VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
18826 #define VK_EXT_depth_clamp_zero_one 1
18827 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
18828 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
18829 typedef VkPhysicalDeviceDepthClampZeroOneFeaturesKHR VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
18830 
18831 
18832 
18833 // VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
18834 #define VK_EXT_non_seamless_cube_map 1
18835 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
18836 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
18837 typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
18838     VkStructureType    sType;
18839     void*              pNext;
18840     VkBool32           nonSeamlessCubeMap;
18841 } VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
18842 
18843 
18844 
18845 // VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
18846 #define VK_ARM_render_pass_striped 1
18847 #define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
18848 #define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
18849 typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
18850     VkStructureType    sType;
18851     void*              pNext;
18852     VkBool32           renderPassStriped;
18853 } VkPhysicalDeviceRenderPassStripedFeaturesARM;
18854 
18855 typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
18856     VkStructureType    sType;
18857     void*              pNext;
18858     VkExtent2D         renderPassStripeGranularity;
18859     uint32_t           maxRenderPassStripes;
18860 } VkPhysicalDeviceRenderPassStripedPropertiesARM;
18861 
18862 typedef struct VkRenderPassStripeInfoARM {
18863     VkStructureType    sType;
18864     const void*        pNext;
18865     VkRect2D           stripeArea;
18866 } VkRenderPassStripeInfoARM;
18867 
18868 typedef struct VkRenderPassStripeBeginInfoARM {
18869     VkStructureType                     sType;
18870     const void*                         pNext;
18871     uint32_t                            stripeInfoCount;
18872     const VkRenderPassStripeInfoARM*    pStripeInfos;
18873 } VkRenderPassStripeBeginInfoARM;
18874 
18875 typedef struct VkRenderPassStripeSubmitInfoARM {
18876     VkStructureType                 sType;
18877     const void*                     pNext;
18878     uint32_t                        stripeSemaphoreInfoCount;
18879     const VkSemaphoreSubmitInfo*    pStripeSemaphoreInfos;
18880 } VkRenderPassStripeSubmitInfoARM;
18881 
18882 
18883 
18884 // VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
18885 #define VK_QCOM_fragment_density_map_offset 1
18886 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 2
18887 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
18888 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
18889     VkStructureType    sType;
18890     void*              pNext;
18891     VkBool32           fragmentDensityMapOffset;
18892 } VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
18893 
18894 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
18895     VkStructureType    sType;
18896     void*              pNext;
18897     VkExtent2D         fragmentDensityOffsetGranularity;
18898 } VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
18899 
18900 typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM {
18901     VkStructureType      sType;
18902     const void*          pNext;
18903     uint32_t             fragmentDensityOffsetCount;
18904     const VkOffset2D*    pFragmentDensityOffsets;
18905 } VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
18906 
18907 
18908 
18909 // VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
18910 #define VK_NV_copy_memory_indirect 1
18911 #define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
18912 #define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
18913 typedef struct VkCopyMemoryIndirectCommandNV {
18914     VkDeviceAddress    srcAddress;
18915     VkDeviceAddress    dstAddress;
18916     VkDeviceSize       size;
18917 } VkCopyMemoryIndirectCommandNV;
18918 
18919 typedef struct VkCopyMemoryToImageIndirectCommandNV {
18920     VkDeviceAddress             srcAddress;
18921     uint32_t                    bufferRowLength;
18922     uint32_t                    bufferImageHeight;
18923     VkImageSubresourceLayers    imageSubresource;
18924     VkOffset3D                  imageOffset;
18925     VkExtent3D                  imageExtent;
18926 } VkCopyMemoryToImageIndirectCommandNV;
18927 
18928 typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
18929     VkStructureType    sType;
18930     void*              pNext;
18931     VkBool32           indirectCopy;
18932 } VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
18933 
18934 typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV {
18935     VkStructureType    sType;
18936     void*              pNext;
18937     VkQueueFlags       supportedQueues;
18938 } VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
18939 
18940 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
18941 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
18942 
18943 #ifndef VK_NO_PROTOTYPES
18944 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
18945     VkCommandBuffer                             commandBuffer,
18946     VkDeviceAddress                             copyBufferAddress,
18947     uint32_t                                    copyCount,
18948     uint32_t                                    stride);
18949 
18950 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
18951     VkCommandBuffer                             commandBuffer,
18952     VkDeviceAddress                             copyBufferAddress,
18953     uint32_t                                    copyCount,
18954     uint32_t                                    stride,
18955     VkImage                                     dstImage,
18956     VkImageLayout                               dstImageLayout,
18957     const VkImageSubresourceLayers*             pImageSubresources);
18958 #endif
18959 
18960 
18961 // VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
18962 #define VK_NV_memory_decompression 1
18963 #define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
18964 #define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
18965 
18966 // Flag bits for VkMemoryDecompressionMethodFlagBitsNV
18967 typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsNV;
18968 static const VkMemoryDecompressionMethodFlagBitsNV VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
18969 
18970 typedef VkFlags64 VkMemoryDecompressionMethodFlagsNV;
18971 typedef struct VkDecompressMemoryRegionNV {
18972     VkDeviceAddress                       srcAddress;
18973     VkDeviceAddress                       dstAddress;
18974     VkDeviceSize                          compressedSize;
18975     VkDeviceSize                          decompressedSize;
18976     VkMemoryDecompressionMethodFlagsNV    decompressionMethod;
18977 } VkDecompressMemoryRegionNV;
18978 
18979 typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV {
18980     VkStructureType    sType;
18981     void*              pNext;
18982     VkBool32           memoryDecompression;
18983 } VkPhysicalDeviceMemoryDecompressionFeaturesNV;
18984 
18985 typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV {
18986     VkStructureType                       sType;
18987     void*                                 pNext;
18988     VkMemoryDecompressionMethodFlagsNV    decompressionMethods;
18989     uint64_t                              maxDecompressionIndirectCount;
18990 } VkPhysicalDeviceMemoryDecompressionPropertiesNV;
18991 
18992 typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
18993 typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
18994 
18995 #ifndef VK_NO_PROTOTYPES
18996 VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
18997     VkCommandBuffer                             commandBuffer,
18998     uint32_t                                    decompressRegionCount,
18999     const VkDecompressMemoryRegionNV*           pDecompressMemoryRegions);
19000 
19001 VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
19002     VkCommandBuffer                             commandBuffer,
19003     VkDeviceAddress                             indirectCommandsAddress,
19004     VkDeviceAddress                             indirectCommandsCountAddress,
19005     uint32_t                                    stride);
19006 #endif
19007 
19008 
19009 // VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
19010 #define VK_NV_device_generated_commands_compute 1
19011 #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
19012 #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
19013 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
19014     VkStructureType    sType;
19015     void*              pNext;
19016     VkBool32           deviceGeneratedCompute;
19017     VkBool32           deviceGeneratedComputePipelines;
19018     VkBool32           deviceGeneratedComputeCaptureReplay;
19019 } VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
19020 
19021 typedef struct VkComputePipelineIndirectBufferInfoNV {
19022     VkStructureType    sType;
19023     const void*        pNext;
19024     VkDeviceAddress    deviceAddress;
19025     VkDeviceSize       size;
19026     VkDeviceAddress    pipelineDeviceAddressCaptureReplay;
19027 } VkComputePipelineIndirectBufferInfoNV;
19028 
19029 typedef struct VkPipelineIndirectDeviceAddressInfoNV {
19030     VkStructureType        sType;
19031     const void*            pNext;
19032     VkPipelineBindPoint    pipelineBindPoint;
19033     VkPipeline             pipeline;
19034 } VkPipelineIndirectDeviceAddressInfoNV;
19035 
19036 typedef struct VkBindPipelineIndirectCommandNV {
19037     VkDeviceAddress    pipelineAddress;
19038 } VkBindPipelineIndirectCommandNV;
19039 
19040 typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
19041 typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint           pipelineBindPoint, VkPipeline                    pipeline);
19042 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
19043 
19044 #ifndef VK_NO_PROTOTYPES
19045 VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
19046     VkDevice                                    device,
19047     const VkComputePipelineCreateInfo*          pCreateInfo,
19048     VkMemoryRequirements2*                      pMemoryRequirements);
19049 
19050 VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
19051     VkCommandBuffer                             commandBuffer,
19052     VkPipelineBindPoint                         pipelineBindPoint,
19053     VkPipeline                                  pipeline);
19054 
19055 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
19056     VkDevice                                    device,
19057     const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
19058 #endif
19059 
19060 
19061 // VK_NV_ray_tracing_linear_swept_spheres is a preprocessor guard. Do not pass it to API calls.
19062 #define VK_NV_ray_tracing_linear_swept_spheres 1
19063 #define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION 1
19064 #define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME "VK_NV_ray_tracing_linear_swept_spheres"
19065 
19066 typedef enum VkRayTracingLssIndexingModeNV {
19067     VK_RAY_TRACING_LSS_INDEXING_MODE_LIST_NV = 0,
19068     VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV = 1,
19069     VK_RAY_TRACING_LSS_INDEXING_MODE_MAX_ENUM_NV = 0x7FFFFFFF
19070 } VkRayTracingLssIndexingModeNV;
19071 
19072 typedef enum VkRayTracingLssPrimitiveEndCapsModeNV {
19073     VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV = 0,
19074     VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV = 1,
19075     VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_MAX_ENUM_NV = 0x7FFFFFFF
19076 } VkRayTracingLssPrimitiveEndCapsModeNV;
19077 typedef struct VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
19078     VkStructureType    sType;
19079     void*              pNext;
19080     VkBool32           spheres;
19081     VkBool32           linearSweptSpheres;
19082 } VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV;
19083 
19084 typedef struct VkAccelerationStructureGeometryLinearSweptSpheresDataNV {
19085     VkStructureType                          sType;
19086     const void*                              pNext;
19087     VkFormat                                 vertexFormat;
19088     VkDeviceOrHostAddressConstKHR            vertexData;
19089     VkDeviceSize                             vertexStride;
19090     VkFormat                                 radiusFormat;
19091     VkDeviceOrHostAddressConstKHR            radiusData;
19092     VkDeviceSize                             radiusStride;
19093     VkIndexType                              indexType;
19094     VkDeviceOrHostAddressConstKHR            indexData;
19095     VkDeviceSize                             indexStride;
19096     VkRayTracingLssIndexingModeNV            indexingMode;
19097     VkRayTracingLssPrimitiveEndCapsModeNV    endCapsMode;
19098 } VkAccelerationStructureGeometryLinearSweptSpheresDataNV;
19099 
19100 typedef struct VkAccelerationStructureGeometrySpheresDataNV {
19101     VkStructureType                  sType;
19102     const void*                      pNext;
19103     VkFormat                         vertexFormat;
19104     VkDeviceOrHostAddressConstKHR    vertexData;
19105     VkDeviceSize                     vertexStride;
19106     VkFormat                         radiusFormat;
19107     VkDeviceOrHostAddressConstKHR    radiusData;
19108     VkDeviceSize                     radiusStride;
19109     VkIndexType                      indexType;
19110     VkDeviceOrHostAddressConstKHR    indexData;
19111     VkDeviceSize                     indexStride;
19112 } VkAccelerationStructureGeometrySpheresDataNV;
19113 
19114 
19115 
19116 // VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
19117 #define VK_NV_linear_color_attachment 1
19118 #define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
19119 #define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
19120 typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
19121     VkStructureType    sType;
19122     void*              pNext;
19123     VkBool32           linearColorAttachment;
19124 } VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
19125 
19126 
19127 
19128 // VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
19129 #define VK_GOOGLE_surfaceless_query 1
19130 #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
19131 #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
19132 
19133 
19134 // VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
19135 #define VK_EXT_image_compression_control_swapchain 1
19136 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
19137 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
19138 typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
19139     VkStructureType    sType;
19140     void*              pNext;
19141     VkBool32           imageCompressionControlSwapchain;
19142 } VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
19143 
19144 
19145 
19146 // VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
19147 #define VK_QCOM_image_processing 1
19148 #define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
19149 #define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
19150 typedef struct VkImageViewSampleWeightCreateInfoQCOM {
19151     VkStructureType    sType;
19152     const void*        pNext;
19153     VkOffset2D         filterCenter;
19154     VkExtent2D         filterSize;
19155     uint32_t           numPhases;
19156 } VkImageViewSampleWeightCreateInfoQCOM;
19157 
19158 typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
19159     VkStructureType    sType;
19160     void*              pNext;
19161     VkBool32           textureSampleWeighted;
19162     VkBool32           textureBoxFilter;
19163     VkBool32           textureBlockMatch;
19164 } VkPhysicalDeviceImageProcessingFeaturesQCOM;
19165 
19166 typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
19167     VkStructureType    sType;
19168     void*              pNext;
19169     uint32_t           maxWeightFilterPhases;
19170     VkExtent2D         maxWeightFilterDimension;
19171     VkExtent2D         maxBlockMatchRegion;
19172     VkExtent2D         maxBoxFilterBlockSize;
19173 } VkPhysicalDeviceImageProcessingPropertiesQCOM;
19174 
19175 
19176 
19177 // VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
19178 #define VK_EXT_nested_command_buffer 1
19179 #define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
19180 #define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
19181 typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
19182     VkStructureType    sType;
19183     void*              pNext;
19184     VkBool32           nestedCommandBuffer;
19185     VkBool32           nestedCommandBufferRendering;
19186     VkBool32           nestedCommandBufferSimultaneousUse;
19187 } VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
19188 
19189 typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
19190     VkStructureType    sType;
19191     void*              pNext;
19192     uint32_t           maxCommandBufferNestingLevel;
19193 } VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
19194 
19195 
19196 
19197 // VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
19198 #define VK_EXT_external_memory_acquire_unmodified 1
19199 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
19200 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
19201 typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
19202     VkStructureType    sType;
19203     const void*        pNext;
19204     VkBool32           acquireUnmodifiedMemory;
19205 } VkExternalMemoryAcquireUnmodifiedEXT;
19206 
19207 
19208 
19209 // VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
19210 #define VK_EXT_extended_dynamic_state3 1
19211 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
19212 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
19213 typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
19214     VkStructureType    sType;
19215     void*              pNext;
19216     VkBool32           extendedDynamicState3TessellationDomainOrigin;
19217     VkBool32           extendedDynamicState3DepthClampEnable;
19218     VkBool32           extendedDynamicState3PolygonMode;
19219     VkBool32           extendedDynamicState3RasterizationSamples;
19220     VkBool32           extendedDynamicState3SampleMask;
19221     VkBool32           extendedDynamicState3AlphaToCoverageEnable;
19222     VkBool32           extendedDynamicState3AlphaToOneEnable;
19223     VkBool32           extendedDynamicState3LogicOpEnable;
19224     VkBool32           extendedDynamicState3ColorBlendEnable;
19225     VkBool32           extendedDynamicState3ColorBlendEquation;
19226     VkBool32           extendedDynamicState3ColorWriteMask;
19227     VkBool32           extendedDynamicState3RasterizationStream;
19228     VkBool32           extendedDynamicState3ConservativeRasterizationMode;
19229     VkBool32           extendedDynamicState3ExtraPrimitiveOverestimationSize;
19230     VkBool32           extendedDynamicState3DepthClipEnable;
19231     VkBool32           extendedDynamicState3SampleLocationsEnable;
19232     VkBool32           extendedDynamicState3ColorBlendAdvanced;
19233     VkBool32           extendedDynamicState3ProvokingVertexMode;
19234     VkBool32           extendedDynamicState3LineRasterizationMode;
19235     VkBool32           extendedDynamicState3LineStippleEnable;
19236     VkBool32           extendedDynamicState3DepthClipNegativeOneToOne;
19237     VkBool32           extendedDynamicState3ViewportWScalingEnable;
19238     VkBool32           extendedDynamicState3ViewportSwizzle;
19239     VkBool32           extendedDynamicState3CoverageToColorEnable;
19240     VkBool32           extendedDynamicState3CoverageToColorLocation;
19241     VkBool32           extendedDynamicState3CoverageModulationMode;
19242     VkBool32           extendedDynamicState3CoverageModulationTableEnable;
19243     VkBool32           extendedDynamicState3CoverageModulationTable;
19244     VkBool32           extendedDynamicState3CoverageReductionMode;
19245     VkBool32           extendedDynamicState3RepresentativeFragmentTestEnable;
19246     VkBool32           extendedDynamicState3ShadingRateImageEnable;
19247 } VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
19248 
19249 typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
19250     VkStructureType    sType;
19251     void*              pNext;
19252     VkBool32           dynamicPrimitiveTopologyUnrestricted;
19253 } VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
19254 
19255 typedef struct VkColorBlendEquationEXT {
19256     VkBlendFactor    srcColorBlendFactor;
19257     VkBlendFactor    dstColorBlendFactor;
19258     VkBlendOp        colorBlendOp;
19259     VkBlendFactor    srcAlphaBlendFactor;
19260     VkBlendFactor    dstAlphaBlendFactor;
19261     VkBlendOp        alphaBlendOp;
19262 } VkColorBlendEquationEXT;
19263 
19264 typedef struct VkColorBlendAdvancedEXT {
19265     VkBlendOp            advancedBlendOp;
19266     VkBool32             srcPremultiplied;
19267     VkBool32             dstPremultiplied;
19268     VkBlendOverlapEXT    blendOverlap;
19269     VkBool32             clampResults;
19270 } VkColorBlendAdvancedEXT;
19271 
19272 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
19273 typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
19274 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  rasterizationSamples);
19275 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  samples, const VkSampleMask*    pSampleMask);
19276 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
19277 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
19278 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
19279 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
19280 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
19281 typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
19282 typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
19283 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
19284 typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
19285 typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
19286 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
19287 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
19288 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
19289 typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
19290 typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
19291 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
19292 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
19293 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
19294 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
19295 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
19296 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
19297 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
19298 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
19299 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
19300 typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
19301 typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
19302 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
19303 
19304 #ifndef VK_NO_PROTOTYPES
19305 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
19306     VkCommandBuffer                             commandBuffer,
19307     VkBool32                                    depthClampEnable);
19308 
19309 VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
19310     VkCommandBuffer                             commandBuffer,
19311     VkPolygonMode                               polygonMode);
19312 
19313 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
19314     VkCommandBuffer                             commandBuffer,
19315     VkSampleCountFlagBits                       rasterizationSamples);
19316 
19317 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
19318     VkCommandBuffer                             commandBuffer,
19319     VkSampleCountFlagBits                       samples,
19320     const VkSampleMask*                         pSampleMask);
19321 
19322 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
19323     VkCommandBuffer                             commandBuffer,
19324     VkBool32                                    alphaToCoverageEnable);
19325 
19326 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
19327     VkCommandBuffer                             commandBuffer,
19328     VkBool32                                    alphaToOneEnable);
19329 
19330 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
19331     VkCommandBuffer                             commandBuffer,
19332     VkBool32                                    logicOpEnable);
19333 
19334 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
19335     VkCommandBuffer                             commandBuffer,
19336     uint32_t                                    firstAttachment,
19337     uint32_t                                    attachmentCount,
19338     const VkBool32*                             pColorBlendEnables);
19339 
19340 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
19341     VkCommandBuffer                             commandBuffer,
19342     uint32_t                                    firstAttachment,
19343     uint32_t                                    attachmentCount,
19344     const VkColorBlendEquationEXT*              pColorBlendEquations);
19345 
19346 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
19347     VkCommandBuffer                             commandBuffer,
19348     uint32_t                                    firstAttachment,
19349     uint32_t                                    attachmentCount,
19350     const VkColorComponentFlags*                pColorWriteMasks);
19351 
19352 VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
19353     VkCommandBuffer                             commandBuffer,
19354     VkTessellationDomainOrigin                  domainOrigin);
19355 
19356 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
19357     VkCommandBuffer                             commandBuffer,
19358     uint32_t                                    rasterizationStream);
19359 
19360 VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
19361     VkCommandBuffer                             commandBuffer,
19362     VkConservativeRasterizationModeEXT          conservativeRasterizationMode);
19363 
19364 VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
19365     VkCommandBuffer                             commandBuffer,
19366     float                                       extraPrimitiveOverestimationSize);
19367 
19368 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
19369     VkCommandBuffer                             commandBuffer,
19370     VkBool32                                    depthClipEnable);
19371 
19372 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
19373     VkCommandBuffer                             commandBuffer,
19374     VkBool32                                    sampleLocationsEnable);
19375 
19376 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
19377     VkCommandBuffer                             commandBuffer,
19378     uint32_t                                    firstAttachment,
19379     uint32_t                                    attachmentCount,
19380     const VkColorBlendAdvancedEXT*              pColorBlendAdvanced);
19381 
19382 VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
19383     VkCommandBuffer                             commandBuffer,
19384     VkProvokingVertexModeEXT                    provokingVertexMode);
19385 
19386 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
19387     VkCommandBuffer                             commandBuffer,
19388     VkLineRasterizationModeEXT                  lineRasterizationMode);
19389 
19390 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
19391     VkCommandBuffer                             commandBuffer,
19392     VkBool32                                    stippledLineEnable);
19393 
19394 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
19395     VkCommandBuffer                             commandBuffer,
19396     VkBool32                                    negativeOneToOne);
19397 
19398 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
19399     VkCommandBuffer                             commandBuffer,
19400     VkBool32                                    viewportWScalingEnable);
19401 
19402 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
19403     VkCommandBuffer                             commandBuffer,
19404     uint32_t                                    firstViewport,
19405     uint32_t                                    viewportCount,
19406     const VkViewportSwizzleNV*                  pViewportSwizzles);
19407 
19408 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
19409     VkCommandBuffer                             commandBuffer,
19410     VkBool32                                    coverageToColorEnable);
19411 
19412 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
19413     VkCommandBuffer                             commandBuffer,
19414     uint32_t                                    coverageToColorLocation);
19415 
19416 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
19417     VkCommandBuffer                             commandBuffer,
19418     VkCoverageModulationModeNV                  coverageModulationMode);
19419 
19420 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
19421     VkCommandBuffer                             commandBuffer,
19422     VkBool32                                    coverageModulationTableEnable);
19423 
19424 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
19425     VkCommandBuffer                             commandBuffer,
19426     uint32_t                                    coverageModulationTableCount,
19427     const float*                                pCoverageModulationTable);
19428 
19429 VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
19430     VkCommandBuffer                             commandBuffer,
19431     VkBool32                                    shadingRateImageEnable);
19432 
19433 VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
19434     VkCommandBuffer                             commandBuffer,
19435     VkBool32                                    representativeFragmentTestEnable);
19436 
19437 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
19438     VkCommandBuffer                             commandBuffer,
19439     VkCoverageReductionModeNV                   coverageReductionMode);
19440 #endif
19441 
19442 
19443 // VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
19444 #define VK_EXT_subpass_merge_feedback 1
19445 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
19446 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
19447 
19448 typedef enum VkSubpassMergeStatusEXT {
19449     VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
19450     VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
19451     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
19452     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
19453     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
19454     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
19455     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
19456     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
19457     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
19458     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
19459     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
19460     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
19461     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
19462     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
19463     VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
19464 } VkSubpassMergeStatusEXT;
19465 typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
19466     VkStructureType    sType;
19467     void*              pNext;
19468     VkBool32           subpassMergeFeedback;
19469 } VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
19470 
19471 typedef struct VkRenderPassCreationControlEXT {
19472     VkStructureType    sType;
19473     const void*        pNext;
19474     VkBool32           disallowMerging;
19475 } VkRenderPassCreationControlEXT;
19476 
19477 typedef struct VkRenderPassCreationFeedbackInfoEXT {
19478     uint32_t    postMergeSubpassCount;
19479 } VkRenderPassCreationFeedbackInfoEXT;
19480 
19481 typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
19482     VkStructureType                         sType;
19483     const void*                             pNext;
19484     VkRenderPassCreationFeedbackInfoEXT*    pRenderPassFeedback;
19485 } VkRenderPassCreationFeedbackCreateInfoEXT;
19486 
19487 typedef struct VkRenderPassSubpassFeedbackInfoEXT {
19488     VkSubpassMergeStatusEXT    subpassMergeStatus;
19489     char                       description[VK_MAX_DESCRIPTION_SIZE];
19490     uint32_t                   postMergeIndex;
19491 } VkRenderPassSubpassFeedbackInfoEXT;
19492 
19493 typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
19494     VkStructureType                        sType;
19495     const void*                            pNext;
19496     VkRenderPassSubpassFeedbackInfoEXT*    pSubpassFeedback;
19497 } VkRenderPassSubpassFeedbackCreateInfoEXT;
19498 
19499 
19500 
19501 // VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
19502 #define VK_LUNARG_direct_driver_loading 1
19503 #define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
19504 #define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
19505 
19506 typedef enum VkDirectDriverLoadingModeLUNARG {
19507     VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
19508     VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
19509     VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
19510 } VkDirectDriverLoadingModeLUNARG;
19511 typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
19512 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
19513     VkInstance instance, const char* pName);
19514 
19515 typedef struct VkDirectDriverLoadingInfoLUNARG {
19516     VkStructureType                     sType;
19517     void*                               pNext;
19518     VkDirectDriverLoadingFlagsLUNARG    flags;
19519     PFN_vkGetInstanceProcAddrLUNARG     pfnGetInstanceProcAddr;
19520 } VkDirectDriverLoadingInfoLUNARG;
19521 
19522 typedef struct VkDirectDriverLoadingListLUNARG {
19523     VkStructureType                           sType;
19524     const void*                               pNext;
19525     VkDirectDriverLoadingModeLUNARG           mode;
19526     uint32_t                                  driverCount;
19527     const VkDirectDriverLoadingInfoLUNARG*    pDrivers;
19528 } VkDirectDriverLoadingListLUNARG;
19529 
19530 
19531 
19532 // VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
19533 #define VK_EXT_shader_module_identifier 1
19534 #define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
19535 #define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
19536 #define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
19537 typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
19538     VkStructureType    sType;
19539     void*              pNext;
19540     VkBool32           shaderModuleIdentifier;
19541 } VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
19542 
19543 typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
19544     VkStructureType    sType;
19545     void*              pNext;
19546     uint8_t            shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
19547 } VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
19548 
19549 typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
19550     VkStructureType    sType;
19551     const void*        pNext;
19552     uint32_t           identifierSize;
19553     const uint8_t*     pIdentifier;
19554 } VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
19555 
19556 typedef struct VkShaderModuleIdentifierEXT {
19557     VkStructureType    sType;
19558     void*              pNext;
19559     uint32_t           identifierSize;
19560     uint8_t            identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
19561 } VkShaderModuleIdentifierEXT;
19562 
19563 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
19564 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
19565 
19566 #ifndef VK_NO_PROTOTYPES
19567 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
19568     VkDevice                                    device,
19569     VkShaderModule                              shaderModule,
19570     VkShaderModuleIdentifierEXT*                pIdentifier);
19571 
19572 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
19573     VkDevice                                    device,
19574     const VkShaderModuleCreateInfo*             pCreateInfo,
19575     VkShaderModuleIdentifierEXT*                pIdentifier);
19576 #endif
19577 
19578 
19579 // VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
19580 #define VK_EXT_rasterization_order_attachment_access 1
19581 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
19582 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
19583 
19584 
19585 // VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
19586 #define VK_NV_optical_flow 1
19587 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
19588 #define VK_NV_OPTICAL_FLOW_SPEC_VERSION   1
19589 #define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
19590 
19591 typedef enum VkOpticalFlowPerformanceLevelNV {
19592     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
19593     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
19594     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
19595     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
19596     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
19597 } VkOpticalFlowPerformanceLevelNV;
19598 
19599 typedef enum VkOpticalFlowSessionBindingPointNV {
19600     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
19601     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
19602     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
19603     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
19604     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
19605     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
19606     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
19607     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
19608     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
19609     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
19610 } VkOpticalFlowSessionBindingPointNV;
19611 
19612 typedef enum VkOpticalFlowGridSizeFlagBitsNV {
19613     VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
19614     VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
19615     VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
19616     VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
19617     VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
19618     VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19619 } VkOpticalFlowGridSizeFlagBitsNV;
19620 typedef VkFlags   VkOpticalFlowGridSizeFlagsNV;
19621 
19622 typedef enum VkOpticalFlowUsageFlagBitsNV {
19623     VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
19624     VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
19625     VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
19626     VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
19627     VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
19628     VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
19629     VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19630 } VkOpticalFlowUsageFlagBitsNV;
19631 typedef VkFlags   VkOpticalFlowUsageFlagsNV;
19632 
19633 typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
19634     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
19635     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
19636     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
19637     VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
19638     VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
19639     VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19640 } VkOpticalFlowSessionCreateFlagBitsNV;
19641 typedef VkFlags   VkOpticalFlowSessionCreateFlagsNV;
19642 
19643 typedef enum VkOpticalFlowExecuteFlagBitsNV {
19644     VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
19645     VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19646 } VkOpticalFlowExecuteFlagBitsNV;
19647 typedef VkFlags   VkOpticalFlowExecuteFlagsNV;
19648 typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
19649     VkStructureType    sType;
19650     void*              pNext;
19651     VkBool32           opticalFlow;
19652 } VkPhysicalDeviceOpticalFlowFeaturesNV;
19653 
19654 typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
19655     VkStructureType                 sType;
19656     void*                           pNext;
19657     VkOpticalFlowGridSizeFlagsNV    supportedOutputGridSizes;
19658     VkOpticalFlowGridSizeFlagsNV    supportedHintGridSizes;
19659     VkBool32                        hintSupported;
19660     VkBool32                        costSupported;
19661     VkBool32                        bidirectionalFlowSupported;
19662     VkBool32                        globalFlowSupported;
19663     uint32_t                        minWidth;
19664     uint32_t                        minHeight;
19665     uint32_t                        maxWidth;
19666     uint32_t                        maxHeight;
19667     uint32_t                        maxNumRegionsOfInterest;
19668 } VkPhysicalDeviceOpticalFlowPropertiesNV;
19669 
19670 typedef struct VkOpticalFlowImageFormatInfoNV {
19671     VkStructureType              sType;
19672     const void*                  pNext;
19673     VkOpticalFlowUsageFlagsNV    usage;
19674 } VkOpticalFlowImageFormatInfoNV;
19675 
19676 typedef struct VkOpticalFlowImageFormatPropertiesNV {
19677     VkStructureType    sType;
19678     const void*        pNext;
19679     VkFormat           format;
19680 } VkOpticalFlowImageFormatPropertiesNV;
19681 
19682 typedef struct VkOpticalFlowSessionCreateInfoNV {
19683     VkStructureType                      sType;
19684     void*                                pNext;
19685     uint32_t                             width;
19686     uint32_t                             height;
19687     VkFormat                             imageFormat;
19688     VkFormat                             flowVectorFormat;
19689     VkFormat                             costFormat;
19690     VkOpticalFlowGridSizeFlagsNV         outputGridSize;
19691     VkOpticalFlowGridSizeFlagsNV         hintGridSize;
19692     VkOpticalFlowPerformanceLevelNV      performanceLevel;
19693     VkOpticalFlowSessionCreateFlagsNV    flags;
19694 } VkOpticalFlowSessionCreateInfoNV;
19695 
19696 typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
19697     VkStructureType    sType;
19698     void*              pNext;
19699     uint32_t           id;
19700     uint32_t           size;
19701     const void*        pPrivateData;
19702 } VkOpticalFlowSessionCreatePrivateDataInfoNV;
19703 
19704 typedef struct VkOpticalFlowExecuteInfoNV {
19705     VkStructureType                sType;
19706     void*                          pNext;
19707     VkOpticalFlowExecuteFlagsNV    flags;
19708     uint32_t                       regionCount;
19709     const VkRect2D*                pRegions;
19710 } VkOpticalFlowExecuteInfoNV;
19711 
19712 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
19713 typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
19714 typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
19715 typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
19716 typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
19717 
19718 #ifndef VK_NO_PROTOTYPES
19719 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
19720     VkPhysicalDevice                            physicalDevice,
19721     const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
19722     uint32_t*                                   pFormatCount,
19723     VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties);
19724 
19725 VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
19726     VkDevice                                    device,
19727     const VkOpticalFlowSessionCreateInfoNV*     pCreateInfo,
19728     const VkAllocationCallbacks*                pAllocator,
19729     VkOpticalFlowSessionNV*                     pSession);
19730 
19731 VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
19732     VkDevice                                    device,
19733     VkOpticalFlowSessionNV                      session,
19734     const VkAllocationCallbacks*                pAllocator);
19735 
19736 VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
19737     VkDevice                                    device,
19738     VkOpticalFlowSessionNV                      session,
19739     VkOpticalFlowSessionBindingPointNV          bindingPoint,
19740     VkImageView                                 view,
19741     VkImageLayout                               layout);
19742 
19743 VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
19744     VkCommandBuffer                             commandBuffer,
19745     VkOpticalFlowSessionNV                      session,
19746     const VkOpticalFlowExecuteInfoNV*           pExecuteInfo);
19747 #endif
19748 
19749 
19750 // VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
19751 #define VK_EXT_legacy_dithering 1
19752 #define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 2
19753 #define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
19754 typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
19755     VkStructureType    sType;
19756     void*              pNext;
19757     VkBool32           legacyDithering;
19758 } VkPhysicalDeviceLegacyDitheringFeaturesEXT;
19759 
19760 
19761 
19762 // VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
19763 #define VK_EXT_pipeline_protected_access 1
19764 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
19765 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
19766 typedef VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
19767 
19768 
19769 
19770 // VK_AMD_anti_lag is a preprocessor guard. Do not pass it to API calls.
19771 #define VK_AMD_anti_lag 1
19772 #define VK_AMD_ANTI_LAG_SPEC_VERSION      1
19773 #define VK_AMD_ANTI_LAG_EXTENSION_NAME    "VK_AMD_anti_lag"
19774 
19775 typedef enum VkAntiLagModeAMD {
19776     VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD = 0,
19777     VK_ANTI_LAG_MODE_ON_AMD = 1,
19778     VK_ANTI_LAG_MODE_OFF_AMD = 2,
19779     VK_ANTI_LAG_MODE_MAX_ENUM_AMD = 0x7FFFFFFF
19780 } VkAntiLagModeAMD;
19781 
19782 typedef enum VkAntiLagStageAMD {
19783     VK_ANTI_LAG_STAGE_INPUT_AMD = 0,
19784     VK_ANTI_LAG_STAGE_PRESENT_AMD = 1,
19785     VK_ANTI_LAG_STAGE_MAX_ENUM_AMD = 0x7FFFFFFF
19786 } VkAntiLagStageAMD;
19787 typedef struct VkPhysicalDeviceAntiLagFeaturesAMD {
19788     VkStructureType    sType;
19789     void*              pNext;
19790     VkBool32           antiLag;
19791 } VkPhysicalDeviceAntiLagFeaturesAMD;
19792 
19793 typedef struct VkAntiLagPresentationInfoAMD {
19794     VkStructureType      sType;
19795     void*                pNext;
19796     VkAntiLagStageAMD    stage;
19797     uint64_t             frameIndex;
19798 } VkAntiLagPresentationInfoAMD;
19799 
19800 typedef struct VkAntiLagDataAMD {
19801     VkStructureType                        sType;
19802     const void*                            pNext;
19803     VkAntiLagModeAMD                       mode;
19804     uint32_t                               maxFPS;
19805     const VkAntiLagPresentationInfoAMD*    pPresentationInfo;
19806 } VkAntiLagDataAMD;
19807 
19808 typedef void (VKAPI_PTR *PFN_vkAntiLagUpdateAMD)(VkDevice device, const VkAntiLagDataAMD* pData);
19809 
19810 #ifndef VK_NO_PROTOTYPES
19811 VKAPI_ATTR void VKAPI_CALL vkAntiLagUpdateAMD(
19812     VkDevice                                    device,
19813     const VkAntiLagDataAMD*                     pData);
19814 #endif
19815 
19816 
19817 // VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
19818 #define VK_EXT_shader_object 1
19819 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
19820 #define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
19821 #define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
19822 
19823 typedef enum VkShaderCodeTypeEXT {
19824     VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
19825     VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
19826     VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19827 } VkShaderCodeTypeEXT;
19828 
19829 typedef enum VkDepthClampModeEXT {
19830     VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT = 0,
19831     VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT = 1,
19832     VK_DEPTH_CLAMP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
19833 } VkDepthClampModeEXT;
19834 
19835 typedef enum VkShaderCreateFlagBitsEXT {
19836     VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
19837     VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
19838     VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
19839     VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
19840     VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
19841     VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
19842     VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
19843     VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT = 0x00000080,
19844     VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19845 } VkShaderCreateFlagBitsEXT;
19846 typedef VkFlags VkShaderCreateFlagsEXT;
19847 typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
19848     VkStructureType    sType;
19849     void*              pNext;
19850     VkBool32           shaderObject;
19851 } VkPhysicalDeviceShaderObjectFeaturesEXT;
19852 
19853 typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
19854     VkStructureType    sType;
19855     void*              pNext;
19856     uint8_t            shaderBinaryUUID[VK_UUID_SIZE];
19857     uint32_t           shaderBinaryVersion;
19858 } VkPhysicalDeviceShaderObjectPropertiesEXT;
19859 
19860 typedef struct VkShaderCreateInfoEXT {
19861     VkStructureType                 sType;
19862     const void*                     pNext;
19863     VkShaderCreateFlagsEXT          flags;
19864     VkShaderStageFlagBits           stage;
19865     VkShaderStageFlags              nextStage;
19866     VkShaderCodeTypeEXT             codeType;
19867     size_t                          codeSize;
19868     const void*                     pCode;
19869     const char*                     pName;
19870     uint32_t                        setLayoutCount;
19871     const VkDescriptorSetLayout*    pSetLayouts;
19872     uint32_t                        pushConstantRangeCount;
19873     const VkPushConstantRange*      pPushConstantRanges;
19874     const VkSpecializationInfo*     pSpecializationInfo;
19875 } VkShaderCreateInfoEXT;
19876 
19877 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
19878 
19879 typedef struct VkDepthClampRangeEXT {
19880     float    minDepthClamp;
19881     float    maxDepthClamp;
19882 } VkDepthClampRangeEXT;
19883 
19884 typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
19885 typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
19886 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
19887 typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
19888 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampRangeEXT)(VkCommandBuffer commandBuffer, VkDepthClampModeEXT depthClampMode, const VkDepthClampRangeEXT* pDepthClampRange);
19889 
19890 #ifndef VK_NO_PROTOTYPES
19891 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
19892     VkDevice                                    device,
19893     uint32_t                                    createInfoCount,
19894     const VkShaderCreateInfoEXT*                pCreateInfos,
19895     const VkAllocationCallbacks*                pAllocator,
19896     VkShaderEXT*                                pShaders);
19897 
19898 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
19899     VkDevice                                    device,
19900     VkShaderEXT                                 shader,
19901     const VkAllocationCallbacks*                pAllocator);
19902 
19903 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
19904     VkDevice                                    device,
19905     VkShaderEXT                                 shader,
19906     size_t*                                     pDataSize,
19907     void*                                       pData);
19908 
19909 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
19910     VkCommandBuffer                             commandBuffer,
19911     uint32_t                                    stageCount,
19912     const VkShaderStageFlagBits*                pStages,
19913     const VkShaderEXT*                          pShaders);
19914 
19915 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampRangeEXT(
19916     VkCommandBuffer                             commandBuffer,
19917     VkDepthClampModeEXT                         depthClampMode,
19918     const VkDepthClampRangeEXT*                 pDepthClampRange);
19919 #endif
19920 
19921 
19922 // VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
19923 #define VK_QCOM_tile_properties 1
19924 #define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
19925 #define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
19926 typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
19927     VkStructureType    sType;
19928     void*              pNext;
19929     VkBool32           tileProperties;
19930 } VkPhysicalDeviceTilePropertiesFeaturesQCOM;
19931 
19932 typedef struct VkTilePropertiesQCOM {
19933     VkStructureType    sType;
19934     void*              pNext;
19935     VkExtent3D         tileSize;
19936     VkExtent2D         apronSize;
19937     VkOffset2D         origin;
19938 } VkTilePropertiesQCOM;
19939 
19940 typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
19941 typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
19942 
19943 #ifndef VK_NO_PROTOTYPES
19944 VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
19945     VkDevice                                    device,
19946     VkFramebuffer                               framebuffer,
19947     uint32_t*                                   pPropertiesCount,
19948     VkTilePropertiesQCOM*                       pProperties);
19949 
19950 VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
19951     VkDevice                                    device,
19952     const VkRenderingInfo*                      pRenderingInfo,
19953     VkTilePropertiesQCOM*                       pProperties);
19954 #endif
19955 
19956 
19957 // VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
19958 #define VK_SEC_amigo_profiling 1
19959 #define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
19960 #define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
19961 typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
19962     VkStructureType    sType;
19963     void*              pNext;
19964     VkBool32           amigoProfiling;
19965 } VkPhysicalDeviceAmigoProfilingFeaturesSEC;
19966 
19967 typedef struct VkAmigoProfilingSubmitInfoSEC {
19968     VkStructureType    sType;
19969     const void*        pNext;
19970     uint64_t           firstDrawTimestamp;
19971     uint64_t           swapBufferTimestamp;
19972 } VkAmigoProfilingSubmitInfoSEC;
19973 
19974 
19975 
19976 // VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
19977 #define VK_QCOM_multiview_per_view_viewports 1
19978 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
19979 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
19980 typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
19981     VkStructureType    sType;
19982     void*              pNext;
19983     VkBool32           multiviewPerViewViewports;
19984 } VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
19985 
19986 
19987 
19988 // VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
19989 #define VK_NV_ray_tracing_invocation_reorder 1
19990 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
19991 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
19992 
19993 typedef enum VkRayTracingInvocationReorderModeNV {
19994     VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0,
19995     VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1,
19996     VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 0x7FFFFFFF
19997 } VkRayTracingInvocationReorderModeNV;
19998 typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
19999     VkStructureType                        sType;
20000     void*                                  pNext;
20001     VkRayTracingInvocationReorderModeNV    rayTracingInvocationReorderReorderingHint;
20002 } VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
20003 
20004 typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
20005     VkStructureType    sType;
20006     void*              pNext;
20007     VkBool32           rayTracingInvocationReorder;
20008 } VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
20009 
20010 
20011 
20012 // VK_NV_cooperative_vector is a preprocessor guard. Do not pass it to API calls.
20013 #define VK_NV_cooperative_vector 1
20014 #define VK_NV_COOPERATIVE_VECTOR_SPEC_VERSION 4
20015 #define VK_NV_COOPERATIVE_VECTOR_EXTENSION_NAME "VK_NV_cooperative_vector"
20016 
20017 typedef enum VkCooperativeVectorMatrixLayoutNV {
20018     VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV = 0,
20019     VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV = 1,
20020     VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV = 2,
20021     VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV = 3,
20022     VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_MAX_ENUM_NV = 0x7FFFFFFF
20023 } VkCooperativeVectorMatrixLayoutNV;
20024 typedef struct VkPhysicalDeviceCooperativeVectorPropertiesNV {
20025     VkStructureType       sType;
20026     void*                 pNext;
20027     VkShaderStageFlags    cooperativeVectorSupportedStages;
20028     VkBool32              cooperativeVectorTrainingFloat16Accumulation;
20029     VkBool32              cooperativeVectorTrainingFloat32Accumulation;
20030     uint32_t              maxCooperativeVectorComponents;
20031 } VkPhysicalDeviceCooperativeVectorPropertiesNV;
20032 
20033 typedef struct VkPhysicalDeviceCooperativeVectorFeaturesNV {
20034     VkStructureType    sType;
20035     void*              pNext;
20036     VkBool32           cooperativeVector;
20037     VkBool32           cooperativeVectorTraining;
20038 } VkPhysicalDeviceCooperativeVectorFeaturesNV;
20039 
20040 typedef struct VkCooperativeVectorPropertiesNV {
20041     VkStructureType       sType;
20042     void*                 pNext;
20043     VkComponentTypeKHR    inputType;
20044     VkComponentTypeKHR    inputInterpretation;
20045     VkComponentTypeKHR    matrixInterpretation;
20046     VkComponentTypeKHR    biasInterpretation;
20047     VkComponentTypeKHR    resultType;
20048     VkBool32              transpose;
20049 } VkCooperativeVectorPropertiesNV;
20050 
20051 typedef struct VkConvertCooperativeVectorMatrixInfoNV {
20052     VkStructureType                      sType;
20053     const void*                          pNext;
20054     size_t                               srcSize;
20055     VkDeviceOrHostAddressConstKHR        srcData;
20056     size_t*                              pDstSize;
20057     VkDeviceOrHostAddressKHR             dstData;
20058     VkComponentTypeKHR                   srcComponentType;
20059     VkComponentTypeKHR                   dstComponentType;
20060     uint32_t                             numRows;
20061     uint32_t                             numColumns;
20062     VkCooperativeVectorMatrixLayoutNV    srcLayout;
20063     size_t                               srcStride;
20064     VkCooperativeVectorMatrixLayoutNV    dstLayout;
20065     size_t                               dstStride;
20066 } VkConvertCooperativeVectorMatrixInfoNV;
20067 
20068 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeVectorPropertiesNV* pProperties);
20069 typedef VkResult (VKAPI_PTR *PFN_vkConvertCooperativeVectorMatrixNV)(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
20070 typedef void (VKAPI_PTR *PFN_vkCmdConvertCooperativeVectorMatrixNV)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
20071 
20072 #ifndef VK_NO_PROTOTYPES
20073 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeVectorPropertiesNV(
20074     VkPhysicalDevice                            physicalDevice,
20075     uint32_t*                                   pPropertyCount,
20076     VkCooperativeVectorPropertiesNV*            pProperties);
20077 
20078 VKAPI_ATTR VkResult VKAPI_CALL vkConvertCooperativeVectorMatrixNV(
20079     VkDevice                                    device,
20080     const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
20081 
20082 VKAPI_ATTR void VKAPI_CALL vkCmdConvertCooperativeVectorMatrixNV(
20083     VkCommandBuffer                             commandBuffer,
20084     uint32_t                                    infoCount,
20085     const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
20086 #endif
20087 
20088 
20089 // VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
20090 #define VK_NV_extended_sparse_address_space 1
20091 #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
20092 #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
20093 typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
20094     VkStructureType    sType;
20095     void*              pNext;
20096     VkBool32           extendedSparseAddressSpace;
20097 } VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
20098 
20099 typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
20100     VkStructureType       sType;
20101     void*                 pNext;
20102     VkDeviceSize          extendedSparseAddressSpaceSize;
20103     VkImageUsageFlags     extendedSparseImageUsageFlags;
20104     VkBufferUsageFlags    extendedSparseBufferUsageFlags;
20105 } VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
20106 
20107 
20108 
20109 // VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
20110 #define VK_EXT_mutable_descriptor_type 1
20111 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
20112 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
20113 
20114 
20115 // VK_EXT_legacy_vertex_attributes is a preprocessor guard. Do not pass it to API calls.
20116 #define VK_EXT_legacy_vertex_attributes 1
20117 #define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION 1
20118 #define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME "VK_EXT_legacy_vertex_attributes"
20119 typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT {
20120     VkStructureType    sType;
20121     void*              pNext;
20122     VkBool32           legacyVertexAttributes;
20123 } VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
20124 
20125 typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT {
20126     VkStructureType    sType;
20127     void*              pNext;
20128     VkBool32           nativeUnalignedPerformance;
20129 } VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
20130 
20131 
20132 
20133 // VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
20134 #define VK_EXT_layer_settings 1
20135 #define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
20136 #define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
20137 
20138 typedef enum VkLayerSettingTypeEXT {
20139     VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
20140     VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
20141     VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
20142     VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
20143     VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
20144     VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
20145     VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
20146     VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
20147     VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
20148 } VkLayerSettingTypeEXT;
20149 typedef struct VkLayerSettingEXT {
20150     const char*              pLayerName;
20151     const char*              pSettingName;
20152     VkLayerSettingTypeEXT    type;
20153     uint32_t                 valueCount;
20154     const void*              pValues;
20155 } VkLayerSettingEXT;
20156 
20157 typedef struct VkLayerSettingsCreateInfoEXT {
20158     VkStructureType             sType;
20159     const void*                 pNext;
20160     uint32_t                    settingCount;
20161     const VkLayerSettingEXT*    pSettings;
20162 } VkLayerSettingsCreateInfoEXT;
20163 
20164 
20165 
20166 // VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
20167 #define VK_ARM_shader_core_builtins 1
20168 #define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
20169 #define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
20170 typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
20171     VkStructureType    sType;
20172     void*              pNext;
20173     VkBool32           shaderCoreBuiltins;
20174 } VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
20175 
20176 typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
20177     VkStructureType    sType;
20178     void*              pNext;
20179     uint64_t           shaderCoreMask;
20180     uint32_t           shaderCoreCount;
20181     uint32_t           shaderWarpsPerCore;
20182 } VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
20183 
20184 
20185 
20186 // VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
20187 #define VK_EXT_pipeline_library_group_handles 1
20188 #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
20189 #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
20190 typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
20191     VkStructureType    sType;
20192     void*              pNext;
20193     VkBool32           pipelineLibraryGroupHandles;
20194 } VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
20195 
20196 
20197 
20198 // VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
20199 #define VK_EXT_dynamic_rendering_unused_attachments 1
20200 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
20201 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
20202 typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
20203     VkStructureType    sType;
20204     void*              pNext;
20205     VkBool32           dynamicRenderingUnusedAttachments;
20206 } VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
20207 
20208 
20209 
20210 // VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
20211 #define VK_NV_low_latency2 1
20212 #define VK_NV_LOW_LATENCY_2_SPEC_VERSION  2
20213 #define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
20214 
20215 typedef enum VkLatencyMarkerNV {
20216     VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
20217     VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
20218     VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
20219     VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
20220     VK_LATENCY_MARKER_PRESENT_START_NV = 4,
20221     VK_LATENCY_MARKER_PRESENT_END_NV = 5,
20222     VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
20223     VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
20224     VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
20225     VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
20226     VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
20227     VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
20228     VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
20229 } VkLatencyMarkerNV;
20230 
20231 typedef enum VkOutOfBandQueueTypeNV {
20232     VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
20233     VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
20234     VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
20235 } VkOutOfBandQueueTypeNV;
20236 typedef struct VkLatencySleepModeInfoNV {
20237     VkStructureType    sType;
20238     const void*        pNext;
20239     VkBool32           lowLatencyMode;
20240     VkBool32           lowLatencyBoost;
20241     uint32_t           minimumIntervalUs;
20242 } VkLatencySleepModeInfoNV;
20243 
20244 typedef struct VkLatencySleepInfoNV {
20245     VkStructureType    sType;
20246     const void*        pNext;
20247     VkSemaphore        signalSemaphore;
20248     uint64_t           value;
20249 } VkLatencySleepInfoNV;
20250 
20251 typedef struct VkSetLatencyMarkerInfoNV {
20252     VkStructureType      sType;
20253     const void*          pNext;
20254     uint64_t             presentID;
20255     VkLatencyMarkerNV    marker;
20256 } VkSetLatencyMarkerInfoNV;
20257 
20258 typedef struct VkLatencyTimingsFrameReportNV {
20259     VkStructureType    sType;
20260     const void*        pNext;
20261     uint64_t           presentID;
20262     uint64_t           inputSampleTimeUs;
20263     uint64_t           simStartTimeUs;
20264     uint64_t           simEndTimeUs;
20265     uint64_t           renderSubmitStartTimeUs;
20266     uint64_t           renderSubmitEndTimeUs;
20267     uint64_t           presentStartTimeUs;
20268     uint64_t           presentEndTimeUs;
20269     uint64_t           driverStartTimeUs;
20270     uint64_t           driverEndTimeUs;
20271     uint64_t           osRenderQueueStartTimeUs;
20272     uint64_t           osRenderQueueEndTimeUs;
20273     uint64_t           gpuRenderStartTimeUs;
20274     uint64_t           gpuRenderEndTimeUs;
20275 } VkLatencyTimingsFrameReportNV;
20276 
20277 typedef struct VkGetLatencyMarkerInfoNV {
20278     VkStructureType                   sType;
20279     const void*                       pNext;
20280     uint32_t                          timingCount;
20281     VkLatencyTimingsFrameReportNV*    pTimings;
20282 } VkGetLatencyMarkerInfoNV;
20283 
20284 typedef struct VkLatencySubmissionPresentIdNV {
20285     VkStructureType    sType;
20286     const void*        pNext;
20287     uint64_t           presentID;
20288 } VkLatencySubmissionPresentIdNV;
20289 
20290 typedef struct VkSwapchainLatencyCreateInfoNV {
20291     VkStructureType    sType;
20292     const void*        pNext;
20293     VkBool32           latencyModeEnable;
20294 } VkSwapchainLatencyCreateInfoNV;
20295 
20296 typedef struct VkOutOfBandQueueTypeInfoNV {
20297     VkStructureType           sType;
20298     const void*               pNext;
20299     VkOutOfBandQueueTypeNV    queueType;
20300 } VkOutOfBandQueueTypeInfoNV;
20301 
20302 typedef struct VkLatencySurfaceCapabilitiesNV {
20303     VkStructureType      sType;
20304     const void*          pNext;
20305     uint32_t             presentModeCount;
20306     VkPresentModeKHR*    pPresentModes;
20307 } VkLatencySurfaceCapabilitiesNV;
20308 
20309 typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
20310 typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
20311 typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
20312 typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
20313 typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
20314 
20315 #ifndef VK_NO_PROTOTYPES
20316 VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
20317     VkDevice                                    device,
20318     VkSwapchainKHR                              swapchain,
20319     const VkLatencySleepModeInfoNV*             pSleepModeInfo);
20320 
20321 VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
20322     VkDevice                                    device,
20323     VkSwapchainKHR                              swapchain,
20324     const VkLatencySleepInfoNV*                 pSleepInfo);
20325 
20326 VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
20327     VkDevice                                    device,
20328     VkSwapchainKHR                              swapchain,
20329     const VkSetLatencyMarkerInfoNV*             pLatencyMarkerInfo);
20330 
20331 VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
20332     VkDevice                                    device,
20333     VkSwapchainKHR                              swapchain,
20334     VkGetLatencyMarkerInfoNV*                   pLatencyMarkerInfo);
20335 
20336 VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
20337     VkQueue                                     queue,
20338     const VkOutOfBandQueueTypeInfoNV*           pQueueTypeInfo);
20339 #endif
20340 
20341 
20342 // VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
20343 #define VK_QCOM_multiview_per_view_render_areas 1
20344 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
20345 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
20346 typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
20347     VkStructureType    sType;
20348     void*              pNext;
20349     VkBool32           multiviewPerViewRenderAreas;
20350 } VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
20351 
20352 typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
20353     VkStructureType    sType;
20354     const void*        pNext;
20355     uint32_t           perViewRenderAreaCount;
20356     const VkRect2D*    pPerViewRenderAreas;
20357 } VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
20358 
20359 
20360 
20361 // VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
20362 #define VK_NV_per_stage_descriptor_set 1
20363 #define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
20364 #define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
20365 typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
20366     VkStructureType    sType;
20367     void*              pNext;
20368     VkBool32           perStageDescriptorSet;
20369     VkBool32           dynamicPipelineLayout;
20370 } VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
20371 
20372 
20373 
20374 // VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
20375 #define VK_QCOM_image_processing2 1
20376 #define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
20377 #define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
20378 
20379 typedef enum VkBlockMatchWindowCompareModeQCOM {
20380     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
20381     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
20382     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
20383 } VkBlockMatchWindowCompareModeQCOM;
20384 typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
20385     VkStructureType    sType;
20386     void*              pNext;
20387     VkBool32           textureBlockMatch2;
20388 } VkPhysicalDeviceImageProcessing2FeaturesQCOM;
20389 
20390 typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
20391     VkStructureType    sType;
20392     void*              pNext;
20393     VkExtent2D         maxBlockMatchWindow;
20394 } VkPhysicalDeviceImageProcessing2PropertiesQCOM;
20395 
20396 typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
20397     VkStructureType                      sType;
20398     const void*                          pNext;
20399     VkExtent2D                           windowExtent;
20400     VkBlockMatchWindowCompareModeQCOM    windowCompareMode;
20401 } VkSamplerBlockMatchWindowCreateInfoQCOM;
20402 
20403 
20404 
20405 // VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
20406 #define VK_QCOM_filter_cubic_weights 1
20407 #define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
20408 #define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
20409 
20410 typedef enum VkCubicFilterWeightsQCOM {
20411     VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
20412     VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
20413     VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
20414     VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
20415     VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
20416 } VkCubicFilterWeightsQCOM;
20417 typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
20418     VkStructureType    sType;
20419     void*              pNext;
20420     VkBool32           selectableCubicWeights;
20421 } VkPhysicalDeviceCubicWeightsFeaturesQCOM;
20422 
20423 typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
20424     VkStructureType             sType;
20425     const void*                 pNext;
20426     VkCubicFilterWeightsQCOM    cubicWeights;
20427 } VkSamplerCubicWeightsCreateInfoQCOM;
20428 
20429 typedef struct VkBlitImageCubicWeightsInfoQCOM {
20430     VkStructureType             sType;
20431     const void*                 pNext;
20432     VkCubicFilterWeightsQCOM    cubicWeights;
20433 } VkBlitImageCubicWeightsInfoQCOM;
20434 
20435 
20436 
20437 // VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
20438 #define VK_QCOM_ycbcr_degamma 1
20439 #define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
20440 #define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
20441 typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
20442     VkStructureType    sType;
20443     void*              pNext;
20444     VkBool32           ycbcrDegamma;
20445 } VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
20446 
20447 typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
20448     VkStructureType    sType;
20449     void*              pNext;
20450     VkBool32           enableYDegamma;
20451     VkBool32           enableCbCrDegamma;
20452 } VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
20453 
20454 
20455 
20456 // VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
20457 #define VK_QCOM_filter_cubic_clamp 1
20458 #define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
20459 #define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
20460 typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
20461     VkStructureType    sType;
20462     void*              pNext;
20463     VkBool32           cubicRangeClamp;
20464 } VkPhysicalDeviceCubicClampFeaturesQCOM;
20465 
20466 
20467 
20468 // VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
20469 #define VK_EXT_attachment_feedback_loop_dynamic_state 1
20470 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
20471 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
20472 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
20473     VkStructureType    sType;
20474     void*              pNext;
20475     VkBool32           attachmentFeedbackLoopDynamicState;
20476 } VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
20477 
20478 typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
20479 
20480 #ifndef VK_NO_PROTOTYPES
20481 VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
20482     VkCommandBuffer                             commandBuffer,
20483     VkImageAspectFlags                          aspectMask);
20484 #endif
20485 
20486 
20487 // VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
20488 #define VK_MSFT_layered_driver 1
20489 #define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
20490 #define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
20491 
20492 typedef enum VkLayeredDriverUnderlyingApiMSFT {
20493     VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
20494     VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
20495     VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
20496 } VkLayeredDriverUnderlyingApiMSFT;
20497 typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
20498     VkStructureType                     sType;
20499     void*                               pNext;
20500     VkLayeredDriverUnderlyingApiMSFT    underlyingAPI;
20501 } VkPhysicalDeviceLayeredDriverPropertiesMSFT;
20502 
20503 
20504 
20505 // VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
20506 #define VK_NV_descriptor_pool_overallocation 1
20507 #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
20508 #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
20509 typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
20510     VkStructureType    sType;
20511     void*              pNext;
20512     VkBool32           descriptorPoolOverallocation;
20513 } VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
20514 
20515 
20516 
20517 // VK_NV_display_stereo is a preprocessor guard. Do not pass it to API calls.
20518 #define VK_NV_display_stereo 1
20519 #define VK_NV_DISPLAY_STEREO_SPEC_VERSION 1
20520 #define VK_NV_DISPLAY_STEREO_EXTENSION_NAME "VK_NV_display_stereo"
20521 
20522 typedef enum VkDisplaySurfaceStereoTypeNV {
20523     VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV = 0,
20524     VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV = 1,
20525     VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV = 2,
20526     VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV = 3,
20527     VK_DISPLAY_SURFACE_STEREO_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
20528 } VkDisplaySurfaceStereoTypeNV;
20529 typedef struct VkDisplaySurfaceStereoCreateInfoNV {
20530     VkStructureType                 sType;
20531     const void*                     pNext;
20532     VkDisplaySurfaceStereoTypeNV    stereoType;
20533 } VkDisplaySurfaceStereoCreateInfoNV;
20534 
20535 typedef struct VkDisplayModeStereoPropertiesNV {
20536     VkStructureType    sType;
20537     const void*        pNext;
20538     VkBool32           hdmi3DSupported;
20539 } VkDisplayModeStereoPropertiesNV;
20540 
20541 
20542 
20543 // VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
20544 #define VK_NV_raw_access_chains 1
20545 #define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
20546 #define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
20547 typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
20548     VkStructureType    sType;
20549     void*              pNext;
20550     VkBool32           shaderRawAccessChains;
20551 } VkPhysicalDeviceRawAccessChainsFeaturesNV;
20552 
20553 
20554 
20555 // VK_NV_command_buffer_inheritance is a preprocessor guard. Do not pass it to API calls.
20556 #define VK_NV_command_buffer_inheritance 1
20557 #define VK_NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION 1
20558 #define VK_NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME "VK_NV_command_buffer_inheritance"
20559 typedef struct VkPhysicalDeviceCommandBufferInheritanceFeaturesNV {
20560     VkStructureType    sType;
20561     void*              pNext;
20562     VkBool32           commandBufferInheritance;
20563 } VkPhysicalDeviceCommandBufferInheritanceFeaturesNV;
20564 
20565 
20566 
20567 // VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
20568 #define VK_NV_shader_atomic_float16_vector 1
20569 #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
20570 #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
20571 typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
20572     VkStructureType    sType;
20573     void*              pNext;
20574     VkBool32           shaderFloat16VectorAtomics;
20575 } VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
20576 
20577 
20578 
20579 // VK_EXT_shader_replicated_composites is a preprocessor guard. Do not pass it to API calls.
20580 #define VK_EXT_shader_replicated_composites 1
20581 #define VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION 1
20582 #define VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME "VK_EXT_shader_replicated_composites"
20583 typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
20584     VkStructureType    sType;
20585     void*              pNext;
20586     VkBool32           shaderReplicatedComposites;
20587 } VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT;
20588 
20589 
20590 
20591 // VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls.
20592 #define VK_NV_ray_tracing_validation 1
20593 #define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1
20594 #define VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME "VK_NV_ray_tracing_validation"
20595 typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
20596     VkStructureType    sType;
20597     void*              pNext;
20598     VkBool32           rayTracingValidation;
20599 } VkPhysicalDeviceRayTracingValidationFeaturesNV;
20600 
20601 
20602 
20603 // VK_NV_cluster_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
20604 #define VK_NV_cluster_acceleration_structure 1
20605 #define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION 2
20606 #define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_cluster_acceleration_structure"
20607 
20608 typedef enum VkClusterAccelerationStructureTypeNV {
20609     VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_CLUSTERS_BOTTOM_LEVEL_NV = 0,
20610     VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_NV = 1,
20611     VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_TEMPLATE_NV = 2,
20612     VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
20613 } VkClusterAccelerationStructureTypeNV;
20614 
20615 typedef enum VkClusterAccelerationStructureOpTypeNV {
20616     VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV = 0,
20617     VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV = 1,
20618     VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV = 2,
20619     VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV = 3,
20620     VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV = 4,
20621     VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
20622 } VkClusterAccelerationStructureOpTypeNV;
20623 
20624 typedef enum VkClusterAccelerationStructureOpModeNV {
20625     VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV = 0,
20626     VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV = 1,
20627     VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV = 2,
20628     VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_MAX_ENUM_NV = 0x7FFFFFFF
20629 } VkClusterAccelerationStructureOpModeNV;
20630 
20631 typedef enum VkClusterAccelerationStructureAddressResolutionFlagBitsNV {
20632     VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_IMPLICIT_DATA_BIT_NV = 0x00000001,
20633     VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SCRATCH_DATA_BIT_NV = 0x00000002,
20634     VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_ADDRESS_ARRAY_BIT_NV = 0x00000004,
20635     VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_SIZES_ARRAY_BIT_NV = 0x00000008,
20636     VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_ARRAY_BIT_NV = 0x00000010,
20637     VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_COUNT_BIT_NV = 0x00000020,
20638     VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
20639 } VkClusterAccelerationStructureAddressResolutionFlagBitsNV;
20640 typedef VkFlags VkClusterAccelerationStructureAddressResolutionFlagsNV;
20641 
20642 typedef enum VkClusterAccelerationStructureClusterFlagBitsNV {
20643     VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_ALLOW_DISABLE_OPACITY_MICROMAPS_NV = 0x00000001,
20644     VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
20645 } VkClusterAccelerationStructureClusterFlagBitsNV;
20646 typedef VkFlags VkClusterAccelerationStructureClusterFlagsNV;
20647 
20648 typedef enum VkClusterAccelerationStructureGeometryFlagBitsNV {
20649     VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_CULL_DISABLE_BIT_NV = 0x00000001,
20650     VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_NO_DUPLICATE_ANYHIT_INVOCATION_BIT_NV = 0x00000002,
20651     VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_OPAQUE_BIT_NV = 0x00000004,
20652     VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
20653 } VkClusterAccelerationStructureGeometryFlagBitsNV;
20654 typedef VkFlags VkClusterAccelerationStructureGeometryFlagsNV;
20655 
20656 typedef enum VkClusterAccelerationStructureIndexFormatFlagBitsNV {
20657     VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_8BIT_NV = 0x00000001,
20658     VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_16BIT_NV = 0x00000002,
20659     VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_32BIT_NV = 0x00000004,
20660     VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
20661 } VkClusterAccelerationStructureIndexFormatFlagBitsNV;
20662 typedef VkFlags VkClusterAccelerationStructureIndexFormatFlagsNV;
20663 typedef struct VkPhysicalDeviceClusterAccelerationStructureFeaturesNV {
20664     VkStructureType    sType;
20665     void*              pNext;
20666     VkBool32           clusterAccelerationStructure;
20667 } VkPhysicalDeviceClusterAccelerationStructureFeaturesNV;
20668 
20669 typedef struct VkPhysicalDeviceClusterAccelerationStructurePropertiesNV {
20670     VkStructureType    sType;
20671     void*              pNext;
20672     uint32_t           maxVerticesPerCluster;
20673     uint32_t           maxTrianglesPerCluster;
20674     uint32_t           clusterScratchByteAlignment;
20675     uint32_t           clusterByteAlignment;
20676     uint32_t           clusterTemplateByteAlignment;
20677     uint32_t           clusterBottomLevelByteAlignment;
20678     uint32_t           clusterTemplateBoundsByteAlignment;
20679     uint32_t           maxClusterGeometryIndex;
20680 } VkPhysicalDeviceClusterAccelerationStructurePropertiesNV;
20681 
20682 typedef struct VkClusterAccelerationStructureClustersBottomLevelInputNV {
20683     VkStructureType    sType;
20684     void*              pNext;
20685     uint32_t           maxTotalClusterCount;
20686     uint32_t           maxClusterCountPerAccelerationStructure;
20687 } VkClusterAccelerationStructureClustersBottomLevelInputNV;
20688 
20689 typedef struct VkClusterAccelerationStructureTriangleClusterInputNV {
20690     VkStructureType    sType;
20691     void*              pNext;
20692     VkFormat           vertexFormat;
20693     uint32_t           maxGeometryIndexValue;
20694     uint32_t           maxClusterUniqueGeometryCount;
20695     uint32_t           maxClusterTriangleCount;
20696     uint32_t           maxClusterVertexCount;
20697     uint32_t           maxTotalTriangleCount;
20698     uint32_t           maxTotalVertexCount;
20699     uint32_t           minPositionTruncateBitCount;
20700 } VkClusterAccelerationStructureTriangleClusterInputNV;
20701 
20702 typedef struct VkClusterAccelerationStructureMoveObjectsInputNV {
20703     VkStructureType                         sType;
20704     void*                                   pNext;
20705     VkClusterAccelerationStructureTypeNV    type;
20706     VkBool32                                noMoveOverlap;
20707     VkDeviceSize                            maxMovedBytes;
20708 } VkClusterAccelerationStructureMoveObjectsInputNV;
20709 
20710 typedef union VkClusterAccelerationStructureOpInputNV {
20711     VkClusterAccelerationStructureClustersBottomLevelInputNV*    pClustersBottomLevel;
20712     VkClusterAccelerationStructureTriangleClusterInputNV*        pTriangleClusters;
20713     VkClusterAccelerationStructureMoveObjectsInputNV*            pMoveObjects;
20714 } VkClusterAccelerationStructureOpInputNV;
20715 
20716 typedef struct VkClusterAccelerationStructureInputInfoNV {
20717     VkStructureType                            sType;
20718     void*                                      pNext;
20719     uint32_t                                   maxAccelerationStructureCount;
20720     VkBuildAccelerationStructureFlagsKHR       flags;
20721     VkClusterAccelerationStructureOpTypeNV     opType;
20722     VkClusterAccelerationStructureOpModeNV     opMode;
20723     VkClusterAccelerationStructureOpInputNV    opInput;
20724 } VkClusterAccelerationStructureInputInfoNV;
20725 
20726 typedef struct VkStridedDeviceAddressRegionKHR {
20727     VkDeviceAddress    deviceAddress;
20728     VkDeviceSize       stride;
20729     VkDeviceSize       size;
20730 } VkStridedDeviceAddressRegionKHR;
20731 
20732 typedef struct VkClusterAccelerationStructureCommandsInfoNV {
20733     VkStructureType                                           sType;
20734     void*                                                     pNext;
20735     VkClusterAccelerationStructureInputInfoNV                 input;
20736     VkDeviceAddress                                           dstImplicitData;
20737     VkDeviceAddress                                           scratchData;
20738     VkStridedDeviceAddressRegionKHR                           dstAddressesArray;
20739     VkStridedDeviceAddressRegionKHR                           dstSizesArray;
20740     VkStridedDeviceAddressRegionKHR                           srcInfosArray;
20741     VkDeviceAddress                                           srcInfosCount;
20742     VkClusterAccelerationStructureAddressResolutionFlagsNV    addressResolutionFlags;
20743 } VkClusterAccelerationStructureCommandsInfoNV;
20744 
20745 typedef struct VkStridedDeviceAddressNV {
20746     VkDeviceAddress    startAddress;
20747     VkDeviceSize       strideInBytes;
20748 } VkStridedDeviceAddressNV;
20749 
20750 typedef struct VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
20751     uint32_t    geometryIndex:24;
20752     uint32_t    reserved:5;
20753     uint32_t    geometryFlags:3;
20754 } VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV;
20755 
20756 typedef struct VkClusterAccelerationStructureMoveObjectsInfoNV {
20757     VkDeviceAddress    srcAccelerationStructure;
20758 } VkClusterAccelerationStructureMoveObjectsInfoNV;
20759 
20760 typedef struct VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
20761     uint32_t           clusterReferencesCount;
20762     uint32_t           clusterReferencesStride;
20763     VkDeviceAddress    clusterReferences;
20764 } VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV;
20765 
20766 typedef struct VkClusterAccelerationStructureBuildTriangleClusterInfoNV {
20767     uint32_t                                                         clusterID;
20768     VkClusterAccelerationStructureClusterFlagsNV                     clusterFlags;
20769     uint32_t                                                         triangleCount:9;
20770     uint32_t                                                         vertexCount:9;
20771     uint32_t                                                         positionTruncateBitCount:6;
20772     uint32_t                                                         indexType:4;
20773     uint32_t                                                         opacityMicromapIndexType:4;
20774     VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV    baseGeometryIndexAndGeometryFlags;
20775     uint16_t                                                         indexBufferStride;
20776     uint16_t                                                         vertexBufferStride;
20777     uint16_t                                                         geometryIndexAndFlagsBufferStride;
20778     uint16_t                                                         opacityMicromapIndexBufferStride;
20779     VkDeviceAddress                                                  indexBuffer;
20780     VkDeviceAddress                                                  vertexBuffer;
20781     VkDeviceAddress                                                  geometryIndexAndFlagsBuffer;
20782     VkDeviceAddress                                                  opacityMicromapArray;
20783     VkDeviceAddress                                                  opacityMicromapIndexBuffer;
20784 } VkClusterAccelerationStructureBuildTriangleClusterInfoNV;
20785 
20786 typedef struct VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
20787     uint32_t                                                         clusterID;
20788     VkClusterAccelerationStructureClusterFlagsNV                     clusterFlags;
20789     uint32_t                                                         triangleCount:9;
20790     uint32_t                                                         vertexCount:9;
20791     uint32_t                                                         positionTruncateBitCount:6;
20792     uint32_t                                                         indexType:4;
20793     uint32_t                                                         opacityMicromapIndexType:4;
20794     VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV    baseGeometryIndexAndGeometryFlags;
20795     uint16_t                                                         indexBufferStride;
20796     uint16_t                                                         vertexBufferStride;
20797     uint16_t                                                         geometryIndexAndFlagsBufferStride;
20798     uint16_t                                                         opacityMicromapIndexBufferStride;
20799     VkDeviceAddress                                                  indexBuffer;
20800     VkDeviceAddress                                                  vertexBuffer;
20801     VkDeviceAddress                                                  geometryIndexAndFlagsBuffer;
20802     VkDeviceAddress                                                  opacityMicromapArray;
20803     VkDeviceAddress                                                  opacityMicromapIndexBuffer;
20804     VkDeviceAddress                                                  instantiationBoundingBoxLimit;
20805 } VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV;
20806 
20807 typedef struct VkClusterAccelerationStructureInstantiateClusterInfoNV {
20808     uint32_t                    clusterIdOffset;
20809     uint32_t                    geometryIndexOffset:24;
20810     uint32_t                    reserved:8;
20811     VkDeviceAddress             clusterTemplateAddress;
20812     VkStridedDeviceAddressNV    vertexBuffer;
20813 } VkClusterAccelerationStructureInstantiateClusterInfoNV;
20814 
20815 typedef struct VkAccelerationStructureBuildSizesInfoKHR {
20816     VkStructureType    sType;
20817     const void*        pNext;
20818     VkDeviceSize       accelerationStructureSize;
20819     VkDeviceSize       updateScratchSize;
20820     VkDeviceSize       buildScratchSize;
20821 } VkAccelerationStructureBuildSizesInfoKHR;
20822 
20823 typedef struct VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV {
20824     VkStructureType    sType;
20825     void*              pNext;
20826     VkBool32           allowClusterAccelerationStructure;
20827 } VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV;
20828 
20829 typedef void (VKAPI_PTR *PFN_vkGetClusterAccelerationStructureBuildSizesNV)(VkDevice device, const VkClusterAccelerationStructureInputInfoNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
20830 typedef void (VKAPI_PTR *PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)(VkCommandBuffer                     commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV*  pCommandInfos);
20831 
20832 #ifndef VK_NO_PROTOTYPES
20833 VKAPI_ATTR void VKAPI_CALL vkGetClusterAccelerationStructureBuildSizesNV(
20834     VkDevice                                    device,
20835     const VkClusterAccelerationStructureInputInfoNV* pInfo,
20836     VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo);
20837 
20838 VKAPI_ATTR void VKAPI_CALL vkCmdBuildClusterAccelerationStructureIndirectNV(
20839     VkCommandBuffer                             commandBuffer,
20840     const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
20841 #endif
20842 
20843 
20844 // VK_NV_partitioned_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
20845 #define VK_NV_partitioned_acceleration_structure 1
20846 #define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION 1
20847 #define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_partitioned_acceleration_structure"
20848 #define VK_PARTITIONED_ACCELERATION_STRUCTURE_PARTITION_INDEX_GLOBAL_NV (~0U)
20849 
20850 typedef enum VkPartitionedAccelerationStructureOpTypeNV {
20851     VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_INSTANCE_NV = 0,
20852     VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_UPDATE_INSTANCE_NV = 1,
20853     VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_PARTITION_TRANSLATION_NV = 2,
20854     VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
20855 } VkPartitionedAccelerationStructureOpTypeNV;
20856 
20857 typedef enum VkPartitionedAccelerationStructureInstanceFlagBitsNV {
20858     VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FACING_CULL_DISABLE_BIT_NV = 0x00000001,
20859     VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FLIP_FACING_BIT_NV = 0x00000002,
20860     VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_OPAQUE_BIT_NV = 0x00000004,
20861     VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
20862     VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV = 0x00000010,
20863     VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
20864 } VkPartitionedAccelerationStructureInstanceFlagBitsNV;
20865 typedef VkFlags VkPartitionedAccelerationStructureInstanceFlagsNV;
20866 typedef struct VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV {
20867     VkStructureType    sType;
20868     void*              pNext;
20869     VkBool32           partitionedAccelerationStructure;
20870 } VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV;
20871 
20872 typedef struct VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV {
20873     VkStructureType    sType;
20874     void*              pNext;
20875     uint32_t           maxPartitionCount;
20876 } VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV;
20877 
20878 typedef struct VkPartitionedAccelerationStructureFlagsNV {
20879     VkStructureType    sType;
20880     void*              pNext;
20881     VkBool32           enablePartitionTranslation;
20882 } VkPartitionedAccelerationStructureFlagsNV;
20883 
20884 typedef struct VkBuildPartitionedAccelerationStructureIndirectCommandNV {
20885     VkPartitionedAccelerationStructureOpTypeNV    opType;
20886     uint32_t                                      argCount;
20887     VkStridedDeviceAddressNV                      argData;
20888 } VkBuildPartitionedAccelerationStructureIndirectCommandNV;
20889 
20890 typedef struct VkPartitionedAccelerationStructureWriteInstanceDataNV {
20891     VkTransformMatrixKHR                                 transform;
20892     float                                                explicitAABB[6];
20893     uint32_t                                             instanceID;
20894     uint32_t                                             instanceMask;
20895     uint32_t                                             instanceContributionToHitGroupIndex;
20896     VkPartitionedAccelerationStructureInstanceFlagsNV    instanceFlags;
20897     uint32_t                                             instanceIndex;
20898     uint32_t                                             partitionIndex;
20899     VkDeviceAddress                                      accelerationStructure;
20900 } VkPartitionedAccelerationStructureWriteInstanceDataNV;
20901 
20902 typedef struct VkPartitionedAccelerationStructureUpdateInstanceDataNV {
20903     uint32_t           instanceIndex;
20904     uint32_t           instanceContributionToHitGroupIndex;
20905     VkDeviceAddress    accelerationStructure;
20906 } VkPartitionedAccelerationStructureUpdateInstanceDataNV;
20907 
20908 typedef struct VkPartitionedAccelerationStructureWritePartitionTranslationDataNV {
20909     uint32_t    partitionIndex;
20910     float       partitionTranslation[3];
20911 } VkPartitionedAccelerationStructureWritePartitionTranslationDataNV;
20912 
20913 typedef struct VkWriteDescriptorSetPartitionedAccelerationStructureNV {
20914     VkStructureType           sType;
20915     void*                     pNext;
20916     uint32_t                  accelerationStructureCount;
20917     const VkDeviceAddress*    pAccelerationStructures;
20918 } VkWriteDescriptorSetPartitionedAccelerationStructureNV;
20919 
20920 typedef struct VkPartitionedAccelerationStructureInstancesInputNV {
20921     VkStructureType                         sType;
20922     void*                                   pNext;
20923     VkBuildAccelerationStructureFlagsKHR    flags;
20924     uint32_t                                instanceCount;
20925     uint32_t                                maxInstancePerPartitionCount;
20926     uint32_t                                partitionCount;
20927     uint32_t                                maxInstanceInGlobalPartitionCount;
20928 } VkPartitionedAccelerationStructureInstancesInputNV;
20929 
20930 typedef struct VkBuildPartitionedAccelerationStructureInfoNV {
20931     VkStructureType                                       sType;
20932     void*                                                 pNext;
20933     VkPartitionedAccelerationStructureInstancesInputNV    input;
20934     VkDeviceAddress                                       srcAccelerationStructureData;
20935     VkDeviceAddress                                       dstAccelerationStructureData;
20936     VkDeviceAddress                                       scratchData;
20937     VkDeviceAddress                                       srcInfos;
20938     VkDeviceAddress                                       srcInfosCount;
20939 } VkBuildPartitionedAccelerationStructureInfoNV;
20940 
20941 typedef void (VKAPI_PTR *PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)(VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR*                  pSizeInfo);
20942 typedef void (VKAPI_PTR *PFN_vkCmdBuildPartitionedAccelerationStructuresNV)(VkCommandBuffer                     commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV*  pBuildInfo);
20943 
20944 #ifndef VK_NO_PROTOTYPES
20945 VKAPI_ATTR void VKAPI_CALL vkGetPartitionedAccelerationStructuresBuildSizesNV(
20946     VkDevice                                    device,
20947     const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
20948     VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo);
20949 
20950 VKAPI_ATTR void VKAPI_CALL vkCmdBuildPartitionedAccelerationStructuresNV(
20951     VkCommandBuffer                             commandBuffer,
20952     const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
20953 #endif
20954 
20955 
20956 // VK_EXT_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
20957 #define VK_EXT_device_generated_commands 1
20958 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectExecutionSetEXT)
20959 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutEXT)
20960 #define VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
20961 #define VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_EXT_device_generated_commands"
20962 
20963 typedef enum VkIndirectExecutionSetInfoTypeEXT {
20964     VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT = 0,
20965     VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT = 1,
20966     VK_INDIRECT_EXECUTION_SET_INFO_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
20967 } VkIndirectExecutionSetInfoTypeEXT;
20968 
20969 typedef enum VkIndirectCommandsTokenTypeEXT {
20970     VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT = 0,
20971     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT = 1,
20972     VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT = 2,
20973     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT = 3,
20974     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT = 4,
20975     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT = 5,
20976     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT = 6,
20977     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT = 7,
20978     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT = 8,
20979     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT = 9,
20980     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT = 1000202002,
20981     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT = 1000202003,
20982     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT = 1000328000,
20983     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT = 1000328001,
20984     VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT = 1000386004,
20985     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
20986 } VkIndirectCommandsTokenTypeEXT;
20987 
20988 typedef enum VkIndirectCommandsInputModeFlagBitsEXT {
20989     VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT = 0x00000001,
20990     VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT = 0x00000002,
20991     VK_INDIRECT_COMMANDS_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20992 } VkIndirectCommandsInputModeFlagBitsEXT;
20993 typedef VkFlags VkIndirectCommandsInputModeFlagsEXT;
20994 
20995 typedef enum VkIndirectCommandsLayoutUsageFlagBitsEXT {
20996     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT = 0x00000001,
20997     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT = 0x00000002,
20998     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20999 } VkIndirectCommandsLayoutUsageFlagBitsEXT;
21000 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;
21001 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
21002     VkStructureType    sType;
21003     void*              pNext;
21004     VkBool32           deviceGeneratedCommands;
21005     VkBool32           dynamicGeneratedPipelineLayout;
21006 } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
21007 
21008 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
21009     VkStructureType                        sType;
21010     void*                                  pNext;
21011     uint32_t                               maxIndirectPipelineCount;
21012     uint32_t                               maxIndirectShaderObjectCount;
21013     uint32_t                               maxIndirectSequenceCount;
21014     uint32_t                               maxIndirectCommandsTokenCount;
21015     uint32_t                               maxIndirectCommandsTokenOffset;
21016     uint32_t                               maxIndirectCommandsIndirectStride;
21017     VkIndirectCommandsInputModeFlagsEXT    supportedIndirectCommandsInputModes;
21018     VkShaderStageFlags                     supportedIndirectCommandsShaderStages;
21019     VkShaderStageFlags                     supportedIndirectCommandsShaderStagesPipelineBinding;
21020     VkShaderStageFlags                     supportedIndirectCommandsShaderStagesShaderBinding;
21021     VkBool32                               deviceGeneratedCommandsTransformFeedback;
21022     VkBool32                               deviceGeneratedCommandsMultiDrawIndirectCount;
21023 } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
21024 
21025 typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
21026     VkStructureType                sType;
21027     const void*                    pNext;
21028     VkIndirectExecutionSetEXT      indirectExecutionSet;
21029     VkIndirectCommandsLayoutEXT    indirectCommandsLayout;
21030     uint32_t                       maxSequenceCount;
21031     uint32_t                       maxDrawCount;
21032 } VkGeneratedCommandsMemoryRequirementsInfoEXT;
21033 
21034 typedef struct VkIndirectExecutionSetPipelineInfoEXT {
21035     VkStructureType    sType;
21036     const void*        pNext;
21037     VkPipeline         initialPipeline;
21038     uint32_t           maxPipelineCount;
21039 } VkIndirectExecutionSetPipelineInfoEXT;
21040 
21041 typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT {
21042     VkStructureType                 sType;
21043     const void*                     pNext;
21044     uint32_t                        setLayoutCount;
21045     const VkDescriptorSetLayout*    pSetLayouts;
21046 } VkIndirectExecutionSetShaderLayoutInfoEXT;
21047 
21048 typedef struct VkIndirectExecutionSetShaderInfoEXT {
21049     VkStructureType                                     sType;
21050     const void*                                         pNext;
21051     uint32_t                                            shaderCount;
21052     const VkShaderEXT*                                  pInitialShaders;
21053     const VkIndirectExecutionSetShaderLayoutInfoEXT*    pSetLayoutInfos;
21054     uint32_t                                            maxShaderCount;
21055     uint32_t                                            pushConstantRangeCount;
21056     const VkPushConstantRange*                          pPushConstantRanges;
21057 } VkIndirectExecutionSetShaderInfoEXT;
21058 
21059 typedef union VkIndirectExecutionSetInfoEXT {
21060     const VkIndirectExecutionSetPipelineInfoEXT*    pPipelineInfo;
21061     const VkIndirectExecutionSetShaderInfoEXT*      pShaderInfo;
21062 } VkIndirectExecutionSetInfoEXT;
21063 
21064 typedef struct VkIndirectExecutionSetCreateInfoEXT {
21065     VkStructureType                      sType;
21066     const void*                          pNext;
21067     VkIndirectExecutionSetInfoTypeEXT    type;
21068     VkIndirectExecutionSetInfoEXT        info;
21069 } VkIndirectExecutionSetCreateInfoEXT;
21070 
21071 typedef struct VkGeneratedCommandsInfoEXT {
21072     VkStructureType                sType;
21073     const void*                    pNext;
21074     VkShaderStageFlags             shaderStages;
21075     VkIndirectExecutionSetEXT      indirectExecutionSet;
21076     VkIndirectCommandsLayoutEXT    indirectCommandsLayout;
21077     VkDeviceAddress                indirectAddress;
21078     VkDeviceSize                   indirectAddressSize;
21079     VkDeviceAddress                preprocessAddress;
21080     VkDeviceSize                   preprocessSize;
21081     uint32_t                       maxSequenceCount;
21082     VkDeviceAddress                sequenceCountAddress;
21083     uint32_t                       maxDrawCount;
21084 } VkGeneratedCommandsInfoEXT;
21085 
21086 typedef struct VkWriteIndirectExecutionSetPipelineEXT {
21087     VkStructureType    sType;
21088     const void*        pNext;
21089     uint32_t           index;
21090     VkPipeline         pipeline;
21091 } VkWriteIndirectExecutionSetPipelineEXT;
21092 
21093 typedef struct VkIndirectCommandsPushConstantTokenEXT {
21094     VkPushConstantRange    updateRange;
21095 } VkIndirectCommandsPushConstantTokenEXT;
21096 
21097 typedef struct VkIndirectCommandsVertexBufferTokenEXT {
21098     uint32_t    vertexBindingUnit;
21099 } VkIndirectCommandsVertexBufferTokenEXT;
21100 
21101 typedef struct VkIndirectCommandsIndexBufferTokenEXT {
21102     VkIndirectCommandsInputModeFlagBitsEXT    mode;
21103 } VkIndirectCommandsIndexBufferTokenEXT;
21104 
21105 typedef struct VkIndirectCommandsExecutionSetTokenEXT {
21106     VkIndirectExecutionSetInfoTypeEXT    type;
21107     VkShaderStageFlags                   shaderStages;
21108 } VkIndirectCommandsExecutionSetTokenEXT;
21109 
21110 typedef union VkIndirectCommandsTokenDataEXT {
21111     const VkIndirectCommandsPushConstantTokenEXT*    pPushConstant;
21112     const VkIndirectCommandsVertexBufferTokenEXT*    pVertexBuffer;
21113     const VkIndirectCommandsIndexBufferTokenEXT*     pIndexBuffer;
21114     const VkIndirectCommandsExecutionSetTokenEXT*    pExecutionSet;
21115 } VkIndirectCommandsTokenDataEXT;
21116 
21117 typedef struct VkIndirectCommandsLayoutTokenEXT {
21118     VkStructureType                   sType;
21119     const void*                       pNext;
21120     VkIndirectCommandsTokenTypeEXT    type;
21121     VkIndirectCommandsTokenDataEXT    data;
21122     uint32_t                          offset;
21123 } VkIndirectCommandsLayoutTokenEXT;
21124 
21125 typedef struct VkIndirectCommandsLayoutCreateInfoEXT {
21126     VkStructureType                            sType;
21127     const void*                                pNext;
21128     VkIndirectCommandsLayoutUsageFlagsEXT      flags;
21129     VkShaderStageFlags                         shaderStages;
21130     uint32_t                                   indirectStride;
21131     VkPipelineLayout                           pipelineLayout;
21132     uint32_t                                   tokenCount;
21133     const VkIndirectCommandsLayoutTokenEXT*    pTokens;
21134 } VkIndirectCommandsLayoutCreateInfoEXT;
21135 
21136 typedef struct VkDrawIndirectCountIndirectCommandEXT {
21137     VkDeviceAddress    bufferAddress;
21138     uint32_t           stride;
21139     uint32_t           commandCount;
21140 } VkDrawIndirectCountIndirectCommandEXT;
21141 
21142 typedef struct VkBindVertexBufferIndirectCommandEXT {
21143     VkDeviceAddress    bufferAddress;
21144     uint32_t           size;
21145     uint32_t           stride;
21146 } VkBindVertexBufferIndirectCommandEXT;
21147 
21148 typedef struct VkBindIndexBufferIndirectCommandEXT {
21149     VkDeviceAddress    bufferAddress;
21150     uint32_t           size;
21151     VkIndexType        indexType;
21152 } VkBindIndexBufferIndirectCommandEXT;
21153 
21154 typedef struct VkGeneratedCommandsPipelineInfoEXT {
21155     VkStructureType    sType;
21156     void*              pNext;
21157     VkPipeline         pipeline;
21158 } VkGeneratedCommandsPipelineInfoEXT;
21159 
21160 typedef struct VkGeneratedCommandsShaderInfoEXT {
21161     VkStructureType       sType;
21162     void*                 pNext;
21163     uint32_t              shaderCount;
21164     const VkShaderEXT*    pShaders;
21165 } VkGeneratedCommandsShaderInfoEXT;
21166 
21167 typedef struct VkWriteIndirectExecutionSetShaderEXT {
21168     VkStructureType    sType;
21169     const void*        pNext;
21170     uint32_t           index;
21171     VkShaderEXT        shader;
21172 } VkWriteIndirectExecutionSetShaderEXT;
21173 
21174 typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements);
21175 typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo, VkCommandBuffer stateCommandBuffer);
21176 typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
21177 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutEXT)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
21178 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutEXT)(VkDevice device, VkIndirectCommandsLayoutEXT indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
21179 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectExecutionSetEXT)(VkDevice device, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectExecutionSetEXT* pIndirectExecutionSet);
21180 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectExecutionSetEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, const VkAllocationCallbacks* pAllocator);
21181 typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetPipelineEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
21182 typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetShaderEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
21183 
21184 #ifndef VK_NO_PROTOTYPES
21185 VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsEXT(
21186     VkDevice                                    device,
21187     const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
21188     VkMemoryRequirements2*                      pMemoryRequirements);
21189 
21190 VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsEXT(
21191     VkCommandBuffer                             commandBuffer,
21192     const VkGeneratedCommandsInfoEXT*           pGeneratedCommandsInfo,
21193     VkCommandBuffer                             stateCommandBuffer);
21194 
21195 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsEXT(
21196     VkCommandBuffer                             commandBuffer,
21197     VkBool32                                    isPreprocessed,
21198     const VkGeneratedCommandsInfoEXT*           pGeneratedCommandsInfo);
21199 
21200 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutEXT(
21201     VkDevice                                    device,
21202     const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
21203     const VkAllocationCallbacks*                pAllocator,
21204     VkIndirectCommandsLayoutEXT*                pIndirectCommandsLayout);
21205 
21206 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutEXT(
21207     VkDevice                                    device,
21208     VkIndirectCommandsLayoutEXT                 indirectCommandsLayout,
21209     const VkAllocationCallbacks*                pAllocator);
21210 
21211 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectExecutionSetEXT(
21212     VkDevice                                    device,
21213     const VkIndirectExecutionSetCreateInfoEXT*  pCreateInfo,
21214     const VkAllocationCallbacks*                pAllocator,
21215     VkIndirectExecutionSetEXT*                  pIndirectExecutionSet);
21216 
21217 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectExecutionSetEXT(
21218     VkDevice                                    device,
21219     VkIndirectExecutionSetEXT                   indirectExecutionSet,
21220     const VkAllocationCallbacks*                pAllocator);
21221 
21222 VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetPipelineEXT(
21223     VkDevice                                    device,
21224     VkIndirectExecutionSetEXT                   indirectExecutionSet,
21225     uint32_t                                    executionSetWriteCount,
21226     const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
21227 
21228 VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetShaderEXT(
21229     VkDevice                                    device,
21230     VkIndirectExecutionSetEXT                   indirectExecutionSet,
21231     uint32_t                                    executionSetWriteCount,
21232     const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
21233 #endif
21234 
21235 
21236 // VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
21237 #define VK_MESA_image_alignment_control 1
21238 #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
21239 #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME "VK_MESA_image_alignment_control"
21240 typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA {
21241     VkStructureType    sType;
21242     void*              pNext;
21243     VkBool32           imageAlignmentControl;
21244 } VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
21245 
21246 typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA {
21247     VkStructureType    sType;
21248     void*              pNext;
21249     uint32_t           supportedImageAlignmentMask;
21250 } VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
21251 
21252 typedef struct VkImageAlignmentControlCreateInfoMESA {
21253     VkStructureType    sType;
21254     const void*        pNext;
21255     uint32_t           maximumRequestedAlignment;
21256 } VkImageAlignmentControlCreateInfoMESA;
21257 
21258 
21259 
21260 // VK_EXT_depth_clamp_control is a preprocessor guard. Do not pass it to API calls.
21261 #define VK_EXT_depth_clamp_control 1
21262 #define VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION 1
21263 #define VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clamp_control"
21264 typedef struct VkPhysicalDeviceDepthClampControlFeaturesEXT {
21265     VkStructureType    sType;
21266     void*              pNext;
21267     VkBool32           depthClampControl;
21268 } VkPhysicalDeviceDepthClampControlFeaturesEXT;
21269 
21270 typedef struct VkPipelineViewportDepthClampControlCreateInfoEXT {
21271     VkStructureType                sType;
21272     const void*                    pNext;
21273     VkDepthClampModeEXT            depthClampMode;
21274     const VkDepthClampRangeEXT*    pDepthClampRange;
21275 } VkPipelineViewportDepthClampControlCreateInfoEXT;
21276 
21277 
21278 
21279 // VK_HUAWEI_hdr_vivid is a preprocessor guard. Do not pass it to API calls.
21280 #define VK_HUAWEI_hdr_vivid 1
21281 #define VK_HUAWEI_HDR_VIVID_SPEC_VERSION  1
21282 #define VK_HUAWEI_HDR_VIVID_EXTENSION_NAME "VK_HUAWEI_hdr_vivid"
21283 typedef struct VkPhysicalDeviceHdrVividFeaturesHUAWEI {
21284     VkStructureType    sType;
21285     void*              pNext;
21286     VkBool32           hdrVivid;
21287 } VkPhysicalDeviceHdrVividFeaturesHUAWEI;
21288 
21289 typedef struct VkHdrVividDynamicMetadataHUAWEI {
21290     VkStructureType    sType;
21291     const void*        pNext;
21292     size_t             dynamicMetadataSize;
21293     const void*        pDynamicMetadata;
21294 } VkHdrVividDynamicMetadataHUAWEI;
21295 
21296 
21297 
21298 // VK_NV_cooperative_matrix2 is a preprocessor guard. Do not pass it to API calls.
21299 #define VK_NV_cooperative_matrix2 1
21300 #define VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION 1
21301 #define VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME "VK_NV_cooperative_matrix2"
21302 typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV {
21303     VkStructureType       sType;
21304     void*                 pNext;
21305     uint32_t              MGranularity;
21306     uint32_t              NGranularity;
21307     uint32_t              KGranularity;
21308     VkComponentTypeKHR    AType;
21309     VkComponentTypeKHR    BType;
21310     VkComponentTypeKHR    CType;
21311     VkComponentTypeKHR    ResultType;
21312     VkBool32              saturatingAccumulation;
21313     VkScopeKHR            scope;
21314     uint32_t              workgroupInvocations;
21315 } VkCooperativeMatrixFlexibleDimensionsPropertiesNV;
21316 
21317 typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV {
21318     VkStructureType    sType;
21319     void*              pNext;
21320     VkBool32           cooperativeMatrixWorkgroupScope;
21321     VkBool32           cooperativeMatrixFlexibleDimensions;
21322     VkBool32           cooperativeMatrixReductions;
21323     VkBool32           cooperativeMatrixConversions;
21324     VkBool32           cooperativeMatrixPerElementOperations;
21325     VkBool32           cooperativeMatrixTensorAddressing;
21326     VkBool32           cooperativeMatrixBlockLoads;
21327 } VkPhysicalDeviceCooperativeMatrix2FeaturesNV;
21328 
21329 typedef struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV {
21330     VkStructureType    sType;
21331     void*              pNext;
21332     uint32_t           cooperativeMatrixWorkgroupScopeMaxWorkgroupSize;
21333     uint32_t           cooperativeMatrixFlexibleDimensionsMaxDimension;
21334     uint32_t           cooperativeMatrixWorkgroupScopeReservedSharedMemory;
21335 } VkPhysicalDeviceCooperativeMatrix2PropertiesNV;
21336 
21337 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
21338 
21339 #ifndef VK_NO_PROTOTYPES
21340 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
21341     VkPhysicalDevice                            physicalDevice,
21342     uint32_t*                                   pPropertyCount,
21343     VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
21344 #endif
21345 
21346 
21347 // VK_ARM_pipeline_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
21348 #define VK_ARM_pipeline_opacity_micromap 1
21349 #define VK_ARM_PIPELINE_OPACITY_MICROMAP_SPEC_VERSION 1
21350 #define VK_ARM_PIPELINE_OPACITY_MICROMAP_EXTENSION_NAME "VK_ARM_pipeline_opacity_micromap"
21351 typedef struct VkPhysicalDevicePipelineOpacityMicromapFeaturesARM {
21352     VkStructureType    sType;
21353     void*              pNext;
21354     VkBool32           pipelineOpacityMicromap;
21355 } VkPhysicalDevicePipelineOpacityMicromapFeaturesARM;
21356 
21357 
21358 
21359 // VK_EXT_vertex_attribute_robustness is a preprocessor guard. Do not pass it to API calls.
21360 #define VK_EXT_vertex_attribute_robustness 1
21361 #define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION 1
21362 #define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_vertex_attribute_robustness"
21363 typedef struct VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
21364     VkStructureType    sType;
21365     void*              pNext;
21366     VkBool32           vertexAttributeRobustness;
21367 } VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT;
21368 
21369 
21370 
21371 // VK_NV_present_metering is a preprocessor guard. Do not pass it to API calls.
21372 #define VK_NV_present_metering 1
21373 #define VK_NV_PRESENT_METERING_SPEC_VERSION 1
21374 #define VK_NV_PRESENT_METERING_EXTENSION_NAME "VK_NV_present_metering"
21375 typedef struct VkSetPresentConfigNV {
21376     VkStructureType    sType;
21377     const void*        pNext;
21378     uint32_t           numFramesPerBatch;
21379     uint32_t           presentConfigFeedback;
21380 } VkSetPresentConfigNV;
21381 
21382 typedef struct VkPhysicalDevicePresentMeteringFeaturesNV {
21383     VkStructureType    sType;
21384     void*              pNext;
21385     VkBool32           presentMetering;
21386 } VkPhysicalDevicePresentMeteringFeaturesNV;
21387 
21388 
21389 
21390 // VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
21391 #define VK_KHR_acceleration_structure 1
21392 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
21393 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
21394 
21395 typedef enum VkBuildAccelerationStructureModeKHR {
21396     VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
21397     VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
21398     VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
21399 } VkBuildAccelerationStructureModeKHR;
21400 
21401 typedef enum VkAccelerationStructureCreateFlagBitsKHR {
21402     VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
21403     VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
21404     VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
21405     VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
21406 } VkAccelerationStructureCreateFlagBitsKHR;
21407 typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
21408 typedef struct VkAccelerationStructureBuildRangeInfoKHR {
21409     uint32_t    primitiveCount;
21410     uint32_t    primitiveOffset;
21411     uint32_t    firstVertex;
21412     uint32_t    transformOffset;
21413 } VkAccelerationStructureBuildRangeInfoKHR;
21414 
21415 typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
21416     VkStructureType                  sType;
21417     const void*                      pNext;
21418     VkFormat                         vertexFormat;
21419     VkDeviceOrHostAddressConstKHR    vertexData;
21420     VkDeviceSize                     vertexStride;
21421     uint32_t                         maxVertex;
21422     VkIndexType                      indexType;
21423     VkDeviceOrHostAddressConstKHR    indexData;
21424     VkDeviceOrHostAddressConstKHR    transformData;
21425 } VkAccelerationStructureGeometryTrianglesDataKHR;
21426 
21427 typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
21428     VkStructureType                  sType;
21429     const void*                      pNext;
21430     VkDeviceOrHostAddressConstKHR    data;
21431     VkDeviceSize                     stride;
21432 } VkAccelerationStructureGeometryAabbsDataKHR;
21433 
21434 typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
21435     VkStructureType                  sType;
21436     const void*                      pNext;
21437     VkBool32                         arrayOfPointers;
21438     VkDeviceOrHostAddressConstKHR    data;
21439 } VkAccelerationStructureGeometryInstancesDataKHR;
21440 
21441 typedef union VkAccelerationStructureGeometryDataKHR {
21442     VkAccelerationStructureGeometryTrianglesDataKHR    triangles;
21443     VkAccelerationStructureGeometryAabbsDataKHR        aabbs;
21444     VkAccelerationStructureGeometryInstancesDataKHR    instances;
21445 } VkAccelerationStructureGeometryDataKHR;
21446 
21447 typedef struct VkAccelerationStructureGeometryKHR {
21448     VkStructureType                           sType;
21449     const void*                               pNext;
21450     VkGeometryTypeKHR                         geometryType;
21451     VkAccelerationStructureGeometryDataKHR    geometry;
21452     VkGeometryFlagsKHR                        flags;
21453 } VkAccelerationStructureGeometryKHR;
21454 
21455 typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
21456     VkStructureType                                     sType;
21457     const void*                                         pNext;
21458     VkAccelerationStructureTypeKHR                      type;
21459     VkBuildAccelerationStructureFlagsKHR                flags;
21460     VkBuildAccelerationStructureModeKHR                 mode;
21461     VkAccelerationStructureKHR                          srcAccelerationStructure;
21462     VkAccelerationStructureKHR                          dstAccelerationStructure;
21463     uint32_t                                            geometryCount;
21464     const VkAccelerationStructureGeometryKHR*           pGeometries;
21465     const VkAccelerationStructureGeometryKHR* const*    ppGeometries;
21466     VkDeviceOrHostAddressKHR                            scratchData;
21467 } VkAccelerationStructureBuildGeometryInfoKHR;
21468 
21469 typedef struct VkAccelerationStructureCreateInfoKHR {
21470     VkStructureType                          sType;
21471     const void*                              pNext;
21472     VkAccelerationStructureCreateFlagsKHR    createFlags;
21473     VkBuffer                                 buffer;
21474     VkDeviceSize                             offset;
21475     VkDeviceSize                             size;
21476     VkAccelerationStructureTypeKHR           type;
21477     VkDeviceAddress                          deviceAddress;
21478 } VkAccelerationStructureCreateInfoKHR;
21479 
21480 typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
21481     VkStructureType                      sType;
21482     const void*                          pNext;
21483     uint32_t                             accelerationStructureCount;
21484     const VkAccelerationStructureKHR*    pAccelerationStructures;
21485 } VkWriteDescriptorSetAccelerationStructureKHR;
21486 
21487 typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
21488     VkStructureType    sType;
21489     void*              pNext;
21490     VkBool32           accelerationStructure;
21491     VkBool32           accelerationStructureCaptureReplay;
21492     VkBool32           accelerationStructureIndirectBuild;
21493     VkBool32           accelerationStructureHostCommands;
21494     VkBool32           descriptorBindingAccelerationStructureUpdateAfterBind;
21495 } VkPhysicalDeviceAccelerationStructureFeaturesKHR;
21496 
21497 typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
21498     VkStructureType    sType;
21499     void*              pNext;
21500     uint64_t           maxGeometryCount;
21501     uint64_t           maxInstanceCount;
21502     uint64_t           maxPrimitiveCount;
21503     uint32_t           maxPerStageDescriptorAccelerationStructures;
21504     uint32_t           maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
21505     uint32_t           maxDescriptorSetAccelerationStructures;
21506     uint32_t           maxDescriptorSetUpdateAfterBindAccelerationStructures;
21507     uint32_t           minAccelerationStructureScratchOffsetAlignment;
21508 } VkPhysicalDeviceAccelerationStructurePropertiesKHR;
21509 
21510 typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
21511     VkStructureType               sType;
21512     const void*                   pNext;
21513     VkAccelerationStructureKHR    accelerationStructure;
21514 } VkAccelerationStructureDeviceAddressInfoKHR;
21515 
21516 typedef struct VkAccelerationStructureVersionInfoKHR {
21517     VkStructureType    sType;
21518     const void*        pNext;
21519     const uint8_t*     pVersionData;
21520 } VkAccelerationStructureVersionInfoKHR;
21521 
21522 typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
21523     VkStructureType                       sType;
21524     const void*                           pNext;
21525     VkAccelerationStructureKHR            src;
21526     VkDeviceOrHostAddressKHR              dst;
21527     VkCopyAccelerationStructureModeKHR    mode;
21528 } VkCopyAccelerationStructureToMemoryInfoKHR;
21529 
21530 typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
21531     VkStructureType                       sType;
21532     const void*                           pNext;
21533     VkDeviceOrHostAddressConstKHR         src;
21534     VkAccelerationStructureKHR            dst;
21535     VkCopyAccelerationStructureModeKHR    mode;
21536 } VkCopyMemoryToAccelerationStructureInfoKHR;
21537 
21538 typedef struct VkCopyAccelerationStructureInfoKHR {
21539     VkStructureType                       sType;
21540     const void*                           pNext;
21541     VkAccelerationStructureKHR            src;
21542     VkAccelerationStructureKHR            dst;
21543     VkCopyAccelerationStructureModeKHR    mode;
21544 } VkCopyAccelerationStructureInfoKHR;
21545 
21546 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure);
21547 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
21548 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
21549 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);
21550 typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
21551 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
21552 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
21553 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
21554 typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
21555 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
21556 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
21557 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
21558 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
21559 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
21560 typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
21561 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkAccelerationStructureBuildGeometryInfoKHR*  pBuildInfo, const uint32_t*  pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR*           pSizeInfo);
21562 
21563 #ifndef VK_NO_PROTOTYPES
21564 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
21565     VkDevice                                    device,
21566     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
21567     const VkAllocationCallbacks*                pAllocator,
21568     VkAccelerationStructureKHR*                 pAccelerationStructure);
21569 
21570 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
21571     VkDevice                                    device,
21572     VkAccelerationStructureKHR                  accelerationStructure,
21573     const VkAllocationCallbacks*                pAllocator);
21574 
21575 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
21576     VkCommandBuffer                             commandBuffer,
21577     uint32_t                                    infoCount,
21578     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
21579     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
21580 
21581 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
21582     VkCommandBuffer                             commandBuffer,
21583     uint32_t                                    infoCount,
21584     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
21585     const VkDeviceAddress*                      pIndirectDeviceAddresses,
21586     const uint32_t*                             pIndirectStrides,
21587     const uint32_t* const*                      ppMaxPrimitiveCounts);
21588 
21589 VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
21590     VkDevice                                    device,
21591     VkDeferredOperationKHR                      deferredOperation,
21592     uint32_t                                    infoCount,
21593     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
21594     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
21595 
21596 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
21597     VkDevice                                    device,
21598     VkDeferredOperationKHR                      deferredOperation,
21599     const VkCopyAccelerationStructureInfoKHR*   pInfo);
21600 
21601 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
21602     VkDevice                                    device,
21603     VkDeferredOperationKHR                      deferredOperation,
21604     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
21605 
21606 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
21607     VkDevice                                    device,
21608     VkDeferredOperationKHR                      deferredOperation,
21609     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
21610 
21611 VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
21612     VkDevice                                    device,
21613     uint32_t                                    accelerationStructureCount,
21614     const VkAccelerationStructureKHR*           pAccelerationStructures,
21615     VkQueryType                                 queryType,
21616     size_t                                      dataSize,
21617     void*                                       pData,
21618     size_t                                      stride);
21619 
21620 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
21621     VkCommandBuffer                             commandBuffer,
21622     const VkCopyAccelerationStructureInfoKHR*   pInfo);
21623 
21624 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
21625     VkCommandBuffer                             commandBuffer,
21626     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
21627 
21628 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
21629     VkCommandBuffer                             commandBuffer,
21630     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
21631 
21632 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
21633     VkDevice                                    device,
21634     const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
21635 
21636 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
21637     VkCommandBuffer                             commandBuffer,
21638     uint32_t                                    accelerationStructureCount,
21639     const VkAccelerationStructureKHR*           pAccelerationStructures,
21640     VkQueryType                                 queryType,
21641     VkQueryPool                                 queryPool,
21642     uint32_t                                    firstQuery);
21643 
21644 VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
21645     VkDevice                                    device,
21646     const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
21647     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
21648 
21649 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
21650     VkDevice                                    device,
21651     VkAccelerationStructureBuildTypeKHR         buildType,
21652     const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
21653     const uint32_t*                             pMaxPrimitiveCounts,
21654     VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo);
21655 #endif
21656 
21657 
21658 // VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
21659 #define VK_KHR_ray_tracing_pipeline 1
21660 #define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
21661 #define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
21662 
21663 typedef enum VkShaderGroupShaderKHR {
21664     VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
21665     VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
21666     VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
21667     VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
21668     VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
21669 } VkShaderGroupShaderKHR;
21670 typedef struct VkRayTracingShaderGroupCreateInfoKHR {
21671     VkStructureType                   sType;
21672     const void*                       pNext;
21673     VkRayTracingShaderGroupTypeKHR    type;
21674     uint32_t                          generalShader;
21675     uint32_t                          closestHitShader;
21676     uint32_t                          anyHitShader;
21677     uint32_t                          intersectionShader;
21678     const void*                       pShaderGroupCaptureReplayHandle;
21679 } VkRayTracingShaderGroupCreateInfoKHR;
21680 
21681 typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
21682     VkStructureType    sType;
21683     const void*        pNext;
21684     uint32_t           maxPipelineRayPayloadSize;
21685     uint32_t           maxPipelineRayHitAttributeSize;
21686 } VkRayTracingPipelineInterfaceCreateInfoKHR;
21687 
21688 typedef struct VkRayTracingPipelineCreateInfoKHR {
21689     VkStructureType                                      sType;
21690     const void*                                          pNext;
21691     VkPipelineCreateFlags                                flags;
21692     uint32_t                                             stageCount;
21693     const VkPipelineShaderStageCreateInfo*               pStages;
21694     uint32_t                                             groupCount;
21695     const VkRayTracingShaderGroupCreateInfoKHR*          pGroups;
21696     uint32_t                                             maxPipelineRayRecursionDepth;
21697     const VkPipelineLibraryCreateInfoKHR*                pLibraryInfo;
21698     const VkRayTracingPipelineInterfaceCreateInfoKHR*    pLibraryInterface;
21699     const VkPipelineDynamicStateCreateInfo*              pDynamicState;
21700     VkPipelineLayout                                     layout;
21701     VkPipeline                                           basePipelineHandle;
21702     int32_t                                              basePipelineIndex;
21703 } VkRayTracingPipelineCreateInfoKHR;
21704 
21705 typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
21706     VkStructureType    sType;
21707     void*              pNext;
21708     VkBool32           rayTracingPipeline;
21709     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplay;
21710     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
21711     VkBool32           rayTracingPipelineTraceRaysIndirect;
21712     VkBool32           rayTraversalPrimitiveCulling;
21713 } VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
21714 
21715 typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
21716     VkStructureType    sType;
21717     void*              pNext;
21718     uint32_t           shaderGroupHandleSize;
21719     uint32_t           maxRayRecursionDepth;
21720     uint32_t           maxShaderGroupStride;
21721     uint32_t           shaderGroupBaseAlignment;
21722     uint32_t           shaderGroupHandleCaptureReplaySize;
21723     uint32_t           maxRayDispatchInvocationCount;
21724     uint32_t           shaderGroupHandleAlignment;
21725     uint32_t           maxRayHitAttributeSize;
21726 } VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
21727 
21728 typedef struct VkTraceRaysIndirectCommandKHR {
21729     uint32_t    width;
21730     uint32_t    height;
21731     uint32_t    depth;
21732 } VkTraceRaysIndirectCommandKHR;
21733 
21734 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);
21735 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
21736 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
21737 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
21738 typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
21739 typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
21740 
21741 #ifndef VK_NO_PROTOTYPES
21742 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
21743     VkCommandBuffer                             commandBuffer,
21744     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
21745     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
21746     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
21747     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
21748     uint32_t                                    width,
21749     uint32_t                                    height,
21750     uint32_t                                    depth);
21751 
21752 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
21753     VkDevice                                    device,
21754     VkDeferredOperationKHR                      deferredOperation,
21755     VkPipelineCache                             pipelineCache,
21756     uint32_t                                    createInfoCount,
21757     const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
21758     const VkAllocationCallbacks*                pAllocator,
21759     VkPipeline*                                 pPipelines);
21760 
21761 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
21762     VkDevice                                    device,
21763     VkPipeline                                  pipeline,
21764     uint32_t                                    firstGroup,
21765     uint32_t                                    groupCount,
21766     size_t                                      dataSize,
21767     void*                                       pData);
21768 
21769 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
21770     VkCommandBuffer                             commandBuffer,
21771     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
21772     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
21773     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
21774     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
21775     VkDeviceAddress                             indirectDeviceAddress);
21776 
21777 VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
21778     VkDevice                                    device,
21779     VkPipeline                                  pipeline,
21780     uint32_t                                    group,
21781     VkShaderGroupShaderKHR                      groupShader);
21782 
21783 VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
21784     VkCommandBuffer                             commandBuffer,
21785     uint32_t                                    pipelineStackSize);
21786 #endif
21787 
21788 
21789 // VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
21790 #define VK_KHR_ray_query 1
21791 #define VK_KHR_RAY_QUERY_SPEC_VERSION     1
21792 #define VK_KHR_RAY_QUERY_EXTENSION_NAME   "VK_KHR_ray_query"
21793 typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
21794     VkStructureType    sType;
21795     void*              pNext;
21796     VkBool32           rayQuery;
21797 } VkPhysicalDeviceRayQueryFeaturesKHR;
21798 
21799 
21800 
21801 // VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
21802 #define VK_EXT_mesh_shader 1
21803 #define VK_EXT_MESH_SHADER_SPEC_VERSION   1
21804 #define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
21805 typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
21806     VkStructureType    sType;
21807     void*              pNext;
21808     VkBool32           taskShader;
21809     VkBool32           meshShader;
21810     VkBool32           multiviewMeshShader;
21811     VkBool32           primitiveFragmentShadingRateMeshShader;
21812     VkBool32           meshShaderQueries;
21813 } VkPhysicalDeviceMeshShaderFeaturesEXT;
21814 
21815 typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
21816     VkStructureType    sType;
21817     void*              pNext;
21818     uint32_t           maxTaskWorkGroupTotalCount;
21819     uint32_t           maxTaskWorkGroupCount[3];
21820     uint32_t           maxTaskWorkGroupInvocations;
21821     uint32_t           maxTaskWorkGroupSize[3];
21822     uint32_t           maxTaskPayloadSize;
21823     uint32_t           maxTaskSharedMemorySize;
21824     uint32_t           maxTaskPayloadAndSharedMemorySize;
21825     uint32_t           maxMeshWorkGroupTotalCount;
21826     uint32_t           maxMeshWorkGroupCount[3];
21827     uint32_t           maxMeshWorkGroupInvocations;
21828     uint32_t           maxMeshWorkGroupSize[3];
21829     uint32_t           maxMeshSharedMemorySize;
21830     uint32_t           maxMeshPayloadAndSharedMemorySize;
21831     uint32_t           maxMeshOutputMemorySize;
21832     uint32_t           maxMeshPayloadAndOutputMemorySize;
21833     uint32_t           maxMeshOutputComponents;
21834     uint32_t           maxMeshOutputVertices;
21835     uint32_t           maxMeshOutputPrimitives;
21836     uint32_t           maxMeshOutputLayers;
21837     uint32_t           maxMeshMultiviewViewCount;
21838     uint32_t           meshOutputPerVertexGranularity;
21839     uint32_t           meshOutputPerPrimitiveGranularity;
21840     uint32_t           maxPreferredTaskWorkGroupInvocations;
21841     uint32_t           maxPreferredMeshWorkGroupInvocations;
21842     VkBool32           prefersLocalInvocationVertexOutput;
21843     VkBool32           prefersLocalInvocationPrimitiveOutput;
21844     VkBool32           prefersCompactVertexOutput;
21845     VkBool32           prefersCompactPrimitiveOutput;
21846 } VkPhysicalDeviceMeshShaderPropertiesEXT;
21847 
21848 typedef struct VkDrawMeshTasksIndirectCommandEXT {
21849     uint32_t    groupCountX;
21850     uint32_t    groupCountY;
21851     uint32_t    groupCountZ;
21852 } VkDrawMeshTasksIndirectCommandEXT;
21853 
21854 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
21855 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
21856 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
21857 
21858 #ifndef VK_NO_PROTOTYPES
21859 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
21860     VkCommandBuffer                             commandBuffer,
21861     uint32_t                                    groupCountX,
21862     uint32_t                                    groupCountY,
21863     uint32_t                                    groupCountZ);
21864 
21865 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
21866     VkCommandBuffer                             commandBuffer,
21867     VkBuffer                                    buffer,
21868     VkDeviceSize                                offset,
21869     uint32_t                                    drawCount,
21870     uint32_t                                    stride);
21871 
21872 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
21873     VkCommandBuffer                             commandBuffer,
21874     VkBuffer                                    buffer,
21875     VkDeviceSize                                offset,
21876     VkBuffer                                    countBuffer,
21877     VkDeviceSize                                countBufferOffset,
21878     uint32_t                                    maxDrawCount,
21879     uint32_t                                    stride);
21880 #endif
21881 
21882 #ifdef __cplusplus
21883 }
21884 #endif
21885 
21886 #endif
21887