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