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