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