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