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