xref: /aosp_15_r20/external/vulkan-headers/include/vulkan/vulkan_core.h (revision 902771965e4c6d39c75c62130a6a330c08b024db)
1 #ifndef VULKAN_CORE_H_
2 #define VULKAN_CORE_H_ 1
3 
4 /*
5 ** Copyright 2015-2024 The Khronos Group Inc.
6 **
7 ** SPDX-License-Identifier: Apache-2.0
8 */
9 
10 /*
11 ** This header is generated from the Khronos Vulkan XML API Registry.
12 **
13 */
14 
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 
21 
22 // VK_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
23 #define VK_VERSION_1_0 1
24 #include "vk_platform.h"
25 
26 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
27 
28 
29 #ifndef VK_USE_64_BIT_PTR_DEFINES
30     #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
31         #define VK_USE_64_BIT_PTR_DEFINES 1
32     #else
33         #define VK_USE_64_BIT_PTR_DEFINES 0
34     #endif
35 #endif
36 
37 
38 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
39     #if (VK_USE_64_BIT_PTR_DEFINES==1)
40         #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
41             #define VK_NULL_HANDLE nullptr
42         #else
43             #define VK_NULL_HANDLE ((void*)0)
44         #endif
45     #else
46         #define VK_NULL_HANDLE 0ULL
47     #endif
48 #endif
49 #ifndef VK_NULL_HANDLE
50     #define VK_NULL_HANDLE 0
51 #endif
52 
53 
54 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
55     #if (VK_USE_64_BIT_PTR_DEFINES==1)
56         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
57     #else
58         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
59     #endif
60 #endif
61 
62 #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
63     ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
64 
65 // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
66 //#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
67 
68 // Vulkan 1.0 version number
69 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
70 
71 // Version of this file
72 #define VK_HEADER_VERSION 294
73 
74 // Complete version of this file
75 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
76 
77 // VK_MAKE_VERSION is deprecated, but no reason was given in the API XML
78 // DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
79 #define VK_MAKE_VERSION(major, minor, patch) \
80     ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
81 
82 // VK_VERSION_MAJOR is deprecated, but no reason was given in the API XML
83 // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
84 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U)
85 
86 // VK_VERSION_MINOR is deprecated, but no reason was given in the API XML
87 // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
88 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
89 
90 // VK_VERSION_PATCH is deprecated, but no reason was given in the API XML
91 // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
92 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
93 
94 #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
95 #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
96 #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
97 #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
98 typedef uint32_t VkBool32;
99 typedef uint64_t VkDeviceAddress;
100 typedef uint64_t VkDeviceSize;
101 typedef uint32_t VkFlags;
102 typedef uint32_t VkSampleMask;
103 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
104 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
105 VK_DEFINE_HANDLE(VkInstance)
106 VK_DEFINE_HANDLE(VkPhysicalDevice)
107 VK_DEFINE_HANDLE(VkDevice)
108 VK_DEFINE_HANDLE(VkQueue)
109 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
110 VK_DEFINE_HANDLE(VkCommandBuffer)
111 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
112 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
113 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
114 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
115 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
116 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
117 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
118 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
119 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
120 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
121 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
122 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
123 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
124 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
125 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
126 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
127 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
128 #define VK_ATTACHMENT_UNUSED              (~0U)
129 #define VK_FALSE                          0U
130 #define VK_LOD_CLAMP_NONE                 1000.0F
131 #define VK_QUEUE_FAMILY_IGNORED           (~0U)
132 #define VK_REMAINING_ARRAY_LAYERS         (~0U)
133 #define VK_REMAINING_MIP_LEVELS           (~0U)
134 #define VK_SUBPASS_EXTERNAL               (~0U)
135 #define VK_TRUE                           1U
136 #define VK_WHOLE_SIZE                     (~0ULL)
137 #define VK_MAX_MEMORY_TYPES               32U
138 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256U
139 #define VK_UUID_SIZE                      16U
140 #define VK_MAX_EXTENSION_NAME_SIZE        256U
141 #define VK_MAX_DESCRIPTION_SIZE           256U
142 #define VK_MAX_MEMORY_HEAPS               16U
143 
144 typedef enum VkResult {
145     VK_SUCCESS = 0,
146     VK_NOT_READY = 1,
147     VK_TIMEOUT = 2,
148     VK_EVENT_SET = 3,
149     VK_EVENT_RESET = 4,
150     VK_INCOMPLETE = 5,
151     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
152     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
153     VK_ERROR_INITIALIZATION_FAILED = -3,
154     VK_ERROR_DEVICE_LOST = -4,
155     VK_ERROR_MEMORY_MAP_FAILED = -5,
156     VK_ERROR_LAYER_NOT_PRESENT = -6,
157     VK_ERROR_EXTENSION_NOT_PRESENT = -7,
158     VK_ERROR_FEATURE_NOT_PRESENT = -8,
159     VK_ERROR_INCOMPATIBLE_DRIVER = -9,
160     VK_ERROR_TOO_MANY_OBJECTS = -10,
161     VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
162     VK_ERROR_FRAGMENTED_POOL = -12,
163     VK_ERROR_UNKNOWN = -13,
164     VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
165     VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
166     VK_ERROR_FRAGMENTATION = -1000161000,
167     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
168     VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
169     VK_ERROR_NOT_PERMITTED = -1000174001,
170     VK_ERROR_SURFACE_LOST_KHR = -1000000000,
171     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
172     VK_SUBOPTIMAL_KHR = 1000001003,
173     VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
174     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
175     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
176     VK_ERROR_INVALID_SHADER_NV = -1000012000,
177     VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000,
178     VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001,
179     VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002,
180     VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003,
181     VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004,
182     VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005,
183     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
184     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
185     VK_THREAD_IDLE_KHR = 1000268000,
186     VK_THREAD_DONE_KHR = 1000268001,
187     VK_OPERATION_DEFERRED_KHR = 1000268002,
188     VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
189     VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000,
190     VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
191     VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
192     VK_PIPELINE_BINARY_MISSING_KHR = 1000483000,
193     VK_ERROR_NOT_ENOUGH_SPACE_KHR = -1000483000,
194     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
195     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
196     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
197     VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED,
198     VK_ERROR_NOT_PERMITTED_KHR = VK_ERROR_NOT_PERMITTED,
199     VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
200     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
201     VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
202     VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
203   // VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT is a deprecated alias
204     VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = VK_INCOMPATIBLE_SHADER_BINARY_EXT,
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_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES = 55,
426     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES = 56,
427     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO = 1000174000,
428     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES = 1000388000,
429     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES = 1000388001,
430     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES = 1000416000,
431     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES = 1000528000,
432     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES = 1000544000,
433     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES = 1000259000,
434     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO = 1000259001,
435     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES = 1000259002,
436     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES = 1000525000,
437     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO = 1000190001,
438     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES = 1000190002,
439     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES = 1000265000,
440     VK_STRUCTURE_TYPE_MEMORY_MAP_INFO = 1000271000,
441     VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO = 1000271001,
442     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES = 1000470000,
443     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES = 1000470001,
444     VK_STRUCTURE_TYPE_RENDERING_AREA_INFO = 1000470003,
445     VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO = 1000470004,
446     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2 = 1000338002,
447     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2 = 1000338003,
448     VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO = 1000470005,
449     VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO = 1000470006,
450     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES = 1000080000,
451     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES = 1000232000,
452     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO = 1000232001,
453     VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO = 1000232002,
454     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES = 1000545000,
455     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES = 1000545001,
456     VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS = 1000545002,
457     VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO = 1000545003,
458     VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO = 1000545004,
459     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO = 1000545005,
460     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO = 1000545006,
461     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES = 1000466000,
462     VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO = 1000068000,
463     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES = 1000068001,
464     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES = 1000068002,
465     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES = 1000270000,
466     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES = 1000270001,
467     VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY = 1000270002,
468     VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY = 1000270003,
469     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO = 1000270004,
470     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO = 1000270005,
471     VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO = 1000270006,
472     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO = 1000270007,
473     VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE = 1000270008,
474     VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY = 1000270009,
475     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
476     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
477     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
478     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
479     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
480     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
481     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
482     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
483     VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
484     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
485     VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
486     VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
487     VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
488     VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
489     VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
490     VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
491     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
492     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
493     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
494     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
495     VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
496     VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
497     VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
498     VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
499     VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
500     VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
501     VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
502     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
503     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
504     VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
505     VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
506     VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
507     VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
508     VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
509     VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
510     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
511     VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
512     VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
513     VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
514     VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
515     VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
516     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
517     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
518     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
519     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
520     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
521     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
522     VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
523     VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
524     VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
525     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
526     VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
527     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
528     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
529     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
530     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
531     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
532     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
533     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
534     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
535     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
536     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
537     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
538     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
539     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
540     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
541     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
542     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
543     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
544     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
545     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
546     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
547     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
548     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
549     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
550     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
551     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
552     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
553     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
554     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
555     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
556     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
557     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
558     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
559     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
560     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
561     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
562     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
563     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
564     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
565     VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
566     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
567     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
568     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
569     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
570     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
571     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
572     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
573     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
574     VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
575     VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
576     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
577     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
578     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
579     VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
580     VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
581     VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
582     VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
583     VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
584     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
585     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
586     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
587     VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
588     VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
589     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
590     VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
591     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
592     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
593     VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
594     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
595     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
596     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
597     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
598     VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
599     VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
600     VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
601     VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
602     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
603     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
604     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
605     VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
606     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
607     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
608     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
609     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
610     VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
611     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
612     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
613     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
614     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
615     VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
616     VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
617     VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
618     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
619     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
620     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
621     VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
622     VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
623     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
624     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
625     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
626     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
627     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
628     VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
629     VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
630     VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
631     VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
632     VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
633     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
634     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
635     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
636     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
637     VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
638     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
639     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
640     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
641     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
642     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
643     VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
644     VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
645     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
646     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
647 #ifdef VK_ENABLE_BETA_EXTENSIONS
648     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
649 #endif
650 #ifdef VK_ENABLE_BETA_EXTENSIONS
651     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
652 #endif
653 #ifdef VK_ENABLE_BETA_EXTENSIONS
654     VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
655 #endif
656 #ifdef VK_ENABLE_BETA_EXTENSIONS
657     VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
658 #endif
659 #ifdef VK_ENABLE_BETA_EXTENSIONS
660     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
661 #endif
662     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
663     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
664     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
665     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
666     VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
667     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
668     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
669     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
670     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
671     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
672     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
673     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
674     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
675     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
676     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
677     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
678     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
679     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
680     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
681     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
682     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
683     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
684     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
685     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
686     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
687     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
688     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
689     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
690     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
691     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
692     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
693     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
694     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
695     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
696     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
697     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
698     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
699     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
700     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
701     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
702     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
703 #ifdef VK_ENABLE_BETA_EXTENSIONS
704     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
705 #endif
706 #ifdef VK_ENABLE_BETA_EXTENSIONS
707     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
708 #endif
709     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
710     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
711     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
712     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
713     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
714     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
715     VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
716     VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
717     VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
718     VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
719     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
720     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
721     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
722     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
723     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
724     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
725     VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
726     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
727     VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
728     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
729     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
730     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
731     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
732     VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
733     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
734     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
735     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
736     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
737     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
738     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
739     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
740     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
741     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
742     VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
743     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
744     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
745     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
746     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
747     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
748     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
749     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
750     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
751     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
752     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
753     VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
754     VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
755     VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
756     VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
757     VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
758     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
759     VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
760     VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
761     VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
762     VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
763     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
764     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
765     VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
766     VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
767     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
768     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
769     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
770     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
771     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
772     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
773     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
774     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
775     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
776     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
777     VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
778     VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
779     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
780     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
781     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
782     VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
783     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
784     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
785     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
786     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
787     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
788     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
789     VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
790     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
791     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
792     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
793     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
794     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
795     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
796     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
797     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
798     VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
799     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
800     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
801     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
802     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
803     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
804     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
805     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
806     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
807     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
808     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
809     VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
810     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
811     VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000,
812     VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001,
813     VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002,
814     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000,
815     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001,
816     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002,
817     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003,
818     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004,
819     VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005,
820     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
821     VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
822     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
823     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
824     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
825     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
826     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
827     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
828     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
829     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
830     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
831     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
832     VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
833     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
834     VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
835     VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
836     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
837     VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
838     VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
839     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
840     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
841     VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
842     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
843     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
844     VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
845     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
846     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
847     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
848     VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
849     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
850     VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
851     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
852     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
853     VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
854     VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
855     VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
856     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
857     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
858     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
859     VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
860     VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
861     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
862     VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
863     VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
864     VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
865     VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
866     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
867     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
868     VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
869     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
870     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
871     VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
872     VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
873     VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
874     VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
875     VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
876     VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
877     VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
878     VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
879     VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
880     VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
881     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
882     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
883     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000,
884     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001,
885     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002,
886     VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003,
887     VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004,
888     VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005,
889     VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006,
890     VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007,
891     VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008,
892     VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010,
893     VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011,
894     VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012,
895     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009,
896     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
897     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
898     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
899     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
900     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
901     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
902     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
903     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
904     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
905     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
906     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
907     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
908     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
909     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
910     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
911     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
912     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
913     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
914     VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
915     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
916     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
917     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
918     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
919     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
920     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
921     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
922     VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
923     VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
924     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
925     VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
926     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
927     VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
928     VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
929     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
930     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
931     VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
932     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
933     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
934     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
935     VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
936     VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
937     VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
938     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
939     VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
940     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
941     VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
942     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
943     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
944     VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
945     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
946     VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
947     VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
948     VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
949     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
950     VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
951     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
952     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
953     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
954     VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
955     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
956     VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
957     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
958     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
959     VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
960     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
961     VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
962     VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
963     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
964     VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
965     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
966     VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
967     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
968     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
969     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
970     VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
971     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
972     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
973     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
974     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
975     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
976     VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
977     VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
978     VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
979     VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
980     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
981     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
982     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
983     VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
984     VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
985     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
986 #ifdef VK_ENABLE_BETA_EXTENSIONS
987     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
988 #endif
989 #ifdef VK_ENABLE_BETA_EXTENSIONS
990     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
991 #endif
992 #ifdef VK_ENABLE_BETA_EXTENSIONS
993     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
994 #endif
995     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
996     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
997     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
998     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
999     VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
1000     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
1001     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
1002     VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
1003     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
1004     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
1005     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
1006     VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
1007     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
1008     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
1009     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
1010     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000,
1011     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
1012     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
1013     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
1014     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
1015     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
1016     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
1017     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000,
1018     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001,
1019     VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002,
1020     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
1021     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001,
1022     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000,
1023     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001,
1024     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
1025     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
1026     VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
1027     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
1028     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
1029     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
1030     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
1031     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
1032     VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
1033     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
1034     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
1035     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
1036     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
1037     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
1038     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1039     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1040     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
1041     VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
1042     VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
1043     VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
1044     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
1045     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
1046     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
1047     VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
1048     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
1049     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
1050     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
1051     VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
1052     VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
1053     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
1054     VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
1055     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
1056     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
1057     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
1058     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
1059     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
1060     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = 1000476000,
1061     VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = 1000476001,
1062     VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = 1000476002,
1063     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
1064     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
1065     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
1066     VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
1067     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = 1000483000,
1068     VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = 1000483001,
1069     VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = 1000483002,
1070     VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = 1000483003,
1071     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = 1000483004,
1072     VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = 1000483005,
1073     VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = 1000483006,
1074     VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = 1000483007,
1075     VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = 1000483008,
1076     VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = 1000483009,
1077     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
1078     VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
1079     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
1080     VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
1081     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
1082     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
1083     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
1084     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
1085     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
1086     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
1087     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
1088     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = 1000495000,
1089     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = 1000495001,
1090     VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
1091     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
1092     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
1093     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
1094     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
1095     VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
1096     VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
1097     VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
1098     VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
1099     VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
1100     VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
1101     VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
1102     VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
1103     VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
1104     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
1105     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
1106     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
1107     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
1108     VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
1109     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
1110     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
1111     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
1112     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
1113     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
1114     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
1115     VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
1116     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
1117     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
1118     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
1119     VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
1120     VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
1121     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
1122     VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
1123     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
1124     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
1125     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
1126     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
1127     VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
1128     VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
1129     VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
1130     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
1131     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
1132     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
1133     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
1134     VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
1135     VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
1136     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
1137     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
1138     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000,
1139     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV = 1000559000,
1140     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = 1000562000,
1141     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = 1000562001,
1142     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = 1000562002,
1143     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = 1000562003,
1144     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004,
1145     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
1146     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
1147     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
1148     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
1149     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
1150     VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
1151     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1152     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1153   // VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a deprecated alias
1154     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1155     VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1156     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1157     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1158     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1159     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1160     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1161     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1162     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1163     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1164     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1165     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1166     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1167     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1168     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1169     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1170     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1171     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1172     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1173     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1174     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1175     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1176     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1177     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1178     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1179     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1180     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1181     VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO,
1182     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES,
1183     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES,
1184     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1185     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1186     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1187     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1188     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1189     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1190     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1191     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1192     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1193     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1194     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
1195     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
1196     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
1197     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES,
1198     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1199     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1200     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
1201     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
1202   // VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT is a deprecated alias
1203     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
1204     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
1205     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
1206     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
1207     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
1208     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
1209     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
1210     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
1211     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
1212     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
1213     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
1214     VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
1215     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
1216     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
1217     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
1218     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
1219     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
1220     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
1221     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
1222     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1223     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1224     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
1225     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
1226     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
1227     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
1228     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
1229     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
1230     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
1231     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
1232     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
1233     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
1234     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
1235     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
1236     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
1237     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
1238     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
1239     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
1240     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
1241     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
1242     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
1243     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
1244     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
1245     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
1246     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
1247     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
1248     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
1249     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
1250     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
1251     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
1252     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
1253     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1254     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
1255     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
1256     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
1257     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
1258     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1259     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1260     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1261     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1262     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1263     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
1264     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1265     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
1266     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
1267     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
1268     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1269     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
1270     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
1271     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
1272     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
1273     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
1274     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
1275   // VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL is a deprecated alias
1276     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
1277     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
1278     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
1279     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
1280     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
1281     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1282     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
1283     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES,
1284     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO,
1285     VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO,
1286     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
1287     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1288     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1289     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
1290     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1291     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
1292     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
1293     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
1294     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
1295     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1296     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
1297     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
1298     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
1299     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1300     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1301     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1302     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
1303     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1304     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES,
1305     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES,
1306     VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY,
1307     VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY,
1308     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO,
1309     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO,
1310     VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO,
1311     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO,
1312     VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE,
1313     VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY,
1314     VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO,
1315     VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO,
1316     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
1317     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
1318     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
1319     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
1320     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
1321     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
1322     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
1323     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
1324     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
1325     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
1326     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
1327     VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
1328     VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
1329     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
1330     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
1331     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
1332     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
1333     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
1334     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
1335     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
1336     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
1337     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
1338     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
1339     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
1340     VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
1341     VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
1342     VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
1343     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
1344     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
1345     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1346     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1347     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1348     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1349     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1350     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
1351     VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1352     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1353     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1354     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
1355     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
1356     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
1357     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
1358     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
1359     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
1360     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
1361     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
1362     VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO,
1363     VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO,
1364     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1365     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1366     VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO,
1367     VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
1368     VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1369     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES,
1370     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1371     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1372     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES,
1373     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1374     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1375     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1376     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1377     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES,
1378     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES,
1379     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES,
1380     VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS,
1381     VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO,
1382     VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO,
1383     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO,
1384     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO,
1385     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1386 } VkStructureType;
1387 
1388 typedef enum VkPipelineCacheHeaderVersion {
1389     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1390     VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
1391 } VkPipelineCacheHeaderVersion;
1392 
1393 typedef enum VkImageLayout {
1394     VK_IMAGE_LAYOUT_UNDEFINED = 0,
1395     VK_IMAGE_LAYOUT_GENERAL = 1,
1396     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
1397     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
1398     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
1399     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
1400     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
1401     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
1402     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
1403     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
1404     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
1405     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
1406     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
1407     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
1408     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
1409     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
1410     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
1411     VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ = 1000232000,
1412     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
1413     VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
1414     VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
1415     VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
1416     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
1417     VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
1418     VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
1419     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
1420     VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
1421     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
1422     VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
1423     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
1424     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
1425     VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
1426     VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ,
1427     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
1428     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
1429     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
1430     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
1431     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
1432     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
1433     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
1434 } VkImageLayout;
1435 
1436 typedef enum VkObjectType {
1437     VK_OBJECT_TYPE_UNKNOWN = 0,
1438     VK_OBJECT_TYPE_INSTANCE = 1,
1439     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1440     VK_OBJECT_TYPE_DEVICE = 3,
1441     VK_OBJECT_TYPE_QUEUE = 4,
1442     VK_OBJECT_TYPE_SEMAPHORE = 5,
1443     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1444     VK_OBJECT_TYPE_FENCE = 7,
1445     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1446     VK_OBJECT_TYPE_BUFFER = 9,
1447     VK_OBJECT_TYPE_IMAGE = 10,
1448     VK_OBJECT_TYPE_EVENT = 11,
1449     VK_OBJECT_TYPE_QUERY_POOL = 12,
1450     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1451     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1452     VK_OBJECT_TYPE_SHADER_MODULE = 15,
1453     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1454     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1455     VK_OBJECT_TYPE_RENDER_PASS = 18,
1456     VK_OBJECT_TYPE_PIPELINE = 19,
1457     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1458     VK_OBJECT_TYPE_SAMPLER = 21,
1459     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1460     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1461     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1462     VK_OBJECT_TYPE_COMMAND_POOL = 25,
1463     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1464     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1465     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1466     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1467     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1468     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1469     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1470     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1471     VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
1472     VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
1473     VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
1474     VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
1475     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1476     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
1477     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1478     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1479     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1480     VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
1481     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
1482     VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
1483     VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
1484     VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
1485     VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
1486     VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
1487     VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
1488     VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000,
1489     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1490     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1491     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1492     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1493 } VkObjectType;
1494 
1495 typedef enum VkVendorId {
1496     VK_VENDOR_ID_KHRONOS = 0x10000,
1497     VK_VENDOR_ID_VIV = 0x10001,
1498     VK_VENDOR_ID_VSI = 0x10002,
1499     VK_VENDOR_ID_KAZAN = 0x10003,
1500     VK_VENDOR_ID_CODEPLAY = 0x10004,
1501     VK_VENDOR_ID_MESA = 0x10005,
1502     VK_VENDOR_ID_POCL = 0x10006,
1503     VK_VENDOR_ID_MOBILEYE = 0x10007,
1504     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1505 } VkVendorId;
1506 
1507 typedef enum VkSystemAllocationScope {
1508     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1509     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1510     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1511     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1512     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1513     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1514 } VkSystemAllocationScope;
1515 
1516 typedef enum VkInternalAllocationType {
1517     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1518     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1519 } VkInternalAllocationType;
1520 
1521 typedef enum VkFormat {
1522     VK_FORMAT_UNDEFINED = 0,
1523     VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1524     VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1525     VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1526     VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1527     VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1528     VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1529     VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1530     VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1531     VK_FORMAT_R8_UNORM = 9,
1532     VK_FORMAT_R8_SNORM = 10,
1533     VK_FORMAT_R8_USCALED = 11,
1534     VK_FORMAT_R8_SSCALED = 12,
1535     VK_FORMAT_R8_UINT = 13,
1536     VK_FORMAT_R8_SINT = 14,
1537     VK_FORMAT_R8_SRGB = 15,
1538     VK_FORMAT_R8G8_UNORM = 16,
1539     VK_FORMAT_R8G8_SNORM = 17,
1540     VK_FORMAT_R8G8_USCALED = 18,
1541     VK_FORMAT_R8G8_SSCALED = 19,
1542     VK_FORMAT_R8G8_UINT = 20,
1543     VK_FORMAT_R8G8_SINT = 21,
1544     VK_FORMAT_R8G8_SRGB = 22,
1545     VK_FORMAT_R8G8B8_UNORM = 23,
1546     VK_FORMAT_R8G8B8_SNORM = 24,
1547     VK_FORMAT_R8G8B8_USCALED = 25,
1548     VK_FORMAT_R8G8B8_SSCALED = 26,
1549     VK_FORMAT_R8G8B8_UINT = 27,
1550     VK_FORMAT_R8G8B8_SINT = 28,
1551     VK_FORMAT_R8G8B8_SRGB = 29,
1552     VK_FORMAT_B8G8R8_UNORM = 30,
1553     VK_FORMAT_B8G8R8_SNORM = 31,
1554     VK_FORMAT_B8G8R8_USCALED = 32,
1555     VK_FORMAT_B8G8R8_SSCALED = 33,
1556     VK_FORMAT_B8G8R8_UINT = 34,
1557     VK_FORMAT_B8G8R8_SINT = 35,
1558     VK_FORMAT_B8G8R8_SRGB = 36,
1559     VK_FORMAT_R8G8B8A8_UNORM = 37,
1560     VK_FORMAT_R8G8B8A8_SNORM = 38,
1561     VK_FORMAT_R8G8B8A8_USCALED = 39,
1562     VK_FORMAT_R8G8B8A8_SSCALED = 40,
1563     VK_FORMAT_R8G8B8A8_UINT = 41,
1564     VK_FORMAT_R8G8B8A8_SINT = 42,
1565     VK_FORMAT_R8G8B8A8_SRGB = 43,
1566     VK_FORMAT_B8G8R8A8_UNORM = 44,
1567     VK_FORMAT_B8G8R8A8_SNORM = 45,
1568     VK_FORMAT_B8G8R8A8_USCALED = 46,
1569     VK_FORMAT_B8G8R8A8_SSCALED = 47,
1570     VK_FORMAT_B8G8R8A8_UINT = 48,
1571     VK_FORMAT_B8G8R8A8_SINT = 49,
1572     VK_FORMAT_B8G8R8A8_SRGB = 50,
1573     VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1574     VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1575     VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1576     VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1577     VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1578     VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1579     VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1580     VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1581     VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1582     VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1583     VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1584     VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1585     VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1586     VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1587     VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1588     VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1589     VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1590     VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1591     VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1592     VK_FORMAT_R16_UNORM = 70,
1593     VK_FORMAT_R16_SNORM = 71,
1594     VK_FORMAT_R16_USCALED = 72,
1595     VK_FORMAT_R16_SSCALED = 73,
1596     VK_FORMAT_R16_UINT = 74,
1597     VK_FORMAT_R16_SINT = 75,
1598     VK_FORMAT_R16_SFLOAT = 76,
1599     VK_FORMAT_R16G16_UNORM = 77,
1600     VK_FORMAT_R16G16_SNORM = 78,
1601     VK_FORMAT_R16G16_USCALED = 79,
1602     VK_FORMAT_R16G16_SSCALED = 80,
1603     VK_FORMAT_R16G16_UINT = 81,
1604     VK_FORMAT_R16G16_SINT = 82,
1605     VK_FORMAT_R16G16_SFLOAT = 83,
1606     VK_FORMAT_R16G16B16_UNORM = 84,
1607     VK_FORMAT_R16G16B16_SNORM = 85,
1608     VK_FORMAT_R16G16B16_USCALED = 86,
1609     VK_FORMAT_R16G16B16_SSCALED = 87,
1610     VK_FORMAT_R16G16B16_UINT = 88,
1611     VK_FORMAT_R16G16B16_SINT = 89,
1612     VK_FORMAT_R16G16B16_SFLOAT = 90,
1613     VK_FORMAT_R16G16B16A16_UNORM = 91,
1614     VK_FORMAT_R16G16B16A16_SNORM = 92,
1615     VK_FORMAT_R16G16B16A16_USCALED = 93,
1616     VK_FORMAT_R16G16B16A16_SSCALED = 94,
1617     VK_FORMAT_R16G16B16A16_UINT = 95,
1618     VK_FORMAT_R16G16B16A16_SINT = 96,
1619     VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1620     VK_FORMAT_R32_UINT = 98,
1621     VK_FORMAT_R32_SINT = 99,
1622     VK_FORMAT_R32_SFLOAT = 100,
1623     VK_FORMAT_R32G32_UINT = 101,
1624     VK_FORMAT_R32G32_SINT = 102,
1625     VK_FORMAT_R32G32_SFLOAT = 103,
1626     VK_FORMAT_R32G32B32_UINT = 104,
1627     VK_FORMAT_R32G32B32_SINT = 105,
1628     VK_FORMAT_R32G32B32_SFLOAT = 106,
1629     VK_FORMAT_R32G32B32A32_UINT = 107,
1630     VK_FORMAT_R32G32B32A32_SINT = 108,
1631     VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1632     VK_FORMAT_R64_UINT = 110,
1633     VK_FORMAT_R64_SINT = 111,
1634     VK_FORMAT_R64_SFLOAT = 112,
1635     VK_FORMAT_R64G64_UINT = 113,
1636     VK_FORMAT_R64G64_SINT = 114,
1637     VK_FORMAT_R64G64_SFLOAT = 115,
1638     VK_FORMAT_R64G64B64_UINT = 116,
1639     VK_FORMAT_R64G64B64_SINT = 117,
1640     VK_FORMAT_R64G64B64_SFLOAT = 118,
1641     VK_FORMAT_R64G64B64A64_UINT = 119,
1642     VK_FORMAT_R64G64B64A64_SINT = 120,
1643     VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1644     VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1645     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1646     VK_FORMAT_D16_UNORM = 124,
1647     VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1648     VK_FORMAT_D32_SFLOAT = 126,
1649     VK_FORMAT_S8_UINT = 127,
1650     VK_FORMAT_D16_UNORM_S8_UINT = 128,
1651     VK_FORMAT_D24_UNORM_S8_UINT = 129,
1652     VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1653     VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1654     VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1655     VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1656     VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1657     VK_FORMAT_BC2_UNORM_BLOCK = 135,
1658     VK_FORMAT_BC2_SRGB_BLOCK = 136,
1659     VK_FORMAT_BC3_UNORM_BLOCK = 137,
1660     VK_FORMAT_BC3_SRGB_BLOCK = 138,
1661     VK_FORMAT_BC4_UNORM_BLOCK = 139,
1662     VK_FORMAT_BC4_SNORM_BLOCK = 140,
1663     VK_FORMAT_BC5_UNORM_BLOCK = 141,
1664     VK_FORMAT_BC5_SNORM_BLOCK = 142,
1665     VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1666     VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1667     VK_FORMAT_BC7_UNORM_BLOCK = 145,
1668     VK_FORMAT_BC7_SRGB_BLOCK = 146,
1669     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1670     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1671     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1672     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1673     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1674     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1675     VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1676     VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1677     VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1678     VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1679     VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1680     VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1681     VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1682     VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1683     VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1684     VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1685     VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1686     VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1687     VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1688     VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1689     VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1690     VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1691     VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1692     VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1693     VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1694     VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1695     VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1696     VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1697     VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1698     VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1699     VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1700     VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1701     VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1702     VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1703     VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1704     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1705     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1706     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
1707     VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1708     VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1709     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1710     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1711     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1712     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1713     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1714     VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1715     VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1716     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1717     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1718     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1719     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1720     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1721     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1722     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1723     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1724     VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1725     VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1726     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1727     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1728     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1729     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1730     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1731     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1732     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1733     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1734     VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1735     VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1736     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1737     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1738     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1739     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1740     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1741     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
1742     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
1743     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
1744     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
1745     VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
1746     VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
1747     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
1748     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
1749     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
1750     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
1751     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
1752     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
1753     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
1754     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
1755     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
1756     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
1757     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
1758     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
1759     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
1760     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
1761     VK_FORMAT_A1B5G5R5_UNORM_PACK16 = 1000470000,
1762     VK_FORMAT_A8_UNORM = 1000470001,
1763     VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1764     VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1765     VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1766     VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1767     VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1768     VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1769     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1770     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
1771     VK_FORMAT_R16G16_SFIXED5_NV = 1000464000,
1772     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
1773     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
1774     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
1775     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
1776     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
1777     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
1778     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
1779     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
1780     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
1781     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
1782     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
1783     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
1784     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
1785     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
1786     VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
1787     VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
1788     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
1789     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
1790     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
1791     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
1792     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
1793     VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
1794     VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
1795     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
1796     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
1797     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
1798     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
1799     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
1800     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
1801     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
1802     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
1803     VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
1804     VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
1805     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
1806     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
1807     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
1808     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
1809     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
1810     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
1811     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
1812     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
1813     VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
1814     VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
1815     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
1816     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
1817     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
1818     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
1819     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
1820     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
1821     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
1822     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
1823     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
1824     VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
1825     VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
1826   // VK_FORMAT_R16G16_S10_5_NV is a deprecated alias
1827     VK_FORMAT_R16G16_S10_5_NV = VK_FORMAT_R16G16_SFIXED5_NV,
1828     VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = VK_FORMAT_A1B5G5R5_UNORM_PACK16,
1829     VK_FORMAT_A8_UNORM_KHR = VK_FORMAT_A8_UNORM,
1830     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
1831 } VkFormat;
1832 
1833 typedef enum VkImageTiling {
1834     VK_IMAGE_TILING_OPTIMAL = 0,
1835     VK_IMAGE_TILING_LINEAR = 1,
1836     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
1837     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
1838 } VkImageTiling;
1839 
1840 typedef enum VkImageType {
1841     VK_IMAGE_TYPE_1D = 0,
1842     VK_IMAGE_TYPE_2D = 1,
1843     VK_IMAGE_TYPE_3D = 2,
1844     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
1845 } VkImageType;
1846 
1847 typedef enum VkPhysicalDeviceType {
1848     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
1849     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
1850     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
1851     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
1852     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
1853     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
1854 } VkPhysicalDeviceType;
1855 
1856 typedef enum VkQueryType {
1857     VK_QUERY_TYPE_OCCLUSION = 0,
1858     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
1859     VK_QUERY_TYPE_TIMESTAMP = 2,
1860     VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
1861     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
1862     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
1863     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
1864     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
1865     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
1866     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
1867     VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
1868     VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
1869     VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
1870     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
1871     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
1872     VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
1873     VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
1874     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
1875 } VkQueryType;
1876 
1877 typedef enum VkSharingMode {
1878     VK_SHARING_MODE_EXCLUSIVE = 0,
1879     VK_SHARING_MODE_CONCURRENT = 1,
1880     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
1881 } VkSharingMode;
1882 
1883 typedef enum VkComponentSwizzle {
1884     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
1885     VK_COMPONENT_SWIZZLE_ZERO = 1,
1886     VK_COMPONENT_SWIZZLE_ONE = 2,
1887     VK_COMPONENT_SWIZZLE_R = 3,
1888     VK_COMPONENT_SWIZZLE_G = 4,
1889     VK_COMPONENT_SWIZZLE_B = 5,
1890     VK_COMPONENT_SWIZZLE_A = 6,
1891     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
1892 } VkComponentSwizzle;
1893 
1894 typedef enum VkImageViewType {
1895     VK_IMAGE_VIEW_TYPE_1D = 0,
1896     VK_IMAGE_VIEW_TYPE_2D = 1,
1897     VK_IMAGE_VIEW_TYPE_3D = 2,
1898     VK_IMAGE_VIEW_TYPE_CUBE = 3,
1899     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
1900     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
1901     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
1902     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
1903 } VkImageViewType;
1904 
1905 typedef enum VkBlendFactor {
1906     VK_BLEND_FACTOR_ZERO = 0,
1907     VK_BLEND_FACTOR_ONE = 1,
1908     VK_BLEND_FACTOR_SRC_COLOR = 2,
1909     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
1910     VK_BLEND_FACTOR_DST_COLOR = 4,
1911     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
1912     VK_BLEND_FACTOR_SRC_ALPHA = 6,
1913     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
1914     VK_BLEND_FACTOR_DST_ALPHA = 8,
1915     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
1916     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
1917     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
1918     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
1919     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
1920     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
1921     VK_BLEND_FACTOR_SRC1_COLOR = 15,
1922     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
1923     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
1924     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
1925     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
1926 } VkBlendFactor;
1927 
1928 typedef enum VkBlendOp {
1929     VK_BLEND_OP_ADD = 0,
1930     VK_BLEND_OP_SUBTRACT = 1,
1931     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
1932     VK_BLEND_OP_MIN = 3,
1933     VK_BLEND_OP_MAX = 4,
1934     VK_BLEND_OP_ZERO_EXT = 1000148000,
1935     VK_BLEND_OP_SRC_EXT = 1000148001,
1936     VK_BLEND_OP_DST_EXT = 1000148002,
1937     VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
1938     VK_BLEND_OP_DST_OVER_EXT = 1000148004,
1939     VK_BLEND_OP_SRC_IN_EXT = 1000148005,
1940     VK_BLEND_OP_DST_IN_EXT = 1000148006,
1941     VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
1942     VK_BLEND_OP_DST_OUT_EXT = 1000148008,
1943     VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
1944     VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
1945     VK_BLEND_OP_XOR_EXT = 1000148011,
1946     VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
1947     VK_BLEND_OP_SCREEN_EXT = 1000148013,
1948     VK_BLEND_OP_OVERLAY_EXT = 1000148014,
1949     VK_BLEND_OP_DARKEN_EXT = 1000148015,
1950     VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
1951     VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
1952     VK_BLEND_OP_COLORBURN_EXT = 1000148018,
1953     VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
1954     VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
1955     VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
1956     VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
1957     VK_BLEND_OP_INVERT_EXT = 1000148023,
1958     VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
1959     VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
1960     VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
1961     VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
1962     VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
1963     VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
1964     VK_BLEND_OP_HARDMIX_EXT = 1000148030,
1965     VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
1966     VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
1967     VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
1968     VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
1969     VK_BLEND_OP_PLUS_EXT = 1000148035,
1970     VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
1971     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
1972     VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
1973     VK_BLEND_OP_MINUS_EXT = 1000148039,
1974     VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
1975     VK_BLEND_OP_CONTRAST_EXT = 1000148041,
1976     VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
1977     VK_BLEND_OP_RED_EXT = 1000148043,
1978     VK_BLEND_OP_GREEN_EXT = 1000148044,
1979     VK_BLEND_OP_BLUE_EXT = 1000148045,
1980     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
1981 } VkBlendOp;
1982 
1983 typedef enum VkCompareOp {
1984     VK_COMPARE_OP_NEVER = 0,
1985     VK_COMPARE_OP_LESS = 1,
1986     VK_COMPARE_OP_EQUAL = 2,
1987     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
1988     VK_COMPARE_OP_GREATER = 4,
1989     VK_COMPARE_OP_NOT_EQUAL = 5,
1990     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
1991     VK_COMPARE_OP_ALWAYS = 7,
1992     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
1993 } VkCompareOp;
1994 
1995 typedef enum VkDynamicState {
1996     VK_DYNAMIC_STATE_VIEWPORT = 0,
1997     VK_DYNAMIC_STATE_SCISSOR = 1,
1998     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
1999     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
2000     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
2001     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
2002     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
2003     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
2004     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
2005     VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
2006     VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
2007     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
2008     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
2009     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
2010     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
2011     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
2012     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
2013     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
2014     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
2015     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
2016     VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
2017     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
2018     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
2019     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
2020     VK_DYNAMIC_STATE_LINE_STIPPLE = 1000259000,
2021     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
2022     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
2023     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
2024     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
2025     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
2026     VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
2027     VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
2028     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
2029     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
2030     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
2031     VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
2032     VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
2033     VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
2034     VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
2035     VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
2036     VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
2037     VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
2038     VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
2039     VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
2040     VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
2041     VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
2042     VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
2043     VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
2044     VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
2045     VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
2046     VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
2047     VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
2048     VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
2049     VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
2050     VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
2051     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
2052     VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
2053     VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
2054     VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
2055     VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
2056     VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
2057     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
2058     VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
2059     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
2060     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
2061     VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
2062     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
2063     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
2064     VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
2065     VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
2066     VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
2067     VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
2068     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE,
2069     VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
2070     VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
2071     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
2072     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
2073     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
2074     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
2075     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
2076     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
2077     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
2078     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
2079     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
2080     VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
2081     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
2082     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2083     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2084     VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = VK_DYNAMIC_STATE_LINE_STIPPLE,
2085     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
2086 } VkDynamicState;
2087 
2088 typedef enum VkFrontFace {
2089     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
2090     VK_FRONT_FACE_CLOCKWISE = 1,
2091     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
2092 } VkFrontFace;
2093 
2094 typedef enum VkVertexInputRate {
2095     VK_VERTEX_INPUT_RATE_VERTEX = 0,
2096     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
2097     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
2098 } VkVertexInputRate;
2099 
2100 typedef enum VkPrimitiveTopology {
2101     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
2102     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
2103     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
2104     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
2105     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
2106     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
2107     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
2108     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
2109     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
2110     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
2111     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
2112     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
2113 } VkPrimitiveTopology;
2114 
2115 typedef enum VkPolygonMode {
2116     VK_POLYGON_MODE_FILL = 0,
2117     VK_POLYGON_MODE_LINE = 1,
2118     VK_POLYGON_MODE_POINT = 2,
2119     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
2120     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
2121 } VkPolygonMode;
2122 
2123 typedef enum VkStencilOp {
2124     VK_STENCIL_OP_KEEP = 0,
2125     VK_STENCIL_OP_ZERO = 1,
2126     VK_STENCIL_OP_REPLACE = 2,
2127     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
2128     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
2129     VK_STENCIL_OP_INVERT = 5,
2130     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
2131     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
2132     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
2133 } VkStencilOp;
2134 
2135 typedef enum VkLogicOp {
2136     VK_LOGIC_OP_CLEAR = 0,
2137     VK_LOGIC_OP_AND = 1,
2138     VK_LOGIC_OP_AND_REVERSE = 2,
2139     VK_LOGIC_OP_COPY = 3,
2140     VK_LOGIC_OP_AND_INVERTED = 4,
2141     VK_LOGIC_OP_NO_OP = 5,
2142     VK_LOGIC_OP_XOR = 6,
2143     VK_LOGIC_OP_OR = 7,
2144     VK_LOGIC_OP_NOR = 8,
2145     VK_LOGIC_OP_EQUIVALENT = 9,
2146     VK_LOGIC_OP_INVERT = 10,
2147     VK_LOGIC_OP_OR_REVERSE = 11,
2148     VK_LOGIC_OP_COPY_INVERTED = 12,
2149     VK_LOGIC_OP_OR_INVERTED = 13,
2150     VK_LOGIC_OP_NAND = 14,
2151     VK_LOGIC_OP_SET = 15,
2152     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
2153 } VkLogicOp;
2154 
2155 typedef enum VkBorderColor {
2156     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2157     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2158     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2159     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2160     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2161     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2162     VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2163     VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2164     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2165 } VkBorderColor;
2166 
2167 typedef enum VkFilter {
2168     VK_FILTER_NEAREST = 0,
2169     VK_FILTER_LINEAR = 1,
2170     VK_FILTER_CUBIC_EXT = 1000015000,
2171     VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
2172     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2173 } VkFilter;
2174 
2175 typedef enum VkSamplerAddressMode {
2176     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2177     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2178     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2179     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2180     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2181   // VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR is a deprecated alias
2182     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2183     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2184 } VkSamplerAddressMode;
2185 
2186 typedef enum VkSamplerMipmapMode {
2187     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2188     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2189     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2190 } VkSamplerMipmapMode;
2191 
2192 typedef enum VkDescriptorType {
2193     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2194     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2195     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2196     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2197     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2198     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2199     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2200     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2201     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2202     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2203     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2204     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2205     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2206     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2207     VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
2208     VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
2209     VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
2210     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2211     VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2212     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2213 } VkDescriptorType;
2214 
2215 typedef enum VkAttachmentLoadOp {
2216     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2217     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2218     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2219     VK_ATTACHMENT_LOAD_OP_NONE = 1000400000,
2220     VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE,
2221     VK_ATTACHMENT_LOAD_OP_NONE_KHR = VK_ATTACHMENT_LOAD_OP_NONE,
2222     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2223 } VkAttachmentLoadOp;
2224 
2225 typedef enum VkAttachmentStoreOp {
2226     VK_ATTACHMENT_STORE_OP_STORE = 0,
2227     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2228     VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2229     VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2230     VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2231     VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2232     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2233 } VkAttachmentStoreOp;
2234 
2235 typedef enum VkPipelineBindPoint {
2236     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2237     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2238 #ifdef VK_ENABLE_BETA_EXTENSIONS
2239     VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
2240 #endif
2241     VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2242     VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2243     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2244     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2245 } VkPipelineBindPoint;
2246 
2247 typedef enum VkCommandBufferLevel {
2248     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2249     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2250     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2251 } VkCommandBufferLevel;
2252 
2253 typedef enum VkIndexType {
2254     VK_INDEX_TYPE_UINT16 = 0,
2255     VK_INDEX_TYPE_UINT32 = 1,
2256     VK_INDEX_TYPE_UINT8 = 1000265000,
2257     VK_INDEX_TYPE_NONE_KHR = 1000165000,
2258     VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2259     VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8,
2260     VK_INDEX_TYPE_UINT8_KHR = VK_INDEX_TYPE_UINT8,
2261     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2262 } VkIndexType;
2263 
2264 typedef enum VkSubpassContents {
2265     VK_SUBPASS_CONTENTS_INLINE = 0,
2266     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2267     VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000,
2268     VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR,
2269     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2270 } VkSubpassContents;
2271 
2272 typedef enum VkAccessFlagBits {
2273     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2274     VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2275     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2276     VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2277     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2278     VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2279     VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2280     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2281     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2282     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2283     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2284     VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2285     VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2286     VK_ACCESS_HOST_READ_BIT = 0x00002000,
2287     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2288     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2289     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
2290     VK_ACCESS_NONE = 0,
2291     VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2292     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2293     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
2294     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
2295     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2296     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
2297     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
2298     VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2299     VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
2300     VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
2301     VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
2302     VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
2303     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
2304     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
2305     VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
2306     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2307 } VkAccessFlagBits;
2308 typedef VkFlags VkAccessFlags;
2309 
2310 typedef enum VkImageAspectFlagBits {
2311     VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2312     VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2313     VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2314     VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
2315     VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2316     VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2317     VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2318     VK_IMAGE_ASPECT_NONE = 0,
2319     VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2320     VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2321     VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2322     VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
2323     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
2324     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
2325     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
2326     VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
2327     VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2328 } VkImageAspectFlagBits;
2329 typedef VkFlags VkImageAspectFlags;
2330 
2331 typedef enum VkFormatFeatureFlagBits {
2332     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
2333     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
2334     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
2335     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
2336     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
2337     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
2338     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
2339     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
2340     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
2341     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
2342     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
2343     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
2344     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
2345     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2346     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2347     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2348     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2349     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2350     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2351     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2352     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2353     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2354     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
2355     VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
2356     VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
2357     VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
2358     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
2359     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
2360     VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
2361     VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
2362     VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
2363     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2364     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2365     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2366     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2367     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2368     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2369     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2370     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2371     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,
2372     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
2373     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2374     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2375 } VkFormatFeatureFlagBits;
2376 typedef VkFlags VkFormatFeatureFlags;
2377 
2378 typedef enum VkImageCreateFlagBits {
2379     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2380     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2381     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2382     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
2383     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
2384     VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2385     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
2386     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
2387     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2388     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
2389     VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
2390     VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
2391     VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
2392     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
2393     VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
2394     VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
2395     VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
2396     VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
2397     VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000,
2398     VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
2399     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2400     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2401     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2402     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2403     VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
2404     VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
2405     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2406 } VkImageCreateFlagBits;
2407 typedef VkFlags VkImageCreateFlags;
2408 
2409 typedef enum VkSampleCountFlagBits {
2410     VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2411     VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2412     VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2413     VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2414     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2415     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2416     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2417     VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2418 } VkSampleCountFlagBits;
2419 typedef VkFlags VkSampleCountFlags;
2420 
2421 typedef enum VkImageUsageFlagBits {
2422     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2423     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
2424     VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
2425     VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
2426     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
2427     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
2428     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
2429     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
2430     VK_IMAGE_USAGE_HOST_TRANSFER_BIT = 0x00400000,
2431     VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
2432     VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
2433     VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
2434     VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
2435     VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
2436     VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
2437     VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
2438     VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
2439     VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
2440     VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
2441     VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
2442     VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
2443     VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2444     VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = VK_IMAGE_USAGE_HOST_TRANSFER_BIT,
2445     VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2446 } VkImageUsageFlagBits;
2447 typedef VkFlags VkImageUsageFlags;
2448 
2449 typedef enum VkInstanceCreateFlagBits {
2450     VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
2451     VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2452 } VkInstanceCreateFlagBits;
2453 typedef VkFlags VkInstanceCreateFlags;
2454 
2455 typedef enum VkMemoryHeapFlagBits {
2456     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
2457     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2458     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2459     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2460 } VkMemoryHeapFlagBits;
2461 typedef VkFlags VkMemoryHeapFlags;
2462 
2463 typedef enum VkMemoryPropertyFlagBits {
2464     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2465     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2466     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2467     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2468     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
2469     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
2470     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
2471     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
2472     VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
2473     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2474 } VkMemoryPropertyFlagBits;
2475 typedef VkFlags VkMemoryPropertyFlags;
2476 
2477 typedef enum VkQueueFlagBits {
2478     VK_QUEUE_GRAPHICS_BIT = 0x00000001,
2479     VK_QUEUE_COMPUTE_BIT = 0x00000002,
2480     VK_QUEUE_TRANSFER_BIT = 0x00000004,
2481     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
2482     VK_QUEUE_PROTECTED_BIT = 0x00000010,
2483     VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
2484     VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
2485     VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
2486     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2487 } VkQueueFlagBits;
2488 typedef VkFlags VkQueueFlags;
2489 typedef VkFlags VkDeviceCreateFlags;
2490 
2491 typedef enum VkDeviceQueueCreateFlagBits {
2492     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2493     VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2494 } VkDeviceQueueCreateFlagBits;
2495 typedef VkFlags VkDeviceQueueCreateFlags;
2496 
2497 typedef enum VkPipelineStageFlagBits {
2498     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
2499     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
2500     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
2501     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
2502     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
2503     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
2504     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
2505     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
2506     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
2507     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
2508     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
2509     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
2510     VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
2511     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2512     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
2513     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
2514     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
2515     VK_PIPELINE_STAGE_NONE = 0,
2516     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
2517     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
2518     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
2519     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
2520     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2521     VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
2522     VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
2523     VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
2524     VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
2525     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2526     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2527     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2528     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2529     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
2530     VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
2531     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2532 } VkPipelineStageFlagBits;
2533 typedef VkFlags VkPipelineStageFlags;
2534 
2535 typedef enum VkMemoryMapFlagBits {
2536     VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
2537     VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2538 } VkMemoryMapFlagBits;
2539 typedef VkFlags VkMemoryMapFlags;
2540 
2541 typedef enum VkSparseMemoryBindFlagBits {
2542     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2543     VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2544 } VkSparseMemoryBindFlagBits;
2545 typedef VkFlags VkSparseMemoryBindFlags;
2546 
2547 typedef enum VkSparseImageFormatFlagBits {
2548     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
2549     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
2550     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
2551     VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2552 } VkSparseImageFormatFlagBits;
2553 typedef VkFlags VkSparseImageFormatFlags;
2554 
2555 typedef enum VkFenceCreateFlagBits {
2556     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2557     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2558 } VkFenceCreateFlagBits;
2559 typedef VkFlags VkFenceCreateFlags;
2560 typedef VkFlags VkSemaphoreCreateFlags;
2561 
2562 typedef enum VkEventCreateFlagBits {
2563     VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
2564     VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
2565     VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2566 } VkEventCreateFlagBits;
2567 typedef VkFlags VkEventCreateFlags;
2568 
2569 typedef enum VkQueryPipelineStatisticFlagBits {
2570     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
2571     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
2572     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
2573     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
2574     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
2575     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
2576     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
2577     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
2578     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
2579     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
2580     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
2581     VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
2582     VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
2583     VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
2584     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2585 } VkQueryPipelineStatisticFlagBits;
2586 typedef VkFlags VkQueryPipelineStatisticFlags;
2587 typedef VkFlags VkQueryPoolCreateFlags;
2588 
2589 typedef enum VkQueryResultFlagBits {
2590     VK_QUERY_RESULT_64_BIT = 0x00000001,
2591     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
2592     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
2593     VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
2594     VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
2595     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2596 } VkQueryResultFlagBits;
2597 typedef VkFlags VkQueryResultFlags;
2598 
2599 typedef enum VkBufferCreateFlagBits {
2600     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2601     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2602     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2603     VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
2604     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
2605     VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
2606     VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
2607     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2608     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2609     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2610 } VkBufferCreateFlagBits;
2611 typedef VkFlags VkBufferCreateFlags;
2612 
2613 typedef enum VkBufferUsageFlagBits {
2614     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2615     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
2616     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
2617     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
2618     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
2619     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
2620     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
2621     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
2622     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
2623     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
2624     VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
2625     VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
2626     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2627     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
2628     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
2629 #ifdef VK_ENABLE_BETA_EXTENSIONS
2630     VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
2631 #endif
2632     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
2633     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
2634     VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
2635     VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
2636     VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
2637     VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
2638     VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
2639     VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
2640     VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
2641     VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
2642     VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
2643     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2644     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2645     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2646 } VkBufferUsageFlagBits;
2647 typedef VkFlags VkBufferUsageFlags;
2648 typedef VkFlags VkBufferViewCreateFlags;
2649 
2650 typedef enum VkImageViewCreateFlagBits {
2651     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
2652     VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
2653     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
2654     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2655 } VkImageViewCreateFlagBits;
2656 typedef VkFlags VkImageViewCreateFlags;
2657 typedef VkFlags VkShaderModuleCreateFlags;
2658 
2659 typedef enum VkPipelineCacheCreateFlagBits {
2660     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
2661     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
2662     VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2663 } VkPipelineCacheCreateFlagBits;
2664 typedef VkFlags VkPipelineCacheCreateFlags;
2665 
2666 typedef enum VkColorComponentFlagBits {
2667     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2668     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2669     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2670     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
2671     VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2672 } VkColorComponentFlagBits;
2673 typedef VkFlags VkColorComponentFlags;
2674 
2675 typedef enum VkPipelineCreateFlagBits {
2676     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2677     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2678     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
2679     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2680     VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
2681     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
2682     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
2683     VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT = 0x08000000,
2684     VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT = 0x40000000,
2685     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
2686     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
2687     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
2688     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
2689     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
2690     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
2691     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
2692     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
2693     VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
2694     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
2695     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
2696     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
2697     VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
2698     VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
2699     VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
2700     VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
2701     VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
2702     VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
2703     VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
2704     VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
2705     VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
2706 #ifdef VK_ENABLE_BETA_EXTENSIONS
2707     VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
2708 #endif
2709     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
2710   // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a deprecated alias
2711     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2712   // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a deprecated alias
2713     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
2714     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
2715     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
2716     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
2717     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
2718     VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT,
2719     VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT,
2720     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2721 } VkPipelineCreateFlagBits;
2722 typedef VkFlags VkPipelineCreateFlags;
2723 
2724 typedef enum VkPipelineShaderStageCreateFlagBits {
2725     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
2726     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
2727     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
2728     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
2729     VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2730 } VkPipelineShaderStageCreateFlagBits;
2731 typedef VkFlags VkPipelineShaderStageCreateFlags;
2732 
2733 typedef enum VkShaderStageFlagBits {
2734     VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
2735     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2736     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
2737     VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2738     VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2739     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
2740     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
2741     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2742     VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
2743     VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
2744     VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
2745     VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
2746     VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
2747     VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
2748     VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
2749     VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
2750     VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
2751     VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
2752     VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
2753     VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
2754     VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
2755     VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
2756     VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
2757     VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
2758     VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
2759     VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
2760     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2761 } VkShaderStageFlagBits;
2762 
2763 typedef enum VkCullModeFlagBits {
2764     VK_CULL_MODE_NONE = 0,
2765     VK_CULL_MODE_FRONT_BIT = 0x00000001,
2766     VK_CULL_MODE_BACK_BIT = 0x00000002,
2767     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2768     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2769 } VkCullModeFlagBits;
2770 typedef VkFlags VkCullModeFlags;
2771 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
2772 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
2773 typedef VkFlags VkPipelineTessellationStateCreateFlags;
2774 typedef VkFlags VkPipelineViewportStateCreateFlags;
2775 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
2776 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
2777 
2778 typedef enum VkPipelineDepthStencilStateCreateFlagBits {
2779     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
2780     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
2781     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,
2782     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,
2783     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2784 } VkPipelineDepthStencilStateCreateFlagBits;
2785 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
2786 
2787 typedef enum VkPipelineColorBlendStateCreateFlagBits {
2788     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
2789     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
2790     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2791 } VkPipelineColorBlendStateCreateFlagBits;
2792 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
2793 typedef VkFlags VkPipelineDynamicStateCreateFlags;
2794 
2795 typedef enum VkPipelineLayoutCreateFlagBits {
2796     VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
2797     VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2798 } VkPipelineLayoutCreateFlagBits;
2799 typedef VkFlags VkPipelineLayoutCreateFlags;
2800 typedef VkFlags VkShaderStageFlags;
2801 
2802 typedef enum VkSamplerCreateFlagBits {
2803     VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
2804     VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
2805     VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
2806     VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
2807     VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
2808     VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2809 } VkSamplerCreateFlagBits;
2810 typedef VkFlags VkSamplerCreateFlags;
2811 
2812 typedef enum VkDescriptorPoolCreateFlagBits {
2813     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
2814     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
2815     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
2816     VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
2817     VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
2818     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
2819     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
2820     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2821 } VkDescriptorPoolCreateFlagBits;
2822 typedef VkFlags VkDescriptorPoolCreateFlags;
2823 typedef VkFlags VkDescriptorPoolResetFlags;
2824 
2825 typedef enum VkDescriptorSetLayoutCreateFlagBits {
2826     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
2827     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT = 0x00000001,
2828     VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
2829     VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
2830     VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
2831     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
2832     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
2833     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT,
2834     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
2835     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
2836     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2837 } VkDescriptorSetLayoutCreateFlagBits;
2838 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
2839 
2840 typedef enum VkAttachmentDescriptionFlagBits {
2841     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
2842     VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2843 } VkAttachmentDescriptionFlagBits;
2844 typedef VkFlags VkAttachmentDescriptionFlags;
2845 
2846 typedef enum VkDependencyFlagBits {
2847     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
2848     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2849     VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
2850     VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
2851     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
2852     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
2853     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2854 } VkDependencyFlagBits;
2855 typedef VkFlags VkDependencyFlags;
2856 
2857 typedef enum VkFramebufferCreateFlagBits {
2858     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
2859     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
2860     VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2861 } VkFramebufferCreateFlagBits;
2862 typedef VkFlags VkFramebufferCreateFlags;
2863 
2864 typedef enum VkRenderPassCreateFlagBits {
2865     VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
2866     VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2867 } VkRenderPassCreateFlagBits;
2868 typedef VkFlags VkRenderPassCreateFlags;
2869 
2870 typedef enum VkSubpassDescriptionFlagBits {
2871     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2872     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
2873     VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
2874     VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
2875     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
2876     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
2877     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
2878     VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
2879     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
2880     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
2881     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
2882     VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2883 } VkSubpassDescriptionFlagBits;
2884 typedef VkFlags VkSubpassDescriptionFlags;
2885 
2886 typedef enum VkCommandPoolCreateFlagBits {
2887     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
2888     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
2889     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
2890     VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2891 } VkCommandPoolCreateFlagBits;
2892 typedef VkFlags VkCommandPoolCreateFlags;
2893 
2894 typedef enum VkCommandPoolResetFlagBits {
2895     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2896     VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2897 } VkCommandPoolResetFlagBits;
2898 typedef VkFlags VkCommandPoolResetFlags;
2899 
2900 typedef enum VkCommandBufferUsageFlagBits {
2901     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2902     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2903     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
2904     VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2905 } VkCommandBufferUsageFlagBits;
2906 typedef VkFlags VkCommandBufferUsageFlags;
2907 
2908 typedef enum VkQueryControlFlagBits {
2909     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
2910     VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2911 } VkQueryControlFlagBits;
2912 typedef VkFlags VkQueryControlFlags;
2913 
2914 typedef enum VkCommandBufferResetFlagBits {
2915     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2916     VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2917 } VkCommandBufferResetFlagBits;
2918 typedef VkFlags VkCommandBufferResetFlags;
2919 
2920 typedef enum VkStencilFaceFlagBits {
2921     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
2922     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
2923     VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
2924   // VK_STENCIL_FRONT_AND_BACK is a deprecated alias
2925     VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
2926     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2927 } VkStencilFaceFlagBits;
2928 typedef VkFlags VkStencilFaceFlags;
2929 typedef struct VkExtent2D {
2930     uint32_t    width;
2931     uint32_t    height;
2932 } VkExtent2D;
2933 
2934 typedef struct VkExtent3D {
2935     uint32_t    width;
2936     uint32_t    height;
2937     uint32_t    depth;
2938 } VkExtent3D;
2939 
2940 typedef struct VkOffset2D {
2941     int32_t    x;
2942     int32_t    y;
2943 } VkOffset2D;
2944 
2945 typedef struct VkOffset3D {
2946     int32_t    x;
2947     int32_t    y;
2948     int32_t    z;
2949 } VkOffset3D;
2950 
2951 typedef struct VkRect2D {
2952     VkOffset2D    offset;
2953     VkExtent2D    extent;
2954 } VkRect2D;
2955 
2956 typedef struct VkBaseInStructure {
2957     VkStructureType                    sType;
2958     const struct VkBaseInStructure*    pNext;
2959 } VkBaseInStructure;
2960 
2961 typedef struct VkBaseOutStructure {
2962     VkStructureType               sType;
2963     struct VkBaseOutStructure*    pNext;
2964 } VkBaseOutStructure;
2965 
2966 typedef struct VkBufferMemoryBarrier {
2967     VkStructureType    sType;
2968     const void*        pNext;
2969     VkAccessFlags      srcAccessMask;
2970     VkAccessFlags      dstAccessMask;
2971     uint32_t           srcQueueFamilyIndex;
2972     uint32_t           dstQueueFamilyIndex;
2973     VkBuffer           buffer;
2974     VkDeviceSize       offset;
2975     VkDeviceSize       size;
2976 } VkBufferMemoryBarrier;
2977 
2978 typedef struct VkDispatchIndirectCommand {
2979     uint32_t    x;
2980     uint32_t    y;
2981     uint32_t    z;
2982 } VkDispatchIndirectCommand;
2983 
2984 typedef struct VkDrawIndexedIndirectCommand {
2985     uint32_t    indexCount;
2986     uint32_t    instanceCount;
2987     uint32_t    firstIndex;
2988     int32_t     vertexOffset;
2989     uint32_t    firstInstance;
2990 } VkDrawIndexedIndirectCommand;
2991 
2992 typedef struct VkDrawIndirectCommand {
2993     uint32_t    vertexCount;
2994     uint32_t    instanceCount;
2995     uint32_t    firstVertex;
2996     uint32_t    firstInstance;
2997 } VkDrawIndirectCommand;
2998 
2999 typedef struct VkImageSubresourceRange {
3000     VkImageAspectFlags    aspectMask;
3001     uint32_t              baseMipLevel;
3002     uint32_t              levelCount;
3003     uint32_t              baseArrayLayer;
3004     uint32_t              layerCount;
3005 } VkImageSubresourceRange;
3006 
3007 typedef struct VkImageMemoryBarrier {
3008     VkStructureType            sType;
3009     const void*                pNext;
3010     VkAccessFlags              srcAccessMask;
3011     VkAccessFlags              dstAccessMask;
3012     VkImageLayout              oldLayout;
3013     VkImageLayout              newLayout;
3014     uint32_t                   srcQueueFamilyIndex;
3015     uint32_t                   dstQueueFamilyIndex;
3016     VkImage                    image;
3017     VkImageSubresourceRange    subresourceRange;
3018 } VkImageMemoryBarrier;
3019 
3020 typedef struct VkMemoryBarrier {
3021     VkStructureType    sType;
3022     const void*        pNext;
3023     VkAccessFlags      srcAccessMask;
3024     VkAccessFlags      dstAccessMask;
3025 } VkMemoryBarrier;
3026 
3027 typedef struct VkPipelineCacheHeaderVersionOne {
3028     uint32_t                        headerSize;
3029     VkPipelineCacheHeaderVersion    headerVersion;
3030     uint32_t                        vendorID;
3031     uint32_t                        deviceID;
3032     uint8_t                         pipelineCacheUUID[VK_UUID_SIZE];
3033 } VkPipelineCacheHeaderVersionOne;
3034 
3035 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
3036     void*                                       pUserData,
3037     size_t                                      size,
3038     size_t                                      alignment,
3039     VkSystemAllocationScope                     allocationScope);
3040 
3041 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
3042     void*                                       pUserData,
3043     void*                                       pMemory);
3044 
3045 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
3046     void*                                       pUserData,
3047     size_t                                      size,
3048     VkInternalAllocationType                    allocationType,
3049     VkSystemAllocationScope                     allocationScope);
3050 
3051 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
3052     void*                                       pUserData,
3053     size_t                                      size,
3054     VkInternalAllocationType                    allocationType,
3055     VkSystemAllocationScope                     allocationScope);
3056 
3057 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
3058     void*                                       pUserData,
3059     void*                                       pOriginal,
3060     size_t                                      size,
3061     size_t                                      alignment,
3062     VkSystemAllocationScope                     allocationScope);
3063 
3064 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
3065 typedef struct VkAllocationCallbacks {
3066     void*                                   pUserData;
3067     PFN_vkAllocationFunction                pfnAllocation;
3068     PFN_vkReallocationFunction              pfnReallocation;
3069     PFN_vkFreeFunction                      pfnFree;
3070     PFN_vkInternalAllocationNotification    pfnInternalAllocation;
3071     PFN_vkInternalFreeNotification          pfnInternalFree;
3072 } VkAllocationCallbacks;
3073 
3074 typedef struct VkApplicationInfo {
3075     VkStructureType    sType;
3076     const void*        pNext;
3077     const char*        pApplicationName;
3078     uint32_t           applicationVersion;
3079     const char*        pEngineName;
3080     uint32_t           engineVersion;
3081     uint32_t           apiVersion;
3082 } VkApplicationInfo;
3083 
3084 typedef struct VkFormatProperties {
3085     VkFormatFeatureFlags    linearTilingFeatures;
3086     VkFormatFeatureFlags    optimalTilingFeatures;
3087     VkFormatFeatureFlags    bufferFeatures;
3088 } VkFormatProperties;
3089 
3090 typedef struct VkImageFormatProperties {
3091     VkExtent3D            maxExtent;
3092     uint32_t              maxMipLevels;
3093     uint32_t              maxArrayLayers;
3094     VkSampleCountFlags    sampleCounts;
3095     VkDeviceSize          maxResourceSize;
3096 } VkImageFormatProperties;
3097 
3098 typedef struct VkInstanceCreateInfo {
3099     VkStructureType             sType;
3100     const void*                 pNext;
3101     VkInstanceCreateFlags       flags;
3102     const VkApplicationInfo*    pApplicationInfo;
3103     uint32_t                    enabledLayerCount;
3104     const char* const*          ppEnabledLayerNames;
3105     uint32_t                    enabledExtensionCount;
3106     const char* const*          ppEnabledExtensionNames;
3107 } VkInstanceCreateInfo;
3108 
3109 typedef struct VkMemoryHeap {
3110     VkDeviceSize         size;
3111     VkMemoryHeapFlags    flags;
3112 } VkMemoryHeap;
3113 
3114 typedef struct VkMemoryType {
3115     VkMemoryPropertyFlags    propertyFlags;
3116     uint32_t                 heapIndex;
3117 } VkMemoryType;
3118 
3119 typedef struct VkPhysicalDeviceFeatures {
3120     VkBool32    robustBufferAccess;
3121     VkBool32    fullDrawIndexUint32;
3122     VkBool32    imageCubeArray;
3123     VkBool32    independentBlend;
3124     VkBool32    geometryShader;
3125     VkBool32    tessellationShader;
3126     VkBool32    sampleRateShading;
3127     VkBool32    dualSrcBlend;
3128     VkBool32    logicOp;
3129     VkBool32    multiDrawIndirect;
3130     VkBool32    drawIndirectFirstInstance;
3131     VkBool32    depthClamp;
3132     VkBool32    depthBiasClamp;
3133     VkBool32    fillModeNonSolid;
3134     VkBool32    depthBounds;
3135     VkBool32    wideLines;
3136     VkBool32    largePoints;
3137     VkBool32    alphaToOne;
3138     VkBool32    multiViewport;
3139     VkBool32    samplerAnisotropy;
3140     VkBool32    textureCompressionETC2;
3141     VkBool32    textureCompressionASTC_LDR;
3142     VkBool32    textureCompressionBC;
3143     VkBool32    occlusionQueryPrecise;
3144     VkBool32    pipelineStatisticsQuery;
3145     VkBool32    vertexPipelineStoresAndAtomics;
3146     VkBool32    fragmentStoresAndAtomics;
3147     VkBool32    shaderTessellationAndGeometryPointSize;
3148     VkBool32    shaderImageGatherExtended;
3149     VkBool32    shaderStorageImageExtendedFormats;
3150     VkBool32    shaderStorageImageMultisample;
3151     VkBool32    shaderStorageImageReadWithoutFormat;
3152     VkBool32    shaderStorageImageWriteWithoutFormat;
3153     VkBool32    shaderUniformBufferArrayDynamicIndexing;
3154     VkBool32    shaderSampledImageArrayDynamicIndexing;
3155     VkBool32    shaderStorageBufferArrayDynamicIndexing;
3156     VkBool32    shaderStorageImageArrayDynamicIndexing;
3157     VkBool32    shaderClipDistance;
3158     VkBool32    shaderCullDistance;
3159     VkBool32    shaderFloat64;
3160     VkBool32    shaderInt64;
3161     VkBool32    shaderInt16;
3162     VkBool32    shaderResourceResidency;
3163     VkBool32    shaderResourceMinLod;
3164     VkBool32    sparseBinding;
3165     VkBool32    sparseResidencyBuffer;
3166     VkBool32    sparseResidencyImage2D;
3167     VkBool32    sparseResidencyImage3D;
3168     VkBool32    sparseResidency2Samples;
3169     VkBool32    sparseResidency4Samples;
3170     VkBool32    sparseResidency8Samples;
3171     VkBool32    sparseResidency16Samples;
3172     VkBool32    sparseResidencyAliased;
3173     VkBool32    variableMultisampleRate;
3174     VkBool32    inheritedQueries;
3175 } VkPhysicalDeviceFeatures;
3176 
3177 typedef struct VkPhysicalDeviceLimits {
3178     uint32_t              maxImageDimension1D;
3179     uint32_t              maxImageDimension2D;
3180     uint32_t              maxImageDimension3D;
3181     uint32_t              maxImageDimensionCube;
3182     uint32_t              maxImageArrayLayers;
3183     uint32_t              maxTexelBufferElements;
3184     uint32_t              maxUniformBufferRange;
3185     uint32_t              maxStorageBufferRange;
3186     uint32_t              maxPushConstantsSize;
3187     uint32_t              maxMemoryAllocationCount;
3188     uint32_t              maxSamplerAllocationCount;
3189     VkDeviceSize          bufferImageGranularity;
3190     VkDeviceSize          sparseAddressSpaceSize;
3191     uint32_t              maxBoundDescriptorSets;
3192     uint32_t              maxPerStageDescriptorSamplers;
3193     uint32_t              maxPerStageDescriptorUniformBuffers;
3194     uint32_t              maxPerStageDescriptorStorageBuffers;
3195     uint32_t              maxPerStageDescriptorSampledImages;
3196     uint32_t              maxPerStageDescriptorStorageImages;
3197     uint32_t              maxPerStageDescriptorInputAttachments;
3198     uint32_t              maxPerStageResources;
3199     uint32_t              maxDescriptorSetSamplers;
3200     uint32_t              maxDescriptorSetUniformBuffers;
3201     uint32_t              maxDescriptorSetUniformBuffersDynamic;
3202     uint32_t              maxDescriptorSetStorageBuffers;
3203     uint32_t              maxDescriptorSetStorageBuffersDynamic;
3204     uint32_t              maxDescriptorSetSampledImages;
3205     uint32_t              maxDescriptorSetStorageImages;
3206     uint32_t              maxDescriptorSetInputAttachments;
3207     uint32_t              maxVertexInputAttributes;
3208     uint32_t              maxVertexInputBindings;
3209     uint32_t              maxVertexInputAttributeOffset;
3210     uint32_t              maxVertexInputBindingStride;
3211     uint32_t              maxVertexOutputComponents;
3212     uint32_t              maxTessellationGenerationLevel;
3213     uint32_t              maxTessellationPatchSize;
3214     uint32_t              maxTessellationControlPerVertexInputComponents;
3215     uint32_t              maxTessellationControlPerVertexOutputComponents;
3216     uint32_t              maxTessellationControlPerPatchOutputComponents;
3217     uint32_t              maxTessellationControlTotalOutputComponents;
3218     uint32_t              maxTessellationEvaluationInputComponents;
3219     uint32_t              maxTessellationEvaluationOutputComponents;
3220     uint32_t              maxGeometryShaderInvocations;
3221     uint32_t              maxGeometryInputComponents;
3222     uint32_t              maxGeometryOutputComponents;
3223     uint32_t              maxGeometryOutputVertices;
3224     uint32_t              maxGeometryTotalOutputComponents;
3225     uint32_t              maxFragmentInputComponents;
3226     uint32_t              maxFragmentOutputAttachments;
3227     uint32_t              maxFragmentDualSrcAttachments;
3228     uint32_t              maxFragmentCombinedOutputResources;
3229     uint32_t              maxComputeSharedMemorySize;
3230     uint32_t              maxComputeWorkGroupCount[3];
3231     uint32_t              maxComputeWorkGroupInvocations;
3232     uint32_t              maxComputeWorkGroupSize[3];
3233     uint32_t              subPixelPrecisionBits;
3234     uint32_t              subTexelPrecisionBits;
3235     uint32_t              mipmapPrecisionBits;
3236     uint32_t              maxDrawIndexedIndexValue;
3237     uint32_t              maxDrawIndirectCount;
3238     float                 maxSamplerLodBias;
3239     float                 maxSamplerAnisotropy;
3240     uint32_t              maxViewports;
3241     uint32_t              maxViewportDimensions[2];
3242     float                 viewportBoundsRange[2];
3243     uint32_t              viewportSubPixelBits;
3244     size_t                minMemoryMapAlignment;
3245     VkDeviceSize          minTexelBufferOffsetAlignment;
3246     VkDeviceSize          minUniformBufferOffsetAlignment;
3247     VkDeviceSize          minStorageBufferOffsetAlignment;
3248     int32_t               minTexelOffset;
3249     uint32_t              maxTexelOffset;
3250     int32_t               minTexelGatherOffset;
3251     uint32_t              maxTexelGatherOffset;
3252     float                 minInterpolationOffset;
3253     float                 maxInterpolationOffset;
3254     uint32_t              subPixelInterpolationOffsetBits;
3255     uint32_t              maxFramebufferWidth;
3256     uint32_t              maxFramebufferHeight;
3257     uint32_t              maxFramebufferLayers;
3258     VkSampleCountFlags    framebufferColorSampleCounts;
3259     VkSampleCountFlags    framebufferDepthSampleCounts;
3260     VkSampleCountFlags    framebufferStencilSampleCounts;
3261     VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
3262     uint32_t              maxColorAttachments;
3263     VkSampleCountFlags    sampledImageColorSampleCounts;
3264     VkSampleCountFlags    sampledImageIntegerSampleCounts;
3265     VkSampleCountFlags    sampledImageDepthSampleCounts;
3266     VkSampleCountFlags    sampledImageStencilSampleCounts;
3267     VkSampleCountFlags    storageImageSampleCounts;
3268     uint32_t              maxSampleMaskWords;
3269     VkBool32              timestampComputeAndGraphics;
3270     float                 timestampPeriod;
3271     uint32_t              maxClipDistances;
3272     uint32_t              maxCullDistances;
3273     uint32_t              maxCombinedClipAndCullDistances;
3274     uint32_t              discreteQueuePriorities;
3275     float                 pointSizeRange[2];
3276     float                 lineWidthRange[2];
3277     float                 pointSizeGranularity;
3278     float                 lineWidthGranularity;
3279     VkBool32              strictLines;
3280     VkBool32              standardSampleLocations;
3281     VkDeviceSize          optimalBufferCopyOffsetAlignment;
3282     VkDeviceSize          optimalBufferCopyRowPitchAlignment;
3283     VkDeviceSize          nonCoherentAtomSize;
3284 } VkPhysicalDeviceLimits;
3285 
3286 typedef struct VkPhysicalDeviceMemoryProperties {
3287     uint32_t        memoryTypeCount;
3288     VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
3289     uint32_t        memoryHeapCount;
3290     VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
3291 } VkPhysicalDeviceMemoryProperties;
3292 
3293 typedef struct VkPhysicalDeviceSparseProperties {
3294     VkBool32    residencyStandard2DBlockShape;
3295     VkBool32    residencyStandard2DMultisampleBlockShape;
3296     VkBool32    residencyStandard3DBlockShape;
3297     VkBool32    residencyAlignedMipSize;
3298     VkBool32    residencyNonResidentStrict;
3299 } VkPhysicalDeviceSparseProperties;
3300 
3301 typedef struct VkPhysicalDeviceProperties {
3302     uint32_t                            apiVersion;
3303     uint32_t                            driverVersion;
3304     uint32_t                            vendorID;
3305     uint32_t                            deviceID;
3306     VkPhysicalDeviceType                deviceType;
3307     char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3308     uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
3309     VkPhysicalDeviceLimits              limits;
3310     VkPhysicalDeviceSparseProperties    sparseProperties;
3311 } VkPhysicalDeviceProperties;
3312 
3313 typedef struct VkQueueFamilyProperties {
3314     VkQueueFlags    queueFlags;
3315     uint32_t        queueCount;
3316     uint32_t        timestampValidBits;
3317     VkExtent3D      minImageTransferGranularity;
3318 } VkQueueFamilyProperties;
3319 
3320 typedef struct VkDeviceQueueCreateInfo {
3321     VkStructureType             sType;
3322     const void*                 pNext;
3323     VkDeviceQueueCreateFlags    flags;
3324     uint32_t                    queueFamilyIndex;
3325     uint32_t                    queueCount;
3326     const float*                pQueuePriorities;
3327 } VkDeviceQueueCreateInfo;
3328 
3329 typedef struct VkDeviceCreateInfo {
3330     VkStructureType                    sType;
3331     const void*                        pNext;
3332     VkDeviceCreateFlags                flags;
3333     uint32_t                           queueCreateInfoCount;
3334     const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
3335     // enabledLayerCount is deprecated and should not be used
3336     uint32_t                           enabledLayerCount;
3337     // ppEnabledLayerNames is deprecated and should not be used
3338     const char* const*                 ppEnabledLayerNames;
3339     uint32_t                           enabledExtensionCount;
3340     const char* const*                 ppEnabledExtensionNames;
3341     const VkPhysicalDeviceFeatures*    pEnabledFeatures;
3342 } VkDeviceCreateInfo;
3343 
3344 typedef struct VkExtensionProperties {
3345     char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
3346     uint32_t    specVersion;
3347 } VkExtensionProperties;
3348 
3349 typedef struct VkLayerProperties {
3350     char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
3351     uint32_t    specVersion;
3352     uint32_t    implementationVersion;
3353     char        description[VK_MAX_DESCRIPTION_SIZE];
3354 } VkLayerProperties;
3355 
3356 typedef struct VkSubmitInfo {
3357     VkStructureType                sType;
3358     const void*                    pNext;
3359     uint32_t                       waitSemaphoreCount;
3360     const VkSemaphore*             pWaitSemaphores;
3361     const VkPipelineStageFlags*    pWaitDstStageMask;
3362     uint32_t                       commandBufferCount;
3363     const VkCommandBuffer*         pCommandBuffers;
3364     uint32_t                       signalSemaphoreCount;
3365     const VkSemaphore*             pSignalSemaphores;
3366 } VkSubmitInfo;
3367 
3368 typedef struct VkMappedMemoryRange {
3369     VkStructureType    sType;
3370     const void*        pNext;
3371     VkDeviceMemory     memory;
3372     VkDeviceSize       offset;
3373     VkDeviceSize       size;
3374 } VkMappedMemoryRange;
3375 
3376 typedef struct VkMemoryAllocateInfo {
3377     VkStructureType    sType;
3378     const void*        pNext;
3379     VkDeviceSize       allocationSize;
3380     uint32_t           memoryTypeIndex;
3381 } VkMemoryAllocateInfo;
3382 
3383 typedef struct VkMemoryRequirements {
3384     VkDeviceSize    size;
3385     VkDeviceSize    alignment;
3386     uint32_t        memoryTypeBits;
3387 } VkMemoryRequirements;
3388 
3389 typedef struct VkSparseMemoryBind {
3390     VkDeviceSize               resourceOffset;
3391     VkDeviceSize               size;
3392     VkDeviceMemory             memory;
3393     VkDeviceSize               memoryOffset;
3394     VkSparseMemoryBindFlags    flags;
3395 } VkSparseMemoryBind;
3396 
3397 typedef struct VkSparseBufferMemoryBindInfo {
3398     VkBuffer                     buffer;
3399     uint32_t                     bindCount;
3400     const VkSparseMemoryBind*    pBinds;
3401 } VkSparseBufferMemoryBindInfo;
3402 
3403 typedef struct VkSparseImageOpaqueMemoryBindInfo {
3404     VkImage                      image;
3405     uint32_t                     bindCount;
3406     const VkSparseMemoryBind*    pBinds;
3407 } VkSparseImageOpaqueMemoryBindInfo;
3408 
3409 typedef struct VkImageSubresource {
3410     VkImageAspectFlags    aspectMask;
3411     uint32_t              mipLevel;
3412     uint32_t              arrayLayer;
3413 } VkImageSubresource;
3414 
3415 typedef struct VkSparseImageMemoryBind {
3416     VkImageSubresource         subresource;
3417     VkOffset3D                 offset;
3418     VkExtent3D                 extent;
3419     VkDeviceMemory             memory;
3420     VkDeviceSize               memoryOffset;
3421     VkSparseMemoryBindFlags    flags;
3422 } VkSparseImageMemoryBind;
3423 
3424 typedef struct VkSparseImageMemoryBindInfo {
3425     VkImage                           image;
3426     uint32_t                          bindCount;
3427     const VkSparseImageMemoryBind*    pBinds;
3428 } VkSparseImageMemoryBindInfo;
3429 
3430 typedef struct VkBindSparseInfo {
3431     VkStructureType                             sType;
3432     const void*                                 pNext;
3433     uint32_t                                    waitSemaphoreCount;
3434     const VkSemaphore*                          pWaitSemaphores;
3435     uint32_t                                    bufferBindCount;
3436     const VkSparseBufferMemoryBindInfo*         pBufferBinds;
3437     uint32_t                                    imageOpaqueBindCount;
3438     const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
3439     uint32_t                                    imageBindCount;
3440     const VkSparseImageMemoryBindInfo*          pImageBinds;
3441     uint32_t                                    signalSemaphoreCount;
3442     const VkSemaphore*                          pSignalSemaphores;
3443 } VkBindSparseInfo;
3444 
3445 typedef struct VkSparseImageFormatProperties {
3446     VkImageAspectFlags          aspectMask;
3447     VkExtent3D                  imageGranularity;
3448     VkSparseImageFormatFlags    flags;
3449 } VkSparseImageFormatProperties;
3450 
3451 typedef struct VkSparseImageMemoryRequirements {
3452     VkSparseImageFormatProperties    formatProperties;
3453     uint32_t                         imageMipTailFirstLod;
3454     VkDeviceSize                     imageMipTailSize;
3455     VkDeviceSize                     imageMipTailOffset;
3456     VkDeviceSize                     imageMipTailStride;
3457 } VkSparseImageMemoryRequirements;
3458 
3459 typedef struct VkFenceCreateInfo {
3460     VkStructureType       sType;
3461     const void*           pNext;
3462     VkFenceCreateFlags    flags;
3463 } VkFenceCreateInfo;
3464 
3465 typedef struct VkSemaphoreCreateInfo {
3466     VkStructureType           sType;
3467     const void*               pNext;
3468     VkSemaphoreCreateFlags    flags;
3469 } VkSemaphoreCreateInfo;
3470 
3471 typedef struct VkEventCreateInfo {
3472     VkStructureType       sType;
3473     const void*           pNext;
3474     VkEventCreateFlags    flags;
3475 } VkEventCreateInfo;
3476 
3477 typedef struct VkQueryPoolCreateInfo {
3478     VkStructureType                  sType;
3479     const void*                      pNext;
3480     VkQueryPoolCreateFlags           flags;
3481     VkQueryType                      queryType;
3482     uint32_t                         queryCount;
3483     VkQueryPipelineStatisticFlags    pipelineStatistics;
3484 } VkQueryPoolCreateInfo;
3485 
3486 typedef struct VkBufferCreateInfo {
3487     VkStructureType        sType;
3488     const void*            pNext;
3489     VkBufferCreateFlags    flags;
3490     VkDeviceSize           size;
3491     VkBufferUsageFlags     usage;
3492     VkSharingMode          sharingMode;
3493     uint32_t               queueFamilyIndexCount;
3494     const uint32_t*        pQueueFamilyIndices;
3495 } VkBufferCreateInfo;
3496 
3497 typedef struct VkBufferViewCreateInfo {
3498     VkStructureType            sType;
3499     const void*                pNext;
3500     VkBufferViewCreateFlags    flags;
3501     VkBuffer                   buffer;
3502     VkFormat                   format;
3503     VkDeviceSize               offset;
3504     VkDeviceSize               range;
3505 } VkBufferViewCreateInfo;
3506 
3507 typedef struct VkImageCreateInfo {
3508     VkStructureType          sType;
3509     const void*              pNext;
3510     VkImageCreateFlags       flags;
3511     VkImageType              imageType;
3512     VkFormat                 format;
3513     VkExtent3D               extent;
3514     uint32_t                 mipLevels;
3515     uint32_t                 arrayLayers;
3516     VkSampleCountFlagBits    samples;
3517     VkImageTiling            tiling;
3518     VkImageUsageFlags        usage;
3519     VkSharingMode            sharingMode;
3520     uint32_t                 queueFamilyIndexCount;
3521     const uint32_t*          pQueueFamilyIndices;
3522     VkImageLayout            initialLayout;
3523 } VkImageCreateInfo;
3524 
3525 typedef struct VkSubresourceLayout {
3526     VkDeviceSize    offset;
3527     VkDeviceSize    size;
3528     VkDeviceSize    rowPitch;
3529     VkDeviceSize    arrayPitch;
3530     VkDeviceSize    depthPitch;
3531 } VkSubresourceLayout;
3532 
3533 typedef struct VkComponentMapping {
3534     VkComponentSwizzle    r;
3535     VkComponentSwizzle    g;
3536     VkComponentSwizzle    b;
3537     VkComponentSwizzle    a;
3538 } VkComponentMapping;
3539 
3540 typedef struct VkImageViewCreateInfo {
3541     VkStructureType            sType;
3542     const void*                pNext;
3543     VkImageViewCreateFlags     flags;
3544     VkImage                    image;
3545     VkImageViewType            viewType;
3546     VkFormat                   format;
3547     VkComponentMapping         components;
3548     VkImageSubresourceRange    subresourceRange;
3549 } VkImageViewCreateInfo;
3550 
3551 typedef struct VkShaderModuleCreateInfo {
3552     VkStructureType              sType;
3553     const void*                  pNext;
3554     VkShaderModuleCreateFlags    flags;
3555     size_t                       codeSize;
3556     const uint32_t*              pCode;
3557 } VkShaderModuleCreateInfo;
3558 
3559 typedef struct VkPipelineCacheCreateInfo {
3560     VkStructureType               sType;
3561     const void*                   pNext;
3562     VkPipelineCacheCreateFlags    flags;
3563     size_t                        initialDataSize;
3564     const void*                   pInitialData;
3565 } VkPipelineCacheCreateInfo;
3566 
3567 typedef struct VkSpecializationMapEntry {
3568     uint32_t    constantID;
3569     uint32_t    offset;
3570     size_t      size;
3571 } VkSpecializationMapEntry;
3572 
3573 typedef struct VkSpecializationInfo {
3574     uint32_t                           mapEntryCount;
3575     const VkSpecializationMapEntry*    pMapEntries;
3576     size_t                             dataSize;
3577     const void*                        pData;
3578 } VkSpecializationInfo;
3579 
3580 typedef struct VkPipelineShaderStageCreateInfo {
3581     VkStructureType                     sType;
3582     const void*                         pNext;
3583     VkPipelineShaderStageCreateFlags    flags;
3584     VkShaderStageFlagBits               stage;
3585     VkShaderModule                      module;
3586     const char*                         pName;
3587     const VkSpecializationInfo*         pSpecializationInfo;
3588 } VkPipelineShaderStageCreateInfo;
3589 
3590 typedef struct VkComputePipelineCreateInfo {
3591     VkStructureType                    sType;
3592     const void*                        pNext;
3593     VkPipelineCreateFlags              flags;
3594     VkPipelineShaderStageCreateInfo    stage;
3595     VkPipelineLayout                   layout;
3596     VkPipeline                         basePipelineHandle;
3597     int32_t                            basePipelineIndex;
3598 } VkComputePipelineCreateInfo;
3599 
3600 typedef struct VkVertexInputBindingDescription {
3601     uint32_t             binding;
3602     uint32_t             stride;
3603     VkVertexInputRate    inputRate;
3604 } VkVertexInputBindingDescription;
3605 
3606 typedef struct VkVertexInputAttributeDescription {
3607     uint32_t    location;
3608     uint32_t    binding;
3609     VkFormat    format;
3610     uint32_t    offset;
3611 } VkVertexInputAttributeDescription;
3612 
3613 typedef struct VkPipelineVertexInputStateCreateInfo {
3614     VkStructureType                             sType;
3615     const void*                                 pNext;
3616     VkPipelineVertexInputStateCreateFlags       flags;
3617     uint32_t                                    vertexBindingDescriptionCount;
3618     const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
3619     uint32_t                                    vertexAttributeDescriptionCount;
3620     const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
3621 } VkPipelineVertexInputStateCreateInfo;
3622 
3623 typedef struct VkPipelineInputAssemblyStateCreateInfo {
3624     VkStructureType                            sType;
3625     const void*                                pNext;
3626     VkPipelineInputAssemblyStateCreateFlags    flags;
3627     VkPrimitiveTopology                        topology;
3628     VkBool32                                   primitiveRestartEnable;
3629 } VkPipelineInputAssemblyStateCreateInfo;
3630 
3631 typedef struct VkPipelineTessellationStateCreateInfo {
3632     VkStructureType                           sType;
3633     const void*                               pNext;
3634     VkPipelineTessellationStateCreateFlags    flags;
3635     uint32_t                                  patchControlPoints;
3636 } VkPipelineTessellationStateCreateInfo;
3637 
3638 typedef struct VkViewport {
3639     float    x;
3640     float    y;
3641     float    width;
3642     float    height;
3643     float    minDepth;
3644     float    maxDepth;
3645 } VkViewport;
3646 
3647 typedef struct VkPipelineViewportStateCreateInfo {
3648     VkStructureType                       sType;
3649     const void*                           pNext;
3650     VkPipelineViewportStateCreateFlags    flags;
3651     uint32_t                              viewportCount;
3652     const VkViewport*                     pViewports;
3653     uint32_t                              scissorCount;
3654     const VkRect2D*                       pScissors;
3655 } VkPipelineViewportStateCreateInfo;
3656 
3657 typedef struct VkPipelineRasterizationStateCreateInfo {
3658     VkStructureType                            sType;
3659     const void*                                pNext;
3660     VkPipelineRasterizationStateCreateFlags    flags;
3661     VkBool32                                   depthClampEnable;
3662     VkBool32                                   rasterizerDiscardEnable;
3663     VkPolygonMode                              polygonMode;
3664     VkCullModeFlags                            cullMode;
3665     VkFrontFace                                frontFace;
3666     VkBool32                                   depthBiasEnable;
3667     float                                      depthBiasConstantFactor;
3668     float                                      depthBiasClamp;
3669     float                                      depthBiasSlopeFactor;
3670     float                                      lineWidth;
3671 } VkPipelineRasterizationStateCreateInfo;
3672 
3673 typedef struct VkPipelineMultisampleStateCreateInfo {
3674     VkStructureType                          sType;
3675     const void*                              pNext;
3676     VkPipelineMultisampleStateCreateFlags    flags;
3677     VkSampleCountFlagBits                    rasterizationSamples;
3678     VkBool32                                 sampleShadingEnable;
3679     float                                    minSampleShading;
3680     const VkSampleMask*                      pSampleMask;
3681     VkBool32                                 alphaToCoverageEnable;
3682     VkBool32                                 alphaToOneEnable;
3683 } VkPipelineMultisampleStateCreateInfo;
3684 
3685 typedef struct VkStencilOpState {
3686     VkStencilOp    failOp;
3687     VkStencilOp    passOp;
3688     VkStencilOp    depthFailOp;
3689     VkCompareOp    compareOp;
3690     uint32_t       compareMask;
3691     uint32_t       writeMask;
3692     uint32_t       reference;
3693 } VkStencilOpState;
3694 
3695 typedef struct VkPipelineDepthStencilStateCreateInfo {
3696     VkStructureType                           sType;
3697     const void*                               pNext;
3698     VkPipelineDepthStencilStateCreateFlags    flags;
3699     VkBool32                                  depthTestEnable;
3700     VkBool32                                  depthWriteEnable;
3701     VkCompareOp                               depthCompareOp;
3702     VkBool32                                  depthBoundsTestEnable;
3703     VkBool32                                  stencilTestEnable;
3704     VkStencilOpState                          front;
3705     VkStencilOpState                          back;
3706     float                                     minDepthBounds;
3707     float                                     maxDepthBounds;
3708 } VkPipelineDepthStencilStateCreateInfo;
3709 
3710 typedef struct VkPipelineColorBlendAttachmentState {
3711     VkBool32                 blendEnable;
3712     VkBlendFactor            srcColorBlendFactor;
3713     VkBlendFactor            dstColorBlendFactor;
3714     VkBlendOp                colorBlendOp;
3715     VkBlendFactor            srcAlphaBlendFactor;
3716     VkBlendFactor            dstAlphaBlendFactor;
3717     VkBlendOp                alphaBlendOp;
3718     VkColorComponentFlags    colorWriteMask;
3719 } VkPipelineColorBlendAttachmentState;
3720 
3721 typedef struct VkPipelineColorBlendStateCreateInfo {
3722     VkStructureType                               sType;
3723     const void*                                   pNext;
3724     VkPipelineColorBlendStateCreateFlags          flags;
3725     VkBool32                                      logicOpEnable;
3726     VkLogicOp                                     logicOp;
3727     uint32_t                                      attachmentCount;
3728     const VkPipelineColorBlendAttachmentState*    pAttachments;
3729     float                                         blendConstants[4];
3730 } VkPipelineColorBlendStateCreateInfo;
3731 
3732 typedef struct VkPipelineDynamicStateCreateInfo {
3733     VkStructureType                      sType;
3734     const void*                          pNext;
3735     VkPipelineDynamicStateCreateFlags    flags;
3736     uint32_t                             dynamicStateCount;
3737     const VkDynamicState*                pDynamicStates;
3738 } VkPipelineDynamicStateCreateInfo;
3739 
3740 typedef struct VkGraphicsPipelineCreateInfo {
3741     VkStructureType                                  sType;
3742     const void*                                      pNext;
3743     VkPipelineCreateFlags                            flags;
3744     uint32_t                                         stageCount;
3745     const VkPipelineShaderStageCreateInfo*           pStages;
3746     const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
3747     const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
3748     const VkPipelineTessellationStateCreateInfo*     pTessellationState;
3749     const VkPipelineViewportStateCreateInfo*         pViewportState;
3750     const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
3751     const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
3752     const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
3753     const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
3754     const VkPipelineDynamicStateCreateInfo*          pDynamicState;
3755     VkPipelineLayout                                 layout;
3756     VkRenderPass                                     renderPass;
3757     uint32_t                                         subpass;
3758     VkPipeline                                       basePipelineHandle;
3759     int32_t                                          basePipelineIndex;
3760 } VkGraphicsPipelineCreateInfo;
3761 
3762 typedef struct VkPushConstantRange {
3763     VkShaderStageFlags    stageFlags;
3764     uint32_t              offset;
3765     uint32_t              size;
3766 } VkPushConstantRange;
3767 
3768 typedef struct VkPipelineLayoutCreateInfo {
3769     VkStructureType                 sType;
3770     const void*                     pNext;
3771     VkPipelineLayoutCreateFlags     flags;
3772     uint32_t                        setLayoutCount;
3773     const VkDescriptorSetLayout*    pSetLayouts;
3774     uint32_t                        pushConstantRangeCount;
3775     const VkPushConstantRange*      pPushConstantRanges;
3776 } VkPipelineLayoutCreateInfo;
3777 
3778 typedef struct VkSamplerCreateInfo {
3779     VkStructureType         sType;
3780     const void*             pNext;
3781     VkSamplerCreateFlags    flags;
3782     VkFilter                magFilter;
3783     VkFilter                minFilter;
3784     VkSamplerMipmapMode     mipmapMode;
3785     VkSamplerAddressMode    addressModeU;
3786     VkSamplerAddressMode    addressModeV;
3787     VkSamplerAddressMode    addressModeW;
3788     float                   mipLodBias;
3789     VkBool32                anisotropyEnable;
3790     float                   maxAnisotropy;
3791     VkBool32                compareEnable;
3792     VkCompareOp             compareOp;
3793     float                   minLod;
3794     float                   maxLod;
3795     VkBorderColor           borderColor;
3796     VkBool32                unnormalizedCoordinates;
3797 } VkSamplerCreateInfo;
3798 
3799 typedef struct VkCopyDescriptorSet {
3800     VkStructureType    sType;
3801     const void*        pNext;
3802     VkDescriptorSet    srcSet;
3803     uint32_t           srcBinding;
3804     uint32_t           srcArrayElement;
3805     VkDescriptorSet    dstSet;
3806     uint32_t           dstBinding;
3807     uint32_t           dstArrayElement;
3808     uint32_t           descriptorCount;
3809 } VkCopyDescriptorSet;
3810 
3811 typedef struct VkDescriptorBufferInfo {
3812     VkBuffer        buffer;
3813     VkDeviceSize    offset;
3814     VkDeviceSize    range;
3815 } VkDescriptorBufferInfo;
3816 
3817 typedef struct VkDescriptorImageInfo {
3818     VkSampler        sampler;
3819     VkImageView      imageView;
3820     VkImageLayout    imageLayout;
3821 } VkDescriptorImageInfo;
3822 
3823 typedef struct VkDescriptorPoolSize {
3824     VkDescriptorType    type;
3825     uint32_t            descriptorCount;
3826 } VkDescriptorPoolSize;
3827 
3828 typedef struct VkDescriptorPoolCreateInfo {
3829     VkStructureType                sType;
3830     const void*                    pNext;
3831     VkDescriptorPoolCreateFlags    flags;
3832     uint32_t                       maxSets;
3833     uint32_t                       poolSizeCount;
3834     const VkDescriptorPoolSize*    pPoolSizes;
3835 } VkDescriptorPoolCreateInfo;
3836 
3837 typedef struct VkDescriptorSetAllocateInfo {
3838     VkStructureType                 sType;
3839     const void*                     pNext;
3840     VkDescriptorPool                descriptorPool;
3841     uint32_t                        descriptorSetCount;
3842     const VkDescriptorSetLayout*    pSetLayouts;
3843 } VkDescriptorSetAllocateInfo;
3844 
3845 typedef struct VkDescriptorSetLayoutBinding {
3846     uint32_t              binding;
3847     VkDescriptorType      descriptorType;
3848     uint32_t              descriptorCount;
3849     VkShaderStageFlags    stageFlags;
3850     const VkSampler*      pImmutableSamplers;
3851 } VkDescriptorSetLayoutBinding;
3852 
3853 typedef struct VkDescriptorSetLayoutCreateInfo {
3854     VkStructureType                        sType;
3855     const void*                            pNext;
3856     VkDescriptorSetLayoutCreateFlags       flags;
3857     uint32_t                               bindingCount;
3858     const VkDescriptorSetLayoutBinding*    pBindings;
3859 } VkDescriptorSetLayoutCreateInfo;
3860 
3861 typedef struct VkWriteDescriptorSet {
3862     VkStructureType                  sType;
3863     const void*                      pNext;
3864     VkDescriptorSet                  dstSet;
3865     uint32_t                         dstBinding;
3866     uint32_t                         dstArrayElement;
3867     uint32_t                         descriptorCount;
3868     VkDescriptorType                 descriptorType;
3869     const VkDescriptorImageInfo*     pImageInfo;
3870     const VkDescriptorBufferInfo*    pBufferInfo;
3871     const VkBufferView*              pTexelBufferView;
3872 } VkWriteDescriptorSet;
3873 
3874 typedef struct VkAttachmentDescription {
3875     VkAttachmentDescriptionFlags    flags;
3876     VkFormat                        format;
3877     VkSampleCountFlagBits           samples;
3878     VkAttachmentLoadOp              loadOp;
3879     VkAttachmentStoreOp             storeOp;
3880     VkAttachmentLoadOp              stencilLoadOp;
3881     VkAttachmentStoreOp             stencilStoreOp;
3882     VkImageLayout                   initialLayout;
3883     VkImageLayout                   finalLayout;
3884 } VkAttachmentDescription;
3885 
3886 typedef struct VkAttachmentReference {
3887     uint32_t         attachment;
3888     VkImageLayout    layout;
3889 } VkAttachmentReference;
3890 
3891 typedef struct VkFramebufferCreateInfo {
3892     VkStructureType             sType;
3893     const void*                 pNext;
3894     VkFramebufferCreateFlags    flags;
3895     VkRenderPass                renderPass;
3896     uint32_t                    attachmentCount;
3897     const VkImageView*          pAttachments;
3898     uint32_t                    width;
3899     uint32_t                    height;
3900     uint32_t                    layers;
3901 } VkFramebufferCreateInfo;
3902 
3903 typedef struct VkSubpassDescription {
3904     VkSubpassDescriptionFlags       flags;
3905     VkPipelineBindPoint             pipelineBindPoint;
3906     uint32_t                        inputAttachmentCount;
3907     const VkAttachmentReference*    pInputAttachments;
3908     uint32_t                        colorAttachmentCount;
3909     const VkAttachmentReference*    pColorAttachments;
3910     const VkAttachmentReference*    pResolveAttachments;
3911     const VkAttachmentReference*    pDepthStencilAttachment;
3912     uint32_t                        preserveAttachmentCount;
3913     const uint32_t*                 pPreserveAttachments;
3914 } VkSubpassDescription;
3915 
3916 typedef struct VkSubpassDependency {
3917     uint32_t                srcSubpass;
3918     uint32_t                dstSubpass;
3919     VkPipelineStageFlags    srcStageMask;
3920     VkPipelineStageFlags    dstStageMask;
3921     VkAccessFlags           srcAccessMask;
3922     VkAccessFlags           dstAccessMask;
3923     VkDependencyFlags       dependencyFlags;
3924 } VkSubpassDependency;
3925 
3926 typedef struct VkRenderPassCreateInfo {
3927     VkStructureType                   sType;
3928     const void*                       pNext;
3929     VkRenderPassCreateFlags           flags;
3930     uint32_t                          attachmentCount;
3931     const VkAttachmentDescription*    pAttachments;
3932     uint32_t                          subpassCount;
3933     const VkSubpassDescription*       pSubpasses;
3934     uint32_t                          dependencyCount;
3935     const VkSubpassDependency*        pDependencies;
3936 } VkRenderPassCreateInfo;
3937 
3938 typedef struct VkCommandPoolCreateInfo {
3939     VkStructureType             sType;
3940     const void*                 pNext;
3941     VkCommandPoolCreateFlags    flags;
3942     uint32_t                    queueFamilyIndex;
3943 } VkCommandPoolCreateInfo;
3944 
3945 typedef struct VkCommandBufferAllocateInfo {
3946     VkStructureType         sType;
3947     const void*             pNext;
3948     VkCommandPool           commandPool;
3949     VkCommandBufferLevel    level;
3950     uint32_t                commandBufferCount;
3951 } VkCommandBufferAllocateInfo;
3952 
3953 typedef struct VkCommandBufferInheritanceInfo {
3954     VkStructureType                  sType;
3955     const void*                      pNext;
3956     VkRenderPass                     renderPass;
3957     uint32_t                         subpass;
3958     VkFramebuffer                    framebuffer;
3959     VkBool32                         occlusionQueryEnable;
3960     VkQueryControlFlags              queryFlags;
3961     VkQueryPipelineStatisticFlags    pipelineStatistics;
3962 } VkCommandBufferInheritanceInfo;
3963 
3964 typedef struct VkCommandBufferBeginInfo {
3965     VkStructureType                          sType;
3966     const void*                              pNext;
3967     VkCommandBufferUsageFlags                flags;
3968     const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
3969 } VkCommandBufferBeginInfo;
3970 
3971 typedef struct VkBufferCopy {
3972     VkDeviceSize    srcOffset;
3973     VkDeviceSize    dstOffset;
3974     VkDeviceSize    size;
3975 } VkBufferCopy;
3976 
3977 typedef struct VkImageSubresourceLayers {
3978     VkImageAspectFlags    aspectMask;
3979     uint32_t              mipLevel;
3980     uint32_t              baseArrayLayer;
3981     uint32_t              layerCount;
3982 } VkImageSubresourceLayers;
3983 
3984 typedef struct VkBufferImageCopy {
3985     VkDeviceSize                bufferOffset;
3986     uint32_t                    bufferRowLength;
3987     uint32_t                    bufferImageHeight;
3988     VkImageSubresourceLayers    imageSubresource;
3989     VkOffset3D                  imageOffset;
3990     VkExtent3D                  imageExtent;
3991 } VkBufferImageCopy;
3992 
3993 typedef union VkClearColorValue {
3994     float       float32[4];
3995     int32_t     int32[4];
3996     uint32_t    uint32[4];
3997 } VkClearColorValue;
3998 
3999 typedef struct VkClearDepthStencilValue {
4000     float       depth;
4001     uint32_t    stencil;
4002 } VkClearDepthStencilValue;
4003 
4004 typedef union VkClearValue {
4005     VkClearColorValue           color;
4006     VkClearDepthStencilValue    depthStencil;
4007 } VkClearValue;
4008 
4009 typedef struct VkClearAttachment {
4010     VkImageAspectFlags    aspectMask;
4011     uint32_t              colorAttachment;
4012     VkClearValue          clearValue;
4013 } VkClearAttachment;
4014 
4015 typedef struct VkClearRect {
4016     VkRect2D    rect;
4017     uint32_t    baseArrayLayer;
4018     uint32_t    layerCount;
4019 } VkClearRect;
4020 
4021 typedef struct VkImageBlit {
4022     VkImageSubresourceLayers    srcSubresource;
4023     VkOffset3D                  srcOffsets[2];
4024     VkImageSubresourceLayers    dstSubresource;
4025     VkOffset3D                  dstOffsets[2];
4026 } VkImageBlit;
4027 
4028 typedef struct VkImageCopy {
4029     VkImageSubresourceLayers    srcSubresource;
4030     VkOffset3D                  srcOffset;
4031     VkImageSubresourceLayers    dstSubresource;
4032     VkOffset3D                  dstOffset;
4033     VkExtent3D                  extent;
4034 } VkImageCopy;
4035 
4036 typedef struct VkImageResolve {
4037     VkImageSubresourceLayers    srcSubresource;
4038     VkOffset3D                  srcOffset;
4039     VkImageSubresourceLayers    dstSubresource;
4040     VkOffset3D                  dstOffset;
4041     VkExtent3D                  extent;
4042 } VkImageResolve;
4043 
4044 typedef struct VkRenderPassBeginInfo {
4045     VkStructureType        sType;
4046     const void*            pNext;
4047     VkRenderPass           renderPass;
4048     VkFramebuffer          framebuffer;
4049     VkRect2D               renderArea;
4050     uint32_t               clearValueCount;
4051     const VkClearValue*    pClearValues;
4052 } VkRenderPassBeginInfo;
4053 
4054 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
4055 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
4056 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
4057 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
4058 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
4059 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
4060 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
4061 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
4062 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4063 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
4064 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
4065 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
4066 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
4067 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4068 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4069 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4070 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4071 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
4072 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
4073 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
4074 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
4075 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
4076 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
4077 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
4078 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
4079 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4080 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4081 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
4082 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4083 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4084 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
4085 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
4086 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4087 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
4088 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
4089 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
4090 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
4091 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
4092 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
4093 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
4094 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
4095 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
4096 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
4097 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
4098 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
4099 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
4100 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
4101 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
4102 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
4103 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);
4104 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
4105 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
4106 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
4107 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
4108 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
4109 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
4110 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
4111 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
4112 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
4113 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
4114 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
4115 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
4116 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
4117 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
4118 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
4119 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4120 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4121 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
4122 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
4123 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
4124 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
4125 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
4126 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
4127 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
4128 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
4129 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
4130 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
4131 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
4132 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
4133 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
4134 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
4135 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
4136 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
4137 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
4138 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
4139 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
4140 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
4141 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
4142 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
4143 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4144 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
4145 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
4146 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
4147 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4148 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
4149 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
4150 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4151 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4152 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
4153 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4154 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
4155 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
4156 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
4157 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);
4158 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4159 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
4160 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
4161 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
4162 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4163 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4164 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4165 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4166 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
4167 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
4168 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
4169 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4170 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4171 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4172 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4173 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4174 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4175 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4176 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4177 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4178 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4179 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);
4180 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);
4181 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4182 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4183 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4184 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4185 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4186 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4187 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4188 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4189 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4190 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4191 
4192 #ifndef VK_NO_PROTOTYPES
4193 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4194     const VkInstanceCreateInfo*                 pCreateInfo,
4195     const VkAllocationCallbacks*                pAllocator,
4196     VkInstance*                                 pInstance);
4197 
4198 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4199     VkInstance                                  instance,
4200     const VkAllocationCallbacks*                pAllocator);
4201 
4202 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4203     VkInstance                                  instance,
4204     uint32_t*                                   pPhysicalDeviceCount,
4205     VkPhysicalDevice*                           pPhysicalDevices);
4206 
4207 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4208     VkPhysicalDevice                            physicalDevice,
4209     VkPhysicalDeviceFeatures*                   pFeatures);
4210 
4211 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4212     VkPhysicalDevice                            physicalDevice,
4213     VkFormat                                    format,
4214     VkFormatProperties*                         pFormatProperties);
4215 
4216 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4217     VkPhysicalDevice                            physicalDevice,
4218     VkFormat                                    format,
4219     VkImageType                                 type,
4220     VkImageTiling                               tiling,
4221     VkImageUsageFlags                           usage,
4222     VkImageCreateFlags                          flags,
4223     VkImageFormatProperties*                    pImageFormatProperties);
4224 
4225 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4226     VkPhysicalDevice                            physicalDevice,
4227     VkPhysicalDeviceProperties*                 pProperties);
4228 
4229 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4230     VkPhysicalDevice                            physicalDevice,
4231     uint32_t*                                   pQueueFamilyPropertyCount,
4232     VkQueueFamilyProperties*                    pQueueFamilyProperties);
4233 
4234 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4235     VkPhysicalDevice                            physicalDevice,
4236     VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
4237 
4238 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4239     VkInstance                                  instance,
4240     const char*                                 pName);
4241 
4242 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4243     VkDevice                                    device,
4244     const char*                                 pName);
4245 
4246 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4247     VkPhysicalDevice                            physicalDevice,
4248     const VkDeviceCreateInfo*                   pCreateInfo,
4249     const VkAllocationCallbacks*                pAllocator,
4250     VkDevice*                                   pDevice);
4251 
4252 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4253     VkDevice                                    device,
4254     const VkAllocationCallbacks*                pAllocator);
4255 
4256 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4257     const char*                                 pLayerName,
4258     uint32_t*                                   pPropertyCount,
4259     VkExtensionProperties*                      pProperties);
4260 
4261 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4262     VkPhysicalDevice                            physicalDevice,
4263     const char*                                 pLayerName,
4264     uint32_t*                                   pPropertyCount,
4265     VkExtensionProperties*                      pProperties);
4266 
4267 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4268     uint32_t*                                   pPropertyCount,
4269     VkLayerProperties*                          pProperties);
4270 
4271 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4272     VkPhysicalDevice                            physicalDevice,
4273     uint32_t*                                   pPropertyCount,
4274     VkLayerProperties*                          pProperties);
4275 
4276 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4277     VkDevice                                    device,
4278     uint32_t                                    queueFamilyIndex,
4279     uint32_t                                    queueIndex,
4280     VkQueue*                                    pQueue);
4281 
4282 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4283     VkQueue                                     queue,
4284     uint32_t                                    submitCount,
4285     const VkSubmitInfo*                         pSubmits,
4286     VkFence                                     fence);
4287 
4288 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4289     VkQueue                                     queue);
4290 
4291 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4292     VkDevice                                    device);
4293 
4294 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4295     VkDevice                                    device,
4296     const VkMemoryAllocateInfo*                 pAllocateInfo,
4297     const VkAllocationCallbacks*                pAllocator,
4298     VkDeviceMemory*                             pMemory);
4299 
4300 VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4301     VkDevice                                    device,
4302     VkDeviceMemory                              memory,
4303     const VkAllocationCallbacks*                pAllocator);
4304 
4305 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4306     VkDevice                                    device,
4307     VkDeviceMemory                              memory,
4308     VkDeviceSize                                offset,
4309     VkDeviceSize                                size,
4310     VkMemoryMapFlags                            flags,
4311     void**                                      ppData);
4312 
4313 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4314     VkDevice                                    device,
4315     VkDeviceMemory                              memory);
4316 
4317 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4318     VkDevice                                    device,
4319     uint32_t                                    memoryRangeCount,
4320     const VkMappedMemoryRange*                  pMemoryRanges);
4321 
4322 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4323     VkDevice                                    device,
4324     uint32_t                                    memoryRangeCount,
4325     const VkMappedMemoryRange*                  pMemoryRanges);
4326 
4327 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4328     VkDevice                                    device,
4329     VkDeviceMemory                              memory,
4330     VkDeviceSize*                               pCommittedMemoryInBytes);
4331 
4332 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4333     VkDevice                                    device,
4334     VkBuffer                                    buffer,
4335     VkDeviceMemory                              memory,
4336     VkDeviceSize                                memoryOffset);
4337 
4338 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4339     VkDevice                                    device,
4340     VkImage                                     image,
4341     VkDeviceMemory                              memory,
4342     VkDeviceSize                                memoryOffset);
4343 
4344 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
4345     VkDevice                                    device,
4346     VkBuffer                                    buffer,
4347     VkMemoryRequirements*                       pMemoryRequirements);
4348 
4349 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
4350     VkDevice                                    device,
4351     VkImage                                     image,
4352     VkMemoryRequirements*                       pMemoryRequirements);
4353 
4354 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
4355     VkDevice                                    device,
4356     VkImage                                     image,
4357     uint32_t*                                   pSparseMemoryRequirementCount,
4358     VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
4359 
4360 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
4361     VkPhysicalDevice                            physicalDevice,
4362     VkFormat                                    format,
4363     VkImageType                                 type,
4364     VkSampleCountFlagBits                       samples,
4365     VkImageUsageFlags                           usage,
4366     VkImageTiling                               tiling,
4367     uint32_t*                                   pPropertyCount,
4368     VkSparseImageFormatProperties*              pProperties);
4369 
4370 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
4371     VkQueue                                     queue,
4372     uint32_t                                    bindInfoCount,
4373     const VkBindSparseInfo*                     pBindInfo,
4374     VkFence                                     fence);
4375 
4376 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
4377     VkDevice                                    device,
4378     const VkFenceCreateInfo*                    pCreateInfo,
4379     const VkAllocationCallbacks*                pAllocator,
4380     VkFence*                                    pFence);
4381 
4382 VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
4383     VkDevice                                    device,
4384     VkFence                                     fence,
4385     const VkAllocationCallbacks*                pAllocator);
4386 
4387 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
4388     VkDevice                                    device,
4389     uint32_t                                    fenceCount,
4390     const VkFence*                              pFences);
4391 
4392 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
4393     VkDevice                                    device,
4394     VkFence                                     fence);
4395 
4396 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
4397     VkDevice                                    device,
4398     uint32_t                                    fenceCount,
4399     const VkFence*                              pFences,
4400     VkBool32                                    waitAll,
4401     uint64_t                                    timeout);
4402 
4403 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
4404     VkDevice                                    device,
4405     const VkSemaphoreCreateInfo*                pCreateInfo,
4406     const VkAllocationCallbacks*                pAllocator,
4407     VkSemaphore*                                pSemaphore);
4408 
4409 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
4410     VkDevice                                    device,
4411     VkSemaphore                                 semaphore,
4412     const VkAllocationCallbacks*                pAllocator);
4413 
4414 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
4415     VkDevice                                    device,
4416     const VkEventCreateInfo*                    pCreateInfo,
4417     const VkAllocationCallbacks*                pAllocator,
4418     VkEvent*                                    pEvent);
4419 
4420 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
4421     VkDevice                                    device,
4422     VkEvent                                     event,
4423     const VkAllocationCallbacks*                pAllocator);
4424 
4425 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
4426     VkDevice                                    device,
4427     VkEvent                                     event);
4428 
4429 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
4430     VkDevice                                    device,
4431     VkEvent                                     event);
4432 
4433 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
4434     VkDevice                                    device,
4435     VkEvent                                     event);
4436 
4437 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
4438     VkDevice                                    device,
4439     const VkQueryPoolCreateInfo*                pCreateInfo,
4440     const VkAllocationCallbacks*                pAllocator,
4441     VkQueryPool*                                pQueryPool);
4442 
4443 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
4444     VkDevice                                    device,
4445     VkQueryPool                                 queryPool,
4446     const VkAllocationCallbacks*                pAllocator);
4447 
4448 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
4449     VkDevice                                    device,
4450     VkQueryPool                                 queryPool,
4451     uint32_t                                    firstQuery,
4452     uint32_t                                    queryCount,
4453     size_t                                      dataSize,
4454     void*                                       pData,
4455     VkDeviceSize                                stride,
4456     VkQueryResultFlags                          flags);
4457 
4458 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
4459     VkDevice                                    device,
4460     const VkBufferCreateInfo*                   pCreateInfo,
4461     const VkAllocationCallbacks*                pAllocator,
4462     VkBuffer*                                   pBuffer);
4463 
4464 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
4465     VkDevice                                    device,
4466     VkBuffer                                    buffer,
4467     const VkAllocationCallbacks*                pAllocator);
4468 
4469 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
4470     VkDevice                                    device,
4471     const VkBufferViewCreateInfo*               pCreateInfo,
4472     const VkAllocationCallbacks*                pAllocator,
4473     VkBufferView*                               pView);
4474 
4475 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
4476     VkDevice                                    device,
4477     VkBufferView                                bufferView,
4478     const VkAllocationCallbacks*                pAllocator);
4479 
4480 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
4481     VkDevice                                    device,
4482     const VkImageCreateInfo*                    pCreateInfo,
4483     const VkAllocationCallbacks*                pAllocator,
4484     VkImage*                                    pImage);
4485 
4486 VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
4487     VkDevice                                    device,
4488     VkImage                                     image,
4489     const VkAllocationCallbacks*                pAllocator);
4490 
4491 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
4492     VkDevice                                    device,
4493     VkImage                                     image,
4494     const VkImageSubresource*                   pSubresource,
4495     VkSubresourceLayout*                        pLayout);
4496 
4497 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
4498     VkDevice                                    device,
4499     const VkImageViewCreateInfo*                pCreateInfo,
4500     const VkAllocationCallbacks*                pAllocator,
4501     VkImageView*                                pView);
4502 
4503 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
4504     VkDevice                                    device,
4505     VkImageView                                 imageView,
4506     const VkAllocationCallbacks*                pAllocator);
4507 
4508 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
4509     VkDevice                                    device,
4510     const VkShaderModuleCreateInfo*             pCreateInfo,
4511     const VkAllocationCallbacks*                pAllocator,
4512     VkShaderModule*                             pShaderModule);
4513 
4514 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
4515     VkDevice                                    device,
4516     VkShaderModule                              shaderModule,
4517     const VkAllocationCallbacks*                pAllocator);
4518 
4519 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
4520     VkDevice                                    device,
4521     const VkPipelineCacheCreateInfo*            pCreateInfo,
4522     const VkAllocationCallbacks*                pAllocator,
4523     VkPipelineCache*                            pPipelineCache);
4524 
4525 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
4526     VkDevice                                    device,
4527     VkPipelineCache                             pipelineCache,
4528     const VkAllocationCallbacks*                pAllocator);
4529 
4530 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
4531     VkDevice                                    device,
4532     VkPipelineCache                             pipelineCache,
4533     size_t*                                     pDataSize,
4534     void*                                       pData);
4535 
4536 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
4537     VkDevice                                    device,
4538     VkPipelineCache                             dstCache,
4539     uint32_t                                    srcCacheCount,
4540     const VkPipelineCache*                      pSrcCaches);
4541 
4542 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
4543     VkDevice                                    device,
4544     VkPipelineCache                             pipelineCache,
4545     uint32_t                                    createInfoCount,
4546     const VkGraphicsPipelineCreateInfo*         pCreateInfos,
4547     const VkAllocationCallbacks*                pAllocator,
4548     VkPipeline*                                 pPipelines);
4549 
4550 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
4551     VkDevice                                    device,
4552     VkPipelineCache                             pipelineCache,
4553     uint32_t                                    createInfoCount,
4554     const VkComputePipelineCreateInfo*          pCreateInfos,
4555     const VkAllocationCallbacks*                pAllocator,
4556     VkPipeline*                                 pPipelines);
4557 
4558 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
4559     VkDevice                                    device,
4560     VkPipeline                                  pipeline,
4561     const VkAllocationCallbacks*                pAllocator);
4562 
4563 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
4564     VkDevice                                    device,
4565     const VkPipelineLayoutCreateInfo*           pCreateInfo,
4566     const VkAllocationCallbacks*                pAllocator,
4567     VkPipelineLayout*                           pPipelineLayout);
4568 
4569 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
4570     VkDevice                                    device,
4571     VkPipelineLayout                            pipelineLayout,
4572     const VkAllocationCallbacks*                pAllocator);
4573 
4574 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
4575     VkDevice                                    device,
4576     const VkSamplerCreateInfo*                  pCreateInfo,
4577     const VkAllocationCallbacks*                pAllocator,
4578     VkSampler*                                  pSampler);
4579 
4580 VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
4581     VkDevice                                    device,
4582     VkSampler                                   sampler,
4583     const VkAllocationCallbacks*                pAllocator);
4584 
4585 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
4586     VkDevice                                    device,
4587     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
4588     const VkAllocationCallbacks*                pAllocator,
4589     VkDescriptorSetLayout*                      pSetLayout);
4590 
4591 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
4592     VkDevice                                    device,
4593     VkDescriptorSetLayout                       descriptorSetLayout,
4594     const VkAllocationCallbacks*                pAllocator);
4595 
4596 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
4597     VkDevice                                    device,
4598     const VkDescriptorPoolCreateInfo*           pCreateInfo,
4599     const VkAllocationCallbacks*                pAllocator,
4600     VkDescriptorPool*                           pDescriptorPool);
4601 
4602 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
4603     VkDevice                                    device,
4604     VkDescriptorPool                            descriptorPool,
4605     const VkAllocationCallbacks*                pAllocator);
4606 
4607 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
4608     VkDevice                                    device,
4609     VkDescriptorPool                            descriptorPool,
4610     VkDescriptorPoolResetFlags                  flags);
4611 
4612 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
4613     VkDevice                                    device,
4614     const VkDescriptorSetAllocateInfo*          pAllocateInfo,
4615     VkDescriptorSet*                            pDescriptorSets);
4616 
4617 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
4618     VkDevice                                    device,
4619     VkDescriptorPool                            descriptorPool,
4620     uint32_t                                    descriptorSetCount,
4621     const VkDescriptorSet*                      pDescriptorSets);
4622 
4623 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
4624     VkDevice                                    device,
4625     uint32_t                                    descriptorWriteCount,
4626     const VkWriteDescriptorSet*                 pDescriptorWrites,
4627     uint32_t                                    descriptorCopyCount,
4628     const VkCopyDescriptorSet*                  pDescriptorCopies);
4629 
4630 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
4631     VkDevice                                    device,
4632     const VkFramebufferCreateInfo*              pCreateInfo,
4633     const VkAllocationCallbacks*                pAllocator,
4634     VkFramebuffer*                              pFramebuffer);
4635 
4636 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
4637     VkDevice                                    device,
4638     VkFramebuffer                               framebuffer,
4639     const VkAllocationCallbacks*                pAllocator);
4640 
4641 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
4642     VkDevice                                    device,
4643     const VkRenderPassCreateInfo*               pCreateInfo,
4644     const VkAllocationCallbacks*                pAllocator,
4645     VkRenderPass*                               pRenderPass);
4646 
4647 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
4648     VkDevice                                    device,
4649     VkRenderPass                                renderPass,
4650     const VkAllocationCallbacks*                pAllocator);
4651 
4652 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
4653     VkDevice                                    device,
4654     VkRenderPass                                renderPass,
4655     VkExtent2D*                                 pGranularity);
4656 
4657 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
4658     VkDevice                                    device,
4659     const VkCommandPoolCreateInfo*              pCreateInfo,
4660     const VkAllocationCallbacks*                pAllocator,
4661     VkCommandPool*                              pCommandPool);
4662 
4663 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
4664     VkDevice                                    device,
4665     VkCommandPool                               commandPool,
4666     const VkAllocationCallbacks*                pAllocator);
4667 
4668 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
4669     VkDevice                                    device,
4670     VkCommandPool                               commandPool,
4671     VkCommandPoolResetFlags                     flags);
4672 
4673 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
4674     VkDevice                                    device,
4675     const VkCommandBufferAllocateInfo*          pAllocateInfo,
4676     VkCommandBuffer*                            pCommandBuffers);
4677 
4678 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
4679     VkDevice                                    device,
4680     VkCommandPool                               commandPool,
4681     uint32_t                                    commandBufferCount,
4682     const VkCommandBuffer*                      pCommandBuffers);
4683 
4684 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
4685     VkCommandBuffer                             commandBuffer,
4686     const VkCommandBufferBeginInfo*             pBeginInfo);
4687 
4688 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
4689     VkCommandBuffer                             commandBuffer);
4690 
4691 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
4692     VkCommandBuffer                             commandBuffer,
4693     VkCommandBufferResetFlags                   flags);
4694 
4695 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
4696     VkCommandBuffer                             commandBuffer,
4697     VkPipelineBindPoint                         pipelineBindPoint,
4698     VkPipeline                                  pipeline);
4699 
4700 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
4701     VkCommandBuffer                             commandBuffer,
4702     uint32_t                                    firstViewport,
4703     uint32_t                                    viewportCount,
4704     const VkViewport*                           pViewports);
4705 
4706 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
4707     VkCommandBuffer                             commandBuffer,
4708     uint32_t                                    firstScissor,
4709     uint32_t                                    scissorCount,
4710     const VkRect2D*                             pScissors);
4711 
4712 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
4713     VkCommandBuffer                             commandBuffer,
4714     float                                       lineWidth);
4715 
4716 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
4717     VkCommandBuffer                             commandBuffer,
4718     float                                       depthBiasConstantFactor,
4719     float                                       depthBiasClamp,
4720     float                                       depthBiasSlopeFactor);
4721 
4722 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
4723     VkCommandBuffer                             commandBuffer,
4724     const float                                 blendConstants[4]);
4725 
4726 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
4727     VkCommandBuffer                             commandBuffer,
4728     float                                       minDepthBounds,
4729     float                                       maxDepthBounds);
4730 
4731 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
4732     VkCommandBuffer                             commandBuffer,
4733     VkStencilFaceFlags                          faceMask,
4734     uint32_t                                    compareMask);
4735 
4736 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
4737     VkCommandBuffer                             commandBuffer,
4738     VkStencilFaceFlags                          faceMask,
4739     uint32_t                                    writeMask);
4740 
4741 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
4742     VkCommandBuffer                             commandBuffer,
4743     VkStencilFaceFlags                          faceMask,
4744     uint32_t                                    reference);
4745 
4746 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
4747     VkCommandBuffer                             commandBuffer,
4748     VkPipelineBindPoint                         pipelineBindPoint,
4749     VkPipelineLayout                            layout,
4750     uint32_t                                    firstSet,
4751     uint32_t                                    descriptorSetCount,
4752     const VkDescriptorSet*                      pDescriptorSets,
4753     uint32_t                                    dynamicOffsetCount,
4754     const uint32_t*                             pDynamicOffsets);
4755 
4756 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
4757     VkCommandBuffer                             commandBuffer,
4758     VkBuffer                                    buffer,
4759     VkDeviceSize                                offset,
4760     VkIndexType                                 indexType);
4761 
4762 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
4763     VkCommandBuffer                             commandBuffer,
4764     uint32_t                                    firstBinding,
4765     uint32_t                                    bindingCount,
4766     const VkBuffer*                             pBuffers,
4767     const VkDeviceSize*                         pOffsets);
4768 
4769 VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
4770     VkCommandBuffer                             commandBuffer,
4771     uint32_t                                    vertexCount,
4772     uint32_t                                    instanceCount,
4773     uint32_t                                    firstVertex,
4774     uint32_t                                    firstInstance);
4775 
4776 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
4777     VkCommandBuffer                             commandBuffer,
4778     uint32_t                                    indexCount,
4779     uint32_t                                    instanceCount,
4780     uint32_t                                    firstIndex,
4781     int32_t                                     vertexOffset,
4782     uint32_t                                    firstInstance);
4783 
4784 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
4785     VkCommandBuffer                             commandBuffer,
4786     VkBuffer                                    buffer,
4787     VkDeviceSize                                offset,
4788     uint32_t                                    drawCount,
4789     uint32_t                                    stride);
4790 
4791 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
4792     VkCommandBuffer                             commandBuffer,
4793     VkBuffer                                    buffer,
4794     VkDeviceSize                                offset,
4795     uint32_t                                    drawCount,
4796     uint32_t                                    stride);
4797 
4798 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
4799     VkCommandBuffer                             commandBuffer,
4800     uint32_t                                    groupCountX,
4801     uint32_t                                    groupCountY,
4802     uint32_t                                    groupCountZ);
4803 
4804 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
4805     VkCommandBuffer                             commandBuffer,
4806     VkBuffer                                    buffer,
4807     VkDeviceSize                                offset);
4808 
4809 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
4810     VkCommandBuffer                             commandBuffer,
4811     VkBuffer                                    srcBuffer,
4812     VkBuffer                                    dstBuffer,
4813     uint32_t                                    regionCount,
4814     const VkBufferCopy*                         pRegions);
4815 
4816 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
4817     VkCommandBuffer                             commandBuffer,
4818     VkImage                                     srcImage,
4819     VkImageLayout                               srcImageLayout,
4820     VkImage                                     dstImage,
4821     VkImageLayout                               dstImageLayout,
4822     uint32_t                                    regionCount,
4823     const VkImageCopy*                          pRegions);
4824 
4825 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
4826     VkCommandBuffer                             commandBuffer,
4827     VkImage                                     srcImage,
4828     VkImageLayout                               srcImageLayout,
4829     VkImage                                     dstImage,
4830     VkImageLayout                               dstImageLayout,
4831     uint32_t                                    regionCount,
4832     const VkImageBlit*                          pRegions,
4833     VkFilter                                    filter);
4834 
4835 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
4836     VkCommandBuffer                             commandBuffer,
4837     VkBuffer                                    srcBuffer,
4838     VkImage                                     dstImage,
4839     VkImageLayout                               dstImageLayout,
4840     uint32_t                                    regionCount,
4841     const VkBufferImageCopy*                    pRegions);
4842 
4843 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
4844     VkCommandBuffer                             commandBuffer,
4845     VkImage                                     srcImage,
4846     VkImageLayout                               srcImageLayout,
4847     VkBuffer                                    dstBuffer,
4848     uint32_t                                    regionCount,
4849     const VkBufferImageCopy*                    pRegions);
4850 
4851 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
4852     VkCommandBuffer                             commandBuffer,
4853     VkBuffer                                    dstBuffer,
4854     VkDeviceSize                                dstOffset,
4855     VkDeviceSize                                dataSize,
4856     const void*                                 pData);
4857 
4858 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
4859     VkCommandBuffer                             commandBuffer,
4860     VkBuffer                                    dstBuffer,
4861     VkDeviceSize                                dstOffset,
4862     VkDeviceSize                                size,
4863     uint32_t                                    data);
4864 
4865 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
4866     VkCommandBuffer                             commandBuffer,
4867     VkImage                                     image,
4868     VkImageLayout                               imageLayout,
4869     const VkClearColorValue*                    pColor,
4870     uint32_t                                    rangeCount,
4871     const VkImageSubresourceRange*              pRanges);
4872 
4873 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
4874     VkCommandBuffer                             commandBuffer,
4875     VkImage                                     image,
4876     VkImageLayout                               imageLayout,
4877     const VkClearDepthStencilValue*             pDepthStencil,
4878     uint32_t                                    rangeCount,
4879     const VkImageSubresourceRange*              pRanges);
4880 
4881 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
4882     VkCommandBuffer                             commandBuffer,
4883     uint32_t                                    attachmentCount,
4884     const VkClearAttachment*                    pAttachments,
4885     uint32_t                                    rectCount,
4886     const VkClearRect*                          pRects);
4887 
4888 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
4889     VkCommandBuffer                             commandBuffer,
4890     VkImage                                     srcImage,
4891     VkImageLayout                               srcImageLayout,
4892     VkImage                                     dstImage,
4893     VkImageLayout                               dstImageLayout,
4894     uint32_t                                    regionCount,
4895     const VkImageResolve*                       pRegions);
4896 
4897 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
4898     VkCommandBuffer                             commandBuffer,
4899     VkEvent                                     event,
4900     VkPipelineStageFlags                        stageMask);
4901 
4902 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
4903     VkCommandBuffer                             commandBuffer,
4904     VkEvent                                     event,
4905     VkPipelineStageFlags                        stageMask);
4906 
4907 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
4908     VkCommandBuffer                             commandBuffer,
4909     uint32_t                                    eventCount,
4910     const VkEvent*                              pEvents,
4911     VkPipelineStageFlags                        srcStageMask,
4912     VkPipelineStageFlags                        dstStageMask,
4913     uint32_t                                    memoryBarrierCount,
4914     const VkMemoryBarrier*                      pMemoryBarriers,
4915     uint32_t                                    bufferMemoryBarrierCount,
4916     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
4917     uint32_t                                    imageMemoryBarrierCount,
4918     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
4919 
4920 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
4921     VkCommandBuffer                             commandBuffer,
4922     VkPipelineStageFlags                        srcStageMask,
4923     VkPipelineStageFlags                        dstStageMask,
4924     VkDependencyFlags                           dependencyFlags,
4925     uint32_t                                    memoryBarrierCount,
4926     const VkMemoryBarrier*                      pMemoryBarriers,
4927     uint32_t                                    bufferMemoryBarrierCount,
4928     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
4929     uint32_t                                    imageMemoryBarrierCount,
4930     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
4931 
4932 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
4933     VkCommandBuffer                             commandBuffer,
4934     VkQueryPool                                 queryPool,
4935     uint32_t                                    query,
4936     VkQueryControlFlags                         flags);
4937 
4938 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
4939     VkCommandBuffer                             commandBuffer,
4940     VkQueryPool                                 queryPool,
4941     uint32_t                                    query);
4942 
4943 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
4944     VkCommandBuffer                             commandBuffer,
4945     VkQueryPool                                 queryPool,
4946     uint32_t                                    firstQuery,
4947     uint32_t                                    queryCount);
4948 
4949 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
4950     VkCommandBuffer                             commandBuffer,
4951     VkPipelineStageFlagBits                     pipelineStage,
4952     VkQueryPool                                 queryPool,
4953     uint32_t                                    query);
4954 
4955 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
4956     VkCommandBuffer                             commandBuffer,
4957     VkQueryPool                                 queryPool,
4958     uint32_t                                    firstQuery,
4959     uint32_t                                    queryCount,
4960     VkBuffer                                    dstBuffer,
4961     VkDeviceSize                                dstOffset,
4962     VkDeviceSize                                stride,
4963     VkQueryResultFlags                          flags);
4964 
4965 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
4966     VkCommandBuffer                             commandBuffer,
4967     VkPipelineLayout                            layout,
4968     VkShaderStageFlags                          stageFlags,
4969     uint32_t                                    offset,
4970     uint32_t                                    size,
4971     const void*                                 pValues);
4972 
4973 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
4974     VkCommandBuffer                             commandBuffer,
4975     const VkRenderPassBeginInfo*                pRenderPassBegin,
4976     VkSubpassContents                           contents);
4977 
4978 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
4979     VkCommandBuffer                             commandBuffer,
4980     VkSubpassContents                           contents);
4981 
4982 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
4983     VkCommandBuffer                             commandBuffer);
4984 
4985 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
4986     VkCommandBuffer                             commandBuffer,
4987     uint32_t                                    commandBufferCount,
4988     const VkCommandBuffer*                      pCommandBuffers);
4989 #endif
4990 
4991 
4992 // VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
4993 #define VK_VERSION_1_1 1
4994 // Vulkan 1.1 version number
4995 #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
4996 
4997 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
4998 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
4999 #define VK_MAX_DEVICE_GROUP_SIZE          32U
5000 #define VK_LUID_SIZE                      8U
5001 #define VK_QUEUE_FAMILY_EXTERNAL          (~1U)
5002 
5003 typedef enum VkPointClippingBehavior {
5004     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
5005     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
5006     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
5007     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
5008     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
5009 } VkPointClippingBehavior;
5010 
5011 typedef enum VkTessellationDomainOrigin {
5012     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
5013     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
5014     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
5015     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
5016     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
5017 } VkTessellationDomainOrigin;
5018 
5019 typedef enum VkSamplerYcbcrModelConversion {
5020     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
5021     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
5022     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
5023     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
5024     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
5025     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
5026     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
5027     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
5028     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
5029     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
5030     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
5031 } VkSamplerYcbcrModelConversion;
5032 
5033 typedef enum VkSamplerYcbcrRange {
5034     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
5035     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
5036     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
5037     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
5038     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
5039 } VkSamplerYcbcrRange;
5040 
5041 typedef enum VkChromaLocation {
5042     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
5043     VK_CHROMA_LOCATION_MIDPOINT = 1,
5044     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
5045     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
5046     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
5047 } VkChromaLocation;
5048 
5049 typedef enum VkDescriptorUpdateTemplateType {
5050     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
5051     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS = 1,
5052     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS,
5053     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
5054     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
5055 } VkDescriptorUpdateTemplateType;
5056 
5057 typedef enum VkSubgroupFeatureFlagBits {
5058     VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
5059     VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
5060     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
5061     VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
5062     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
5063     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
5064     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
5065     VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
5066     VK_SUBGROUP_FEATURE_ROTATE_BIT = 0x00000200,
5067     VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT = 0x00000400,
5068     VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
5069     VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_BIT,
5070     VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT,
5071     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5072 } VkSubgroupFeatureFlagBits;
5073 typedef VkFlags VkSubgroupFeatureFlags;
5074 
5075 typedef enum VkPeerMemoryFeatureFlagBits {
5076     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
5077     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
5078     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
5079     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
5080     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
5081     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
5082     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
5083     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
5084     VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5085 } VkPeerMemoryFeatureFlagBits;
5086 typedef VkFlags VkPeerMemoryFeatureFlags;
5087 
5088 typedef enum VkMemoryAllocateFlagBits {
5089     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
5090     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
5091     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
5092     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
5093     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
5094     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
5095     VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5096 } VkMemoryAllocateFlagBits;
5097 typedef VkFlags VkMemoryAllocateFlags;
5098 typedef VkFlags VkCommandPoolTrimFlags;
5099 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
5100 
5101 typedef enum VkExternalMemoryHandleTypeFlagBits {
5102     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5103     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5104     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5105     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
5106     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
5107     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
5108     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
5109     VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
5110     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
5111     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
5112     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
5113     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
5114     VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
5115     VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
5116     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5117     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5118     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5119     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5120     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5121     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5122     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5123     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5124 } VkExternalMemoryHandleTypeFlagBits;
5125 typedef VkFlags VkExternalMemoryHandleTypeFlags;
5126 
5127 typedef enum VkExternalMemoryFeatureFlagBits {
5128     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
5129     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
5130     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
5131     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5132     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5133     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
5134     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5135 } VkExternalMemoryFeatureFlagBits;
5136 typedef VkFlags VkExternalMemoryFeatureFlags;
5137 
5138 typedef enum VkExternalFenceHandleTypeFlagBits {
5139     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5140     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5141     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5142     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
5143     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5144     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5145     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5146     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
5147     VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5148 } VkExternalFenceHandleTypeFlagBits;
5149 typedef VkFlags VkExternalFenceHandleTypeFlags;
5150 
5151 typedef enum VkExternalFenceFeatureFlagBits {
5152     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5153     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5154     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5155     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
5156     VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5157 } VkExternalFenceFeatureFlagBits;
5158 typedef VkFlags VkExternalFenceFeatureFlags;
5159 
5160 typedef enum VkFenceImportFlagBits {
5161     VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
5162     VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
5163     VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5164 } VkFenceImportFlagBits;
5165 typedef VkFlags VkFenceImportFlags;
5166 
5167 typedef enum VkSemaphoreImportFlagBits {
5168     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
5169     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
5170     VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5171 } VkSemaphoreImportFlagBits;
5172 typedef VkFlags VkSemaphoreImportFlags;
5173 
5174 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
5175     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5176     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5177     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5178     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5179     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5180     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5181     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5182     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5183     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5184     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5185     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5186     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5187     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5188 } VkExternalSemaphoreHandleTypeFlagBits;
5189 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5190 
5191 typedef enum VkExternalSemaphoreFeatureFlagBits {
5192     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5193     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5194     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5195     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5196     VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5197 } VkExternalSemaphoreFeatureFlagBits;
5198 typedef VkFlags VkExternalSemaphoreFeatureFlags;
5199 typedef struct VkPhysicalDeviceSubgroupProperties {
5200     VkStructureType           sType;
5201     void*                     pNext;
5202     uint32_t                  subgroupSize;
5203     VkShaderStageFlags        supportedStages;
5204     VkSubgroupFeatureFlags    supportedOperations;
5205     VkBool32                  quadOperationsInAllStages;
5206 } VkPhysicalDeviceSubgroupProperties;
5207 
5208 typedef struct VkBindBufferMemoryInfo {
5209     VkStructureType    sType;
5210     const void*        pNext;
5211     VkBuffer           buffer;
5212     VkDeviceMemory     memory;
5213     VkDeviceSize       memoryOffset;
5214 } VkBindBufferMemoryInfo;
5215 
5216 typedef struct VkBindImageMemoryInfo {
5217     VkStructureType    sType;
5218     const void*        pNext;
5219     VkImage            image;
5220     VkDeviceMemory     memory;
5221     VkDeviceSize       memoryOffset;
5222 } VkBindImageMemoryInfo;
5223 
5224 typedef struct VkPhysicalDevice16BitStorageFeatures {
5225     VkStructureType    sType;
5226     void*              pNext;
5227     VkBool32           storageBuffer16BitAccess;
5228     VkBool32           uniformAndStorageBuffer16BitAccess;
5229     VkBool32           storagePushConstant16;
5230     VkBool32           storageInputOutput16;
5231 } VkPhysicalDevice16BitStorageFeatures;
5232 
5233 typedef struct VkMemoryDedicatedRequirements {
5234     VkStructureType    sType;
5235     void*              pNext;
5236     VkBool32           prefersDedicatedAllocation;
5237     VkBool32           requiresDedicatedAllocation;
5238 } VkMemoryDedicatedRequirements;
5239 
5240 typedef struct VkMemoryDedicatedAllocateInfo {
5241     VkStructureType    sType;
5242     const void*        pNext;
5243     VkImage            image;
5244     VkBuffer           buffer;
5245 } VkMemoryDedicatedAllocateInfo;
5246 
5247 typedef struct VkMemoryAllocateFlagsInfo {
5248     VkStructureType          sType;
5249     const void*              pNext;
5250     VkMemoryAllocateFlags    flags;
5251     uint32_t                 deviceMask;
5252 } VkMemoryAllocateFlagsInfo;
5253 
5254 typedef struct VkDeviceGroupRenderPassBeginInfo {
5255     VkStructureType    sType;
5256     const void*        pNext;
5257     uint32_t           deviceMask;
5258     uint32_t           deviceRenderAreaCount;
5259     const VkRect2D*    pDeviceRenderAreas;
5260 } VkDeviceGroupRenderPassBeginInfo;
5261 
5262 typedef struct VkDeviceGroupCommandBufferBeginInfo {
5263     VkStructureType    sType;
5264     const void*        pNext;
5265     uint32_t           deviceMask;
5266 } VkDeviceGroupCommandBufferBeginInfo;
5267 
5268 typedef struct VkDeviceGroupSubmitInfo {
5269     VkStructureType    sType;
5270     const void*        pNext;
5271     uint32_t           waitSemaphoreCount;
5272     const uint32_t*    pWaitSemaphoreDeviceIndices;
5273     uint32_t           commandBufferCount;
5274     const uint32_t*    pCommandBufferDeviceMasks;
5275     uint32_t           signalSemaphoreCount;
5276     const uint32_t*    pSignalSemaphoreDeviceIndices;
5277 } VkDeviceGroupSubmitInfo;
5278 
5279 typedef struct VkDeviceGroupBindSparseInfo {
5280     VkStructureType    sType;
5281     const void*        pNext;
5282     uint32_t           resourceDeviceIndex;
5283     uint32_t           memoryDeviceIndex;
5284 } VkDeviceGroupBindSparseInfo;
5285 
5286 typedef struct VkBindBufferMemoryDeviceGroupInfo {
5287     VkStructureType    sType;
5288     const void*        pNext;
5289     uint32_t           deviceIndexCount;
5290     const uint32_t*    pDeviceIndices;
5291 } VkBindBufferMemoryDeviceGroupInfo;
5292 
5293 typedef struct VkBindImageMemoryDeviceGroupInfo {
5294     VkStructureType    sType;
5295     const void*        pNext;
5296     uint32_t           deviceIndexCount;
5297     const uint32_t*    pDeviceIndices;
5298     uint32_t           splitInstanceBindRegionCount;
5299     const VkRect2D*    pSplitInstanceBindRegions;
5300 } VkBindImageMemoryDeviceGroupInfo;
5301 
5302 typedef struct VkPhysicalDeviceGroupProperties {
5303     VkStructureType     sType;
5304     void*               pNext;
5305     uint32_t            physicalDeviceCount;
5306     VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5307     VkBool32            subsetAllocation;
5308 } VkPhysicalDeviceGroupProperties;
5309 
5310 typedef struct VkDeviceGroupDeviceCreateInfo {
5311     VkStructureType            sType;
5312     const void*                pNext;
5313     uint32_t                   physicalDeviceCount;
5314     const VkPhysicalDevice*    pPhysicalDevices;
5315 } VkDeviceGroupDeviceCreateInfo;
5316 
5317 typedef struct VkBufferMemoryRequirementsInfo2 {
5318     VkStructureType    sType;
5319     const void*        pNext;
5320     VkBuffer           buffer;
5321 } VkBufferMemoryRequirementsInfo2;
5322 
5323 typedef struct VkImageMemoryRequirementsInfo2 {
5324     VkStructureType    sType;
5325     const void*        pNext;
5326     VkImage            image;
5327 } VkImageMemoryRequirementsInfo2;
5328 
5329 typedef struct VkImageSparseMemoryRequirementsInfo2 {
5330     VkStructureType    sType;
5331     const void*        pNext;
5332     VkImage            image;
5333 } VkImageSparseMemoryRequirementsInfo2;
5334 
5335 typedef struct VkMemoryRequirements2 {
5336     VkStructureType         sType;
5337     void*                   pNext;
5338     VkMemoryRequirements    memoryRequirements;
5339 } VkMemoryRequirements2;
5340 
5341 typedef struct VkSparseImageMemoryRequirements2 {
5342     VkStructureType                    sType;
5343     void*                              pNext;
5344     VkSparseImageMemoryRequirements    memoryRequirements;
5345 } VkSparseImageMemoryRequirements2;
5346 
5347 typedef struct VkPhysicalDeviceFeatures2 {
5348     VkStructureType             sType;
5349     void*                       pNext;
5350     VkPhysicalDeviceFeatures    features;
5351 } VkPhysicalDeviceFeatures2;
5352 
5353 typedef struct VkPhysicalDeviceProperties2 {
5354     VkStructureType               sType;
5355     void*                         pNext;
5356     VkPhysicalDeviceProperties    properties;
5357 } VkPhysicalDeviceProperties2;
5358 
5359 typedef struct VkFormatProperties2 {
5360     VkStructureType       sType;
5361     void*                 pNext;
5362     VkFormatProperties    formatProperties;
5363 } VkFormatProperties2;
5364 
5365 typedef struct VkImageFormatProperties2 {
5366     VkStructureType            sType;
5367     void*                      pNext;
5368     VkImageFormatProperties    imageFormatProperties;
5369 } VkImageFormatProperties2;
5370 
5371 typedef struct VkPhysicalDeviceImageFormatInfo2 {
5372     VkStructureType       sType;
5373     const void*           pNext;
5374     VkFormat              format;
5375     VkImageType           type;
5376     VkImageTiling         tiling;
5377     VkImageUsageFlags     usage;
5378     VkImageCreateFlags    flags;
5379 } VkPhysicalDeviceImageFormatInfo2;
5380 
5381 typedef struct VkQueueFamilyProperties2 {
5382     VkStructureType            sType;
5383     void*                      pNext;
5384     VkQueueFamilyProperties    queueFamilyProperties;
5385 } VkQueueFamilyProperties2;
5386 
5387 typedef struct VkPhysicalDeviceMemoryProperties2 {
5388     VkStructureType                     sType;
5389     void*                               pNext;
5390     VkPhysicalDeviceMemoryProperties    memoryProperties;
5391 } VkPhysicalDeviceMemoryProperties2;
5392 
5393 typedef struct VkSparseImageFormatProperties2 {
5394     VkStructureType                  sType;
5395     void*                            pNext;
5396     VkSparseImageFormatProperties    properties;
5397 } VkSparseImageFormatProperties2;
5398 
5399 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
5400     VkStructureType          sType;
5401     const void*              pNext;
5402     VkFormat                 format;
5403     VkImageType              type;
5404     VkSampleCountFlagBits    samples;
5405     VkImageUsageFlags        usage;
5406     VkImageTiling            tiling;
5407 } VkPhysicalDeviceSparseImageFormatInfo2;
5408 
5409 typedef struct VkPhysicalDevicePointClippingProperties {
5410     VkStructureType            sType;
5411     void*                      pNext;
5412     VkPointClippingBehavior    pointClippingBehavior;
5413 } VkPhysicalDevicePointClippingProperties;
5414 
5415 typedef struct VkInputAttachmentAspectReference {
5416     uint32_t              subpass;
5417     uint32_t              inputAttachmentIndex;
5418     VkImageAspectFlags    aspectMask;
5419 } VkInputAttachmentAspectReference;
5420 
5421 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
5422     VkStructureType                            sType;
5423     const void*                                pNext;
5424     uint32_t                                   aspectReferenceCount;
5425     const VkInputAttachmentAspectReference*    pAspectReferences;
5426 } VkRenderPassInputAttachmentAspectCreateInfo;
5427 
5428 typedef struct VkImageViewUsageCreateInfo {
5429     VkStructureType      sType;
5430     const void*          pNext;
5431     VkImageUsageFlags    usage;
5432 } VkImageViewUsageCreateInfo;
5433 
5434 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
5435     VkStructureType               sType;
5436     const void*                   pNext;
5437     VkTessellationDomainOrigin    domainOrigin;
5438 } VkPipelineTessellationDomainOriginStateCreateInfo;
5439 
5440 typedef struct VkRenderPassMultiviewCreateInfo {
5441     VkStructureType    sType;
5442     const void*        pNext;
5443     uint32_t           subpassCount;
5444     const uint32_t*    pViewMasks;
5445     uint32_t           dependencyCount;
5446     const int32_t*     pViewOffsets;
5447     uint32_t           correlationMaskCount;
5448     const uint32_t*    pCorrelationMasks;
5449 } VkRenderPassMultiviewCreateInfo;
5450 
5451 typedef struct VkPhysicalDeviceMultiviewFeatures {
5452     VkStructureType    sType;
5453     void*              pNext;
5454     VkBool32           multiview;
5455     VkBool32           multiviewGeometryShader;
5456     VkBool32           multiviewTessellationShader;
5457 } VkPhysicalDeviceMultiviewFeatures;
5458 
5459 typedef struct VkPhysicalDeviceMultiviewProperties {
5460     VkStructureType    sType;
5461     void*              pNext;
5462     uint32_t           maxMultiviewViewCount;
5463     uint32_t           maxMultiviewInstanceIndex;
5464 } VkPhysicalDeviceMultiviewProperties;
5465 
5466 typedef struct VkPhysicalDeviceVariablePointersFeatures {
5467     VkStructureType    sType;
5468     void*              pNext;
5469     VkBool32           variablePointersStorageBuffer;
5470     VkBool32           variablePointers;
5471 } VkPhysicalDeviceVariablePointersFeatures;
5472 
5473 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
5474 
5475 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
5476     VkStructureType    sType;
5477     void*              pNext;
5478     VkBool32           protectedMemory;
5479 } VkPhysicalDeviceProtectedMemoryFeatures;
5480 
5481 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
5482     VkStructureType    sType;
5483     void*              pNext;
5484     VkBool32           protectedNoFault;
5485 } VkPhysicalDeviceProtectedMemoryProperties;
5486 
5487 typedef struct VkDeviceQueueInfo2 {
5488     VkStructureType             sType;
5489     const void*                 pNext;
5490     VkDeviceQueueCreateFlags    flags;
5491     uint32_t                    queueFamilyIndex;
5492     uint32_t                    queueIndex;
5493 } VkDeviceQueueInfo2;
5494 
5495 typedef struct VkProtectedSubmitInfo {
5496     VkStructureType    sType;
5497     const void*        pNext;
5498     VkBool32           protectedSubmit;
5499 } VkProtectedSubmitInfo;
5500 
5501 typedef struct VkSamplerYcbcrConversionCreateInfo {
5502     VkStructureType                  sType;
5503     const void*                      pNext;
5504     VkFormat                         format;
5505     VkSamplerYcbcrModelConversion    ycbcrModel;
5506     VkSamplerYcbcrRange              ycbcrRange;
5507     VkComponentMapping               components;
5508     VkChromaLocation                 xChromaOffset;
5509     VkChromaLocation                 yChromaOffset;
5510     VkFilter                         chromaFilter;
5511     VkBool32                         forceExplicitReconstruction;
5512 } VkSamplerYcbcrConversionCreateInfo;
5513 
5514 typedef struct VkSamplerYcbcrConversionInfo {
5515     VkStructureType             sType;
5516     const void*                 pNext;
5517     VkSamplerYcbcrConversion    conversion;
5518 } VkSamplerYcbcrConversionInfo;
5519 
5520 typedef struct VkBindImagePlaneMemoryInfo {
5521     VkStructureType          sType;
5522     const void*              pNext;
5523     VkImageAspectFlagBits    planeAspect;
5524 } VkBindImagePlaneMemoryInfo;
5525 
5526 typedef struct VkImagePlaneMemoryRequirementsInfo {
5527     VkStructureType          sType;
5528     const void*              pNext;
5529     VkImageAspectFlagBits    planeAspect;
5530 } VkImagePlaneMemoryRequirementsInfo;
5531 
5532 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5533     VkStructureType    sType;
5534     void*              pNext;
5535     VkBool32           samplerYcbcrConversion;
5536 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
5537 
5538 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
5539     VkStructureType    sType;
5540     void*              pNext;
5541     uint32_t           combinedImageSamplerDescriptorCount;
5542 } VkSamplerYcbcrConversionImageFormatProperties;
5543 
5544 typedef struct VkDescriptorUpdateTemplateEntry {
5545     uint32_t            dstBinding;
5546     uint32_t            dstArrayElement;
5547     uint32_t            descriptorCount;
5548     VkDescriptorType    descriptorType;
5549     size_t              offset;
5550     size_t              stride;
5551 } VkDescriptorUpdateTemplateEntry;
5552 
5553 typedef struct VkDescriptorUpdateTemplateCreateInfo {
5554     VkStructureType                           sType;
5555     const void*                               pNext;
5556     VkDescriptorUpdateTemplateCreateFlags     flags;
5557     uint32_t                                  descriptorUpdateEntryCount;
5558     const VkDescriptorUpdateTemplateEntry*    pDescriptorUpdateEntries;
5559     VkDescriptorUpdateTemplateType            templateType;
5560     VkDescriptorSetLayout                     descriptorSetLayout;
5561     VkPipelineBindPoint                       pipelineBindPoint;
5562     VkPipelineLayout                          pipelineLayout;
5563     uint32_t                                  set;
5564 } VkDescriptorUpdateTemplateCreateInfo;
5565 
5566 typedef struct VkExternalMemoryProperties {
5567     VkExternalMemoryFeatureFlags       externalMemoryFeatures;
5568     VkExternalMemoryHandleTypeFlags    exportFromImportedHandleTypes;
5569     VkExternalMemoryHandleTypeFlags    compatibleHandleTypes;
5570 } VkExternalMemoryProperties;
5571 
5572 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
5573     VkStructureType                       sType;
5574     const void*                           pNext;
5575     VkExternalMemoryHandleTypeFlagBits    handleType;
5576 } VkPhysicalDeviceExternalImageFormatInfo;
5577 
5578 typedef struct VkExternalImageFormatProperties {
5579     VkStructureType               sType;
5580     void*                         pNext;
5581     VkExternalMemoryProperties    externalMemoryProperties;
5582 } VkExternalImageFormatProperties;
5583 
5584 typedef struct VkPhysicalDeviceExternalBufferInfo {
5585     VkStructureType                       sType;
5586     const void*                           pNext;
5587     VkBufferCreateFlags                   flags;
5588     VkBufferUsageFlags                    usage;
5589     VkExternalMemoryHandleTypeFlagBits    handleType;
5590 } VkPhysicalDeviceExternalBufferInfo;
5591 
5592 typedef struct VkExternalBufferProperties {
5593     VkStructureType               sType;
5594     void*                         pNext;
5595     VkExternalMemoryProperties    externalMemoryProperties;
5596 } VkExternalBufferProperties;
5597 
5598 typedef struct VkPhysicalDeviceIDProperties {
5599     VkStructureType    sType;
5600     void*              pNext;
5601     uint8_t            deviceUUID[VK_UUID_SIZE];
5602     uint8_t            driverUUID[VK_UUID_SIZE];
5603     uint8_t            deviceLUID[VK_LUID_SIZE];
5604     uint32_t           deviceNodeMask;
5605     VkBool32           deviceLUIDValid;
5606 } VkPhysicalDeviceIDProperties;
5607 
5608 typedef struct VkExternalMemoryImageCreateInfo {
5609     VkStructureType                    sType;
5610     const void*                        pNext;
5611     VkExternalMemoryHandleTypeFlags    handleTypes;
5612 } VkExternalMemoryImageCreateInfo;
5613 
5614 typedef struct VkExternalMemoryBufferCreateInfo {
5615     VkStructureType                    sType;
5616     const void*                        pNext;
5617     VkExternalMemoryHandleTypeFlags    handleTypes;
5618 } VkExternalMemoryBufferCreateInfo;
5619 
5620 typedef struct VkExportMemoryAllocateInfo {
5621     VkStructureType                    sType;
5622     const void*                        pNext;
5623     VkExternalMemoryHandleTypeFlags    handleTypes;
5624 } VkExportMemoryAllocateInfo;
5625 
5626 typedef struct VkPhysicalDeviceExternalFenceInfo {
5627     VkStructureType                      sType;
5628     const void*                          pNext;
5629     VkExternalFenceHandleTypeFlagBits    handleType;
5630 } VkPhysicalDeviceExternalFenceInfo;
5631 
5632 typedef struct VkExternalFenceProperties {
5633     VkStructureType                   sType;
5634     void*                             pNext;
5635     VkExternalFenceHandleTypeFlags    exportFromImportedHandleTypes;
5636     VkExternalFenceHandleTypeFlags    compatibleHandleTypes;
5637     VkExternalFenceFeatureFlags       externalFenceFeatures;
5638 } VkExternalFenceProperties;
5639 
5640 typedef struct VkExportFenceCreateInfo {
5641     VkStructureType                   sType;
5642     const void*                       pNext;
5643     VkExternalFenceHandleTypeFlags    handleTypes;
5644 } VkExportFenceCreateInfo;
5645 
5646 typedef struct VkExportSemaphoreCreateInfo {
5647     VkStructureType                       sType;
5648     const void*                           pNext;
5649     VkExternalSemaphoreHandleTypeFlags    handleTypes;
5650 } VkExportSemaphoreCreateInfo;
5651 
5652 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
5653     VkStructureType                          sType;
5654     const void*                              pNext;
5655     VkExternalSemaphoreHandleTypeFlagBits    handleType;
5656 } VkPhysicalDeviceExternalSemaphoreInfo;
5657 
5658 typedef struct VkExternalSemaphoreProperties {
5659     VkStructureType                       sType;
5660     void*                                 pNext;
5661     VkExternalSemaphoreHandleTypeFlags    exportFromImportedHandleTypes;
5662     VkExternalSemaphoreHandleTypeFlags    compatibleHandleTypes;
5663     VkExternalSemaphoreFeatureFlags       externalSemaphoreFeatures;
5664 } VkExternalSemaphoreProperties;
5665 
5666 typedef struct VkPhysicalDeviceMaintenance3Properties {
5667     VkStructureType    sType;
5668     void*              pNext;
5669     uint32_t           maxPerSetDescriptors;
5670     VkDeviceSize       maxMemoryAllocationSize;
5671 } VkPhysicalDeviceMaintenance3Properties;
5672 
5673 typedef struct VkDescriptorSetLayoutSupport {
5674     VkStructureType    sType;
5675     void*              pNext;
5676     VkBool32           supported;
5677 } VkDescriptorSetLayoutSupport;
5678 
5679 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
5680     VkStructureType    sType;
5681     void*              pNext;
5682     VkBool32           shaderDrawParameters;
5683 } VkPhysicalDeviceShaderDrawParametersFeatures;
5684 
5685 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
5686 
5687 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
5688 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
5689 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
5690 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
5691 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
5692 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);
5693 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
5694 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5695 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5696 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
5697 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
5698 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
5699 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
5700 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
5701 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
5702 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
5703 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
5704 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
5705 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
5706 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
5707 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
5708 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
5709 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
5710 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
5711 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
5712 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
5713 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
5714 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
5715 
5716 #ifndef VK_NO_PROTOTYPES
5717 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
5718     uint32_t*                                   pApiVersion);
5719 
5720 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
5721     VkDevice                                    device,
5722     uint32_t                                    bindInfoCount,
5723     const VkBindBufferMemoryInfo*               pBindInfos);
5724 
5725 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
5726     VkDevice                                    device,
5727     uint32_t                                    bindInfoCount,
5728     const VkBindImageMemoryInfo*                pBindInfos);
5729 
5730 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
5731     VkDevice                                    device,
5732     uint32_t                                    heapIndex,
5733     uint32_t                                    localDeviceIndex,
5734     uint32_t                                    remoteDeviceIndex,
5735     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
5736 
5737 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
5738     VkCommandBuffer                             commandBuffer,
5739     uint32_t                                    deviceMask);
5740 
5741 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
5742     VkCommandBuffer                             commandBuffer,
5743     uint32_t                                    baseGroupX,
5744     uint32_t                                    baseGroupY,
5745     uint32_t                                    baseGroupZ,
5746     uint32_t                                    groupCountX,
5747     uint32_t                                    groupCountY,
5748     uint32_t                                    groupCountZ);
5749 
5750 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
5751     VkInstance                                  instance,
5752     uint32_t*                                   pPhysicalDeviceGroupCount,
5753     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
5754 
5755 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
5756     VkDevice                                    device,
5757     const VkImageMemoryRequirementsInfo2*       pInfo,
5758     VkMemoryRequirements2*                      pMemoryRequirements);
5759 
5760 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
5761     VkDevice                                    device,
5762     const VkBufferMemoryRequirementsInfo2*      pInfo,
5763     VkMemoryRequirements2*                      pMemoryRequirements);
5764 
5765 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
5766     VkDevice                                    device,
5767     const VkImageSparseMemoryRequirementsInfo2* pInfo,
5768     uint32_t*                                   pSparseMemoryRequirementCount,
5769     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
5770 
5771 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
5772     VkPhysicalDevice                            physicalDevice,
5773     VkPhysicalDeviceFeatures2*                  pFeatures);
5774 
5775 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
5776     VkPhysicalDevice                            physicalDevice,
5777     VkPhysicalDeviceProperties2*                pProperties);
5778 
5779 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
5780     VkPhysicalDevice                            physicalDevice,
5781     VkFormat                                    format,
5782     VkFormatProperties2*                        pFormatProperties);
5783 
5784 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
5785     VkPhysicalDevice                            physicalDevice,
5786     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
5787     VkImageFormatProperties2*                   pImageFormatProperties);
5788 
5789 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
5790     VkPhysicalDevice                            physicalDevice,
5791     uint32_t*                                   pQueueFamilyPropertyCount,
5792     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
5793 
5794 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
5795     VkPhysicalDevice                            physicalDevice,
5796     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
5797 
5798 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
5799     VkPhysicalDevice                            physicalDevice,
5800     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
5801     uint32_t*                                   pPropertyCount,
5802     VkSparseImageFormatProperties2*             pProperties);
5803 
5804 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
5805     VkDevice                                    device,
5806     VkCommandPool                               commandPool,
5807     VkCommandPoolTrimFlags                      flags);
5808 
5809 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
5810     VkDevice                                    device,
5811     const VkDeviceQueueInfo2*                   pQueueInfo,
5812     VkQueue*                                    pQueue);
5813 
5814 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
5815     VkDevice                                    device,
5816     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
5817     const VkAllocationCallbacks*                pAllocator,
5818     VkSamplerYcbcrConversion*                   pYcbcrConversion);
5819 
5820 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
5821     VkDevice                                    device,
5822     VkSamplerYcbcrConversion                    ycbcrConversion,
5823     const VkAllocationCallbacks*                pAllocator);
5824 
5825 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
5826     VkDevice                                    device,
5827     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
5828     const VkAllocationCallbacks*                pAllocator,
5829     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
5830 
5831 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
5832     VkDevice                                    device,
5833     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
5834     const VkAllocationCallbacks*                pAllocator);
5835 
5836 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
5837     VkDevice                                    device,
5838     VkDescriptorSet                             descriptorSet,
5839     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
5840     const void*                                 pData);
5841 
5842 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
5843     VkPhysicalDevice                            physicalDevice,
5844     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
5845     VkExternalBufferProperties*                 pExternalBufferProperties);
5846 
5847 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
5848     VkPhysicalDevice                            physicalDevice,
5849     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
5850     VkExternalFenceProperties*                  pExternalFenceProperties);
5851 
5852 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
5853     VkPhysicalDevice                            physicalDevice,
5854     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
5855     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
5856 
5857 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
5858     VkDevice                                    device,
5859     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
5860     VkDescriptorSetLayoutSupport*               pSupport);
5861 #endif
5862 
5863 
5864 // VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
5865 #define VK_VERSION_1_2 1
5866 // Vulkan 1.2 version number
5867 #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
5868 
5869 #define VK_MAX_DRIVER_NAME_SIZE           256U
5870 #define VK_MAX_DRIVER_INFO_SIZE           256U
5871 
5872 typedef enum VkDriverId {
5873     VK_DRIVER_ID_AMD_PROPRIETARY = 1,
5874     VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
5875     VK_DRIVER_ID_MESA_RADV = 3,
5876     VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
5877     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
5878     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
5879     VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
5880     VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
5881     VK_DRIVER_ID_ARM_PROPRIETARY = 9,
5882     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
5883     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
5884     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
5885     VK_DRIVER_ID_MESA_LLVMPIPE = 13,
5886     VK_DRIVER_ID_MOLTENVK = 14,
5887     VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
5888     VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
5889     VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
5890     VK_DRIVER_ID_MESA_TURNIP = 18,
5891     VK_DRIVER_ID_MESA_V3DV = 19,
5892     VK_DRIVER_ID_MESA_PANVK = 20,
5893     VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
5894     VK_DRIVER_ID_MESA_VENUS = 22,
5895     VK_DRIVER_ID_MESA_DOZEN = 23,
5896     VK_DRIVER_ID_MESA_NVK = 24,
5897     VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
5898     VK_DRIVER_ID_MESA_HONEYKRISP = 26,
5899     VK_DRIVER_ID_RESERVED_27 = 27,
5900     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
5901     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
5902     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
5903     VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
5904     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
5905     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
5906     VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
5907     VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
5908     VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
5909     VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
5910     VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
5911     VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
5912     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
5913 } VkDriverId;
5914 
5915 typedef enum VkShaderFloatControlsIndependence {
5916     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
5917     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
5918     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
5919     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
5920     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
5921     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
5922     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
5923 } VkShaderFloatControlsIndependence;
5924 
5925 typedef enum VkSamplerReductionMode {
5926     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
5927     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
5928     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
5929     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
5930     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
5931     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
5932     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
5933     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
5934 } VkSamplerReductionMode;
5935 
5936 typedef enum VkSemaphoreType {
5937     VK_SEMAPHORE_TYPE_BINARY = 0,
5938     VK_SEMAPHORE_TYPE_TIMELINE = 1,
5939     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
5940     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
5941     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
5942 } VkSemaphoreType;
5943 
5944 typedef enum VkResolveModeFlagBits {
5945     VK_RESOLVE_MODE_NONE = 0,
5946     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
5947     VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
5948     VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
5949     VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
5950     VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 0x00000010,
5951     VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
5952     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
5953     VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
5954     VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
5955     VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
5956     VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5957 } VkResolveModeFlagBits;
5958 typedef VkFlags VkResolveModeFlags;
5959 
5960 typedef enum VkDescriptorBindingFlagBits {
5961     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
5962     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
5963     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
5964     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
5965     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
5966     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
5967     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
5968     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
5969     VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5970 } VkDescriptorBindingFlagBits;
5971 typedef VkFlags VkDescriptorBindingFlags;
5972 
5973 typedef enum VkSemaphoreWaitFlagBits {
5974     VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
5975     VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
5976     VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5977 } VkSemaphoreWaitFlagBits;
5978 typedef VkFlags VkSemaphoreWaitFlags;
5979 typedef struct VkPhysicalDeviceVulkan11Features {
5980     VkStructureType    sType;
5981     void*              pNext;
5982     VkBool32           storageBuffer16BitAccess;
5983     VkBool32           uniformAndStorageBuffer16BitAccess;
5984     VkBool32           storagePushConstant16;
5985     VkBool32           storageInputOutput16;
5986     VkBool32           multiview;
5987     VkBool32           multiviewGeometryShader;
5988     VkBool32           multiviewTessellationShader;
5989     VkBool32           variablePointersStorageBuffer;
5990     VkBool32           variablePointers;
5991     VkBool32           protectedMemory;
5992     VkBool32           samplerYcbcrConversion;
5993     VkBool32           shaderDrawParameters;
5994 } VkPhysicalDeviceVulkan11Features;
5995 
5996 typedef struct VkPhysicalDeviceVulkan11Properties {
5997     VkStructureType            sType;
5998     void*                      pNext;
5999     uint8_t                    deviceUUID[VK_UUID_SIZE];
6000     uint8_t                    driverUUID[VK_UUID_SIZE];
6001     uint8_t                    deviceLUID[VK_LUID_SIZE];
6002     uint32_t                   deviceNodeMask;
6003     VkBool32                   deviceLUIDValid;
6004     uint32_t                   subgroupSize;
6005     VkShaderStageFlags         subgroupSupportedStages;
6006     VkSubgroupFeatureFlags     subgroupSupportedOperations;
6007     VkBool32                   subgroupQuadOperationsInAllStages;
6008     VkPointClippingBehavior    pointClippingBehavior;
6009     uint32_t                   maxMultiviewViewCount;
6010     uint32_t                   maxMultiviewInstanceIndex;
6011     VkBool32                   protectedNoFault;
6012     uint32_t                   maxPerSetDescriptors;
6013     VkDeviceSize               maxMemoryAllocationSize;
6014 } VkPhysicalDeviceVulkan11Properties;
6015 
6016 typedef struct VkPhysicalDeviceVulkan12Features {
6017     VkStructureType    sType;
6018     void*              pNext;
6019     VkBool32           samplerMirrorClampToEdge;
6020     VkBool32           drawIndirectCount;
6021     VkBool32           storageBuffer8BitAccess;
6022     VkBool32           uniformAndStorageBuffer8BitAccess;
6023     VkBool32           storagePushConstant8;
6024     VkBool32           shaderBufferInt64Atomics;
6025     VkBool32           shaderSharedInt64Atomics;
6026     VkBool32           shaderFloat16;
6027     VkBool32           shaderInt8;
6028     VkBool32           descriptorIndexing;
6029     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
6030     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
6031     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
6032     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
6033     VkBool32           shaderSampledImageArrayNonUniformIndexing;
6034     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
6035     VkBool32           shaderStorageImageArrayNonUniformIndexing;
6036     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
6037     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
6038     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
6039     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
6040     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
6041     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
6042     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
6043     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
6044     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
6045     VkBool32           descriptorBindingUpdateUnusedWhilePending;
6046     VkBool32           descriptorBindingPartiallyBound;
6047     VkBool32           descriptorBindingVariableDescriptorCount;
6048     VkBool32           runtimeDescriptorArray;
6049     VkBool32           samplerFilterMinmax;
6050     VkBool32           scalarBlockLayout;
6051     VkBool32           imagelessFramebuffer;
6052     VkBool32           uniformBufferStandardLayout;
6053     VkBool32           shaderSubgroupExtendedTypes;
6054     VkBool32           separateDepthStencilLayouts;
6055     VkBool32           hostQueryReset;
6056     VkBool32           timelineSemaphore;
6057     VkBool32           bufferDeviceAddress;
6058     VkBool32           bufferDeviceAddressCaptureReplay;
6059     VkBool32           bufferDeviceAddressMultiDevice;
6060     VkBool32           vulkanMemoryModel;
6061     VkBool32           vulkanMemoryModelDeviceScope;
6062     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
6063     VkBool32           shaderOutputViewportIndex;
6064     VkBool32           shaderOutputLayer;
6065     VkBool32           subgroupBroadcastDynamicId;
6066 } VkPhysicalDeviceVulkan12Features;
6067 
6068 typedef struct VkConformanceVersion {
6069     uint8_t    major;
6070     uint8_t    minor;
6071     uint8_t    subminor;
6072     uint8_t    patch;
6073 } VkConformanceVersion;
6074 
6075 typedef struct VkPhysicalDeviceVulkan12Properties {
6076     VkStructureType                      sType;
6077     void*                                pNext;
6078     VkDriverId                           driverID;
6079     char                                 driverName[VK_MAX_DRIVER_NAME_SIZE];
6080     char                                 driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6081     VkConformanceVersion                 conformanceVersion;
6082     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
6083     VkShaderFloatControlsIndependence    roundingModeIndependence;
6084     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
6085     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
6086     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
6087     VkBool32                             shaderDenormPreserveFloat16;
6088     VkBool32                             shaderDenormPreserveFloat32;
6089     VkBool32                             shaderDenormPreserveFloat64;
6090     VkBool32                             shaderDenormFlushToZeroFloat16;
6091     VkBool32                             shaderDenormFlushToZeroFloat32;
6092     VkBool32                             shaderDenormFlushToZeroFloat64;
6093     VkBool32                             shaderRoundingModeRTEFloat16;
6094     VkBool32                             shaderRoundingModeRTEFloat32;
6095     VkBool32                             shaderRoundingModeRTEFloat64;
6096     VkBool32                             shaderRoundingModeRTZFloat16;
6097     VkBool32                             shaderRoundingModeRTZFloat32;
6098     VkBool32                             shaderRoundingModeRTZFloat64;
6099     uint32_t                             maxUpdateAfterBindDescriptorsInAllPools;
6100     VkBool32                             shaderUniformBufferArrayNonUniformIndexingNative;
6101     VkBool32                             shaderSampledImageArrayNonUniformIndexingNative;
6102     VkBool32                             shaderStorageBufferArrayNonUniformIndexingNative;
6103     VkBool32                             shaderStorageImageArrayNonUniformIndexingNative;
6104     VkBool32                             shaderInputAttachmentArrayNonUniformIndexingNative;
6105     VkBool32                             robustBufferAccessUpdateAfterBind;
6106     VkBool32                             quadDivergentImplicitLod;
6107     uint32_t                             maxPerStageDescriptorUpdateAfterBindSamplers;
6108     uint32_t                             maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6109     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6110     uint32_t                             maxPerStageDescriptorUpdateAfterBindSampledImages;
6111     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageImages;
6112     uint32_t                             maxPerStageDescriptorUpdateAfterBindInputAttachments;
6113     uint32_t                             maxPerStageUpdateAfterBindResources;
6114     uint32_t                             maxDescriptorSetUpdateAfterBindSamplers;
6115     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffers;
6116     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6117     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffers;
6118     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6119     uint32_t                             maxDescriptorSetUpdateAfterBindSampledImages;
6120     uint32_t                             maxDescriptorSetUpdateAfterBindStorageImages;
6121     uint32_t                             maxDescriptorSetUpdateAfterBindInputAttachments;
6122     VkResolveModeFlags                   supportedDepthResolveModes;
6123     VkResolveModeFlags                   supportedStencilResolveModes;
6124     VkBool32                             independentResolveNone;
6125     VkBool32                             independentResolve;
6126     VkBool32                             filterMinmaxSingleComponentFormats;
6127     VkBool32                             filterMinmaxImageComponentMapping;
6128     uint64_t                             maxTimelineSemaphoreValueDifference;
6129     VkSampleCountFlags                   framebufferIntegerColorSampleCounts;
6130 } VkPhysicalDeviceVulkan12Properties;
6131 
6132 typedef struct VkImageFormatListCreateInfo {
6133     VkStructureType    sType;
6134     const void*        pNext;
6135     uint32_t           viewFormatCount;
6136     const VkFormat*    pViewFormats;
6137 } VkImageFormatListCreateInfo;
6138 
6139 typedef struct VkAttachmentDescription2 {
6140     VkStructureType                 sType;
6141     const void*                     pNext;
6142     VkAttachmentDescriptionFlags    flags;
6143     VkFormat                        format;
6144     VkSampleCountFlagBits           samples;
6145     VkAttachmentLoadOp              loadOp;
6146     VkAttachmentStoreOp             storeOp;
6147     VkAttachmentLoadOp              stencilLoadOp;
6148     VkAttachmentStoreOp             stencilStoreOp;
6149     VkImageLayout                   initialLayout;
6150     VkImageLayout                   finalLayout;
6151 } VkAttachmentDescription2;
6152 
6153 typedef struct VkAttachmentReference2 {
6154     VkStructureType       sType;
6155     const void*           pNext;
6156     uint32_t              attachment;
6157     VkImageLayout         layout;
6158     VkImageAspectFlags    aspectMask;
6159 } VkAttachmentReference2;
6160 
6161 typedef struct VkSubpassDescription2 {
6162     VkStructureType                  sType;
6163     const void*                      pNext;
6164     VkSubpassDescriptionFlags        flags;
6165     VkPipelineBindPoint              pipelineBindPoint;
6166     uint32_t                         viewMask;
6167     uint32_t                         inputAttachmentCount;
6168     const VkAttachmentReference2*    pInputAttachments;
6169     uint32_t                         colorAttachmentCount;
6170     const VkAttachmentReference2*    pColorAttachments;
6171     const VkAttachmentReference2*    pResolveAttachments;
6172     const VkAttachmentReference2*    pDepthStencilAttachment;
6173     uint32_t                         preserveAttachmentCount;
6174     const uint32_t*                  pPreserveAttachments;
6175 } VkSubpassDescription2;
6176 
6177 typedef struct VkSubpassDependency2 {
6178     VkStructureType         sType;
6179     const void*             pNext;
6180     uint32_t                srcSubpass;
6181     uint32_t                dstSubpass;
6182     VkPipelineStageFlags    srcStageMask;
6183     VkPipelineStageFlags    dstStageMask;
6184     VkAccessFlags           srcAccessMask;
6185     VkAccessFlags           dstAccessMask;
6186     VkDependencyFlags       dependencyFlags;
6187     int32_t                 viewOffset;
6188 } VkSubpassDependency2;
6189 
6190 typedef struct VkRenderPassCreateInfo2 {
6191     VkStructureType                    sType;
6192     const void*                        pNext;
6193     VkRenderPassCreateFlags            flags;
6194     uint32_t                           attachmentCount;
6195     const VkAttachmentDescription2*    pAttachments;
6196     uint32_t                           subpassCount;
6197     const VkSubpassDescription2*       pSubpasses;
6198     uint32_t                           dependencyCount;
6199     const VkSubpassDependency2*        pDependencies;
6200     uint32_t                           correlatedViewMaskCount;
6201     const uint32_t*                    pCorrelatedViewMasks;
6202 } VkRenderPassCreateInfo2;
6203 
6204 typedef struct VkSubpassBeginInfo {
6205     VkStructureType      sType;
6206     const void*          pNext;
6207     VkSubpassContents    contents;
6208 } VkSubpassBeginInfo;
6209 
6210 typedef struct VkSubpassEndInfo {
6211     VkStructureType    sType;
6212     const void*        pNext;
6213 } VkSubpassEndInfo;
6214 
6215 typedef struct VkPhysicalDevice8BitStorageFeatures {
6216     VkStructureType    sType;
6217     void*              pNext;
6218     VkBool32           storageBuffer8BitAccess;
6219     VkBool32           uniformAndStorageBuffer8BitAccess;
6220     VkBool32           storagePushConstant8;
6221 } VkPhysicalDevice8BitStorageFeatures;
6222 
6223 typedef struct VkPhysicalDeviceDriverProperties {
6224     VkStructureType         sType;
6225     void*                   pNext;
6226     VkDriverId              driverID;
6227     char                    driverName[VK_MAX_DRIVER_NAME_SIZE];
6228     char                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6229     VkConformanceVersion    conformanceVersion;
6230 } VkPhysicalDeviceDriverProperties;
6231 
6232 typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6233     VkStructureType    sType;
6234     void*              pNext;
6235     VkBool32           shaderBufferInt64Atomics;
6236     VkBool32           shaderSharedInt64Atomics;
6237 } VkPhysicalDeviceShaderAtomicInt64Features;
6238 
6239 typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6240     VkStructureType    sType;
6241     void*              pNext;
6242     VkBool32           shaderFloat16;
6243     VkBool32           shaderInt8;
6244 } VkPhysicalDeviceShaderFloat16Int8Features;
6245 
6246 typedef struct VkPhysicalDeviceFloatControlsProperties {
6247     VkStructureType                      sType;
6248     void*                                pNext;
6249     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
6250     VkShaderFloatControlsIndependence    roundingModeIndependence;
6251     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
6252     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
6253     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
6254     VkBool32                             shaderDenormPreserveFloat16;
6255     VkBool32                             shaderDenormPreserveFloat32;
6256     VkBool32                             shaderDenormPreserveFloat64;
6257     VkBool32                             shaderDenormFlushToZeroFloat16;
6258     VkBool32                             shaderDenormFlushToZeroFloat32;
6259     VkBool32                             shaderDenormFlushToZeroFloat64;
6260     VkBool32                             shaderRoundingModeRTEFloat16;
6261     VkBool32                             shaderRoundingModeRTEFloat32;
6262     VkBool32                             shaderRoundingModeRTEFloat64;
6263     VkBool32                             shaderRoundingModeRTZFloat16;
6264     VkBool32                             shaderRoundingModeRTZFloat32;
6265     VkBool32                             shaderRoundingModeRTZFloat64;
6266 } VkPhysicalDeviceFloatControlsProperties;
6267 
6268 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6269     VkStructureType                    sType;
6270     const void*                        pNext;
6271     uint32_t                           bindingCount;
6272     const VkDescriptorBindingFlags*    pBindingFlags;
6273 } VkDescriptorSetLayoutBindingFlagsCreateInfo;
6274 
6275 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6276     VkStructureType    sType;
6277     void*              pNext;
6278     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
6279     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
6280     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
6281     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
6282     VkBool32           shaderSampledImageArrayNonUniformIndexing;
6283     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
6284     VkBool32           shaderStorageImageArrayNonUniformIndexing;
6285     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
6286     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
6287     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
6288     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
6289     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
6290     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
6291     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
6292     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
6293     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
6294     VkBool32           descriptorBindingUpdateUnusedWhilePending;
6295     VkBool32           descriptorBindingPartiallyBound;
6296     VkBool32           descriptorBindingVariableDescriptorCount;
6297     VkBool32           runtimeDescriptorArray;
6298 } VkPhysicalDeviceDescriptorIndexingFeatures;
6299 
6300 typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6301     VkStructureType    sType;
6302     void*              pNext;
6303     uint32_t           maxUpdateAfterBindDescriptorsInAllPools;
6304     VkBool32           shaderUniformBufferArrayNonUniformIndexingNative;
6305     VkBool32           shaderSampledImageArrayNonUniformIndexingNative;
6306     VkBool32           shaderStorageBufferArrayNonUniformIndexingNative;
6307     VkBool32           shaderStorageImageArrayNonUniformIndexingNative;
6308     VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative;
6309     VkBool32           robustBufferAccessUpdateAfterBind;
6310     VkBool32           quadDivergentImplicitLod;
6311     uint32_t           maxPerStageDescriptorUpdateAfterBindSamplers;
6312     uint32_t           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6313     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6314     uint32_t           maxPerStageDescriptorUpdateAfterBindSampledImages;
6315     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageImages;
6316     uint32_t           maxPerStageDescriptorUpdateAfterBindInputAttachments;
6317     uint32_t           maxPerStageUpdateAfterBindResources;
6318     uint32_t           maxDescriptorSetUpdateAfterBindSamplers;
6319     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffers;
6320     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6321     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffers;
6322     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6323     uint32_t           maxDescriptorSetUpdateAfterBindSampledImages;
6324     uint32_t           maxDescriptorSetUpdateAfterBindStorageImages;
6325     uint32_t           maxDescriptorSetUpdateAfterBindInputAttachments;
6326 } VkPhysicalDeviceDescriptorIndexingProperties;
6327 
6328 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6329     VkStructureType    sType;
6330     const void*        pNext;
6331     uint32_t           descriptorSetCount;
6332     const uint32_t*    pDescriptorCounts;
6333 } VkDescriptorSetVariableDescriptorCountAllocateInfo;
6334 
6335 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6336     VkStructureType    sType;
6337     void*              pNext;
6338     uint32_t           maxVariableDescriptorCount;
6339 } VkDescriptorSetVariableDescriptorCountLayoutSupport;
6340 
6341 typedef struct VkSubpassDescriptionDepthStencilResolve {
6342     VkStructureType                  sType;
6343     const void*                      pNext;
6344     VkResolveModeFlagBits            depthResolveMode;
6345     VkResolveModeFlagBits            stencilResolveMode;
6346     const VkAttachmentReference2*    pDepthStencilResolveAttachment;
6347 } VkSubpassDescriptionDepthStencilResolve;
6348 
6349 typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6350     VkStructureType       sType;
6351     void*                 pNext;
6352     VkResolveModeFlags    supportedDepthResolveModes;
6353     VkResolveModeFlags    supportedStencilResolveModes;
6354     VkBool32              independentResolveNone;
6355     VkBool32              independentResolve;
6356 } VkPhysicalDeviceDepthStencilResolveProperties;
6357 
6358 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
6359     VkStructureType    sType;
6360     void*              pNext;
6361     VkBool32           scalarBlockLayout;
6362 } VkPhysicalDeviceScalarBlockLayoutFeatures;
6363 
6364 typedef struct VkImageStencilUsageCreateInfo {
6365     VkStructureType      sType;
6366     const void*          pNext;
6367     VkImageUsageFlags    stencilUsage;
6368 } VkImageStencilUsageCreateInfo;
6369 
6370 typedef struct VkSamplerReductionModeCreateInfo {
6371     VkStructureType           sType;
6372     const void*               pNext;
6373     VkSamplerReductionMode    reductionMode;
6374 } VkSamplerReductionModeCreateInfo;
6375 
6376 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
6377     VkStructureType    sType;
6378     void*              pNext;
6379     VkBool32           filterMinmaxSingleComponentFormats;
6380     VkBool32           filterMinmaxImageComponentMapping;
6381 } VkPhysicalDeviceSamplerFilterMinmaxProperties;
6382 
6383 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
6384     VkStructureType    sType;
6385     void*              pNext;
6386     VkBool32           vulkanMemoryModel;
6387     VkBool32           vulkanMemoryModelDeviceScope;
6388     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
6389 } VkPhysicalDeviceVulkanMemoryModelFeatures;
6390 
6391 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
6392     VkStructureType    sType;
6393     void*              pNext;
6394     VkBool32           imagelessFramebuffer;
6395 } VkPhysicalDeviceImagelessFramebufferFeatures;
6396 
6397 typedef struct VkFramebufferAttachmentImageInfo {
6398     VkStructureType       sType;
6399     const void*           pNext;
6400     VkImageCreateFlags    flags;
6401     VkImageUsageFlags     usage;
6402     uint32_t              width;
6403     uint32_t              height;
6404     uint32_t              layerCount;
6405     uint32_t              viewFormatCount;
6406     const VkFormat*       pViewFormats;
6407 } VkFramebufferAttachmentImageInfo;
6408 
6409 typedef struct VkFramebufferAttachmentsCreateInfo {
6410     VkStructureType                            sType;
6411     const void*                                pNext;
6412     uint32_t                                   attachmentImageInfoCount;
6413     const VkFramebufferAttachmentImageInfo*    pAttachmentImageInfos;
6414 } VkFramebufferAttachmentsCreateInfo;
6415 
6416 typedef struct VkRenderPassAttachmentBeginInfo {
6417     VkStructureType       sType;
6418     const void*           pNext;
6419     uint32_t              attachmentCount;
6420     const VkImageView*    pAttachments;
6421 } VkRenderPassAttachmentBeginInfo;
6422 
6423 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
6424     VkStructureType    sType;
6425     void*              pNext;
6426     VkBool32           uniformBufferStandardLayout;
6427 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
6428 
6429 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6430     VkStructureType    sType;
6431     void*              pNext;
6432     VkBool32           shaderSubgroupExtendedTypes;
6433 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6434 
6435 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
6436     VkStructureType    sType;
6437     void*              pNext;
6438     VkBool32           separateDepthStencilLayouts;
6439 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
6440 
6441 typedef struct VkAttachmentReferenceStencilLayout {
6442     VkStructureType    sType;
6443     void*              pNext;
6444     VkImageLayout      stencilLayout;
6445 } VkAttachmentReferenceStencilLayout;
6446 
6447 typedef struct VkAttachmentDescriptionStencilLayout {
6448     VkStructureType    sType;
6449     void*              pNext;
6450     VkImageLayout      stencilInitialLayout;
6451     VkImageLayout      stencilFinalLayout;
6452 } VkAttachmentDescriptionStencilLayout;
6453 
6454 typedef struct VkPhysicalDeviceHostQueryResetFeatures {
6455     VkStructureType    sType;
6456     void*              pNext;
6457     VkBool32           hostQueryReset;
6458 } VkPhysicalDeviceHostQueryResetFeatures;
6459 
6460 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
6461     VkStructureType    sType;
6462     void*              pNext;
6463     VkBool32           timelineSemaphore;
6464 } VkPhysicalDeviceTimelineSemaphoreFeatures;
6465 
6466 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
6467     VkStructureType    sType;
6468     void*              pNext;
6469     uint64_t           maxTimelineSemaphoreValueDifference;
6470 } VkPhysicalDeviceTimelineSemaphoreProperties;
6471 
6472 typedef struct VkSemaphoreTypeCreateInfo {
6473     VkStructureType    sType;
6474     const void*        pNext;
6475     VkSemaphoreType    semaphoreType;
6476     uint64_t           initialValue;
6477 } VkSemaphoreTypeCreateInfo;
6478 
6479 typedef struct VkTimelineSemaphoreSubmitInfo {
6480     VkStructureType    sType;
6481     const void*        pNext;
6482     uint32_t           waitSemaphoreValueCount;
6483     const uint64_t*    pWaitSemaphoreValues;
6484     uint32_t           signalSemaphoreValueCount;
6485     const uint64_t*    pSignalSemaphoreValues;
6486 } VkTimelineSemaphoreSubmitInfo;
6487 
6488 typedef struct VkSemaphoreWaitInfo {
6489     VkStructureType         sType;
6490     const void*             pNext;
6491     VkSemaphoreWaitFlags    flags;
6492     uint32_t                semaphoreCount;
6493     const VkSemaphore*      pSemaphores;
6494     const uint64_t*         pValues;
6495 } VkSemaphoreWaitInfo;
6496 
6497 typedef struct VkSemaphoreSignalInfo {
6498     VkStructureType    sType;
6499     const void*        pNext;
6500     VkSemaphore        semaphore;
6501     uint64_t           value;
6502 } VkSemaphoreSignalInfo;
6503 
6504 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
6505     VkStructureType    sType;
6506     void*              pNext;
6507     VkBool32           bufferDeviceAddress;
6508     VkBool32           bufferDeviceAddressCaptureReplay;
6509     VkBool32           bufferDeviceAddressMultiDevice;
6510 } VkPhysicalDeviceBufferDeviceAddressFeatures;
6511 
6512 typedef struct VkBufferDeviceAddressInfo {
6513     VkStructureType    sType;
6514     const void*        pNext;
6515     VkBuffer           buffer;
6516 } VkBufferDeviceAddressInfo;
6517 
6518 typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
6519     VkStructureType    sType;
6520     const void*        pNext;
6521     uint64_t           opaqueCaptureAddress;
6522 } VkBufferOpaqueCaptureAddressCreateInfo;
6523 
6524 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
6525     VkStructureType    sType;
6526     const void*        pNext;
6527     uint64_t           opaqueCaptureAddress;
6528 } VkMemoryOpaqueCaptureAddressAllocateInfo;
6529 
6530 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
6531     VkStructureType    sType;
6532     const void*        pNext;
6533     VkDeviceMemory     memory;
6534 } VkDeviceMemoryOpaqueCaptureAddressInfo;
6535 
6536 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6537 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6538 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6539 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
6540 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
6541 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
6542 typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
6543 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
6544 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
6545 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
6546 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6547 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6548 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6549 
6550 #ifndef VK_NO_PROTOTYPES
6551 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
6552     VkCommandBuffer                             commandBuffer,
6553     VkBuffer                                    buffer,
6554     VkDeviceSize                                offset,
6555     VkBuffer                                    countBuffer,
6556     VkDeviceSize                                countBufferOffset,
6557     uint32_t                                    maxDrawCount,
6558     uint32_t                                    stride);
6559 
6560 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
6561     VkCommandBuffer                             commandBuffer,
6562     VkBuffer                                    buffer,
6563     VkDeviceSize                                offset,
6564     VkBuffer                                    countBuffer,
6565     VkDeviceSize                                countBufferOffset,
6566     uint32_t                                    maxDrawCount,
6567     uint32_t                                    stride);
6568 
6569 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
6570     VkDevice                                    device,
6571     const VkRenderPassCreateInfo2*              pCreateInfo,
6572     const VkAllocationCallbacks*                pAllocator,
6573     VkRenderPass*                               pRenderPass);
6574 
6575 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
6576     VkCommandBuffer                             commandBuffer,
6577     const VkRenderPassBeginInfo*                pRenderPassBegin,
6578     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
6579 
6580 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
6581     VkCommandBuffer                             commandBuffer,
6582     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
6583     const VkSubpassEndInfo*                     pSubpassEndInfo);
6584 
6585 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
6586     VkCommandBuffer                             commandBuffer,
6587     const VkSubpassEndInfo*                     pSubpassEndInfo);
6588 
6589 VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
6590     VkDevice                                    device,
6591     VkQueryPool                                 queryPool,
6592     uint32_t                                    firstQuery,
6593     uint32_t                                    queryCount);
6594 
6595 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
6596     VkDevice                                    device,
6597     VkSemaphore                                 semaphore,
6598     uint64_t*                                   pValue);
6599 
6600 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
6601     VkDevice                                    device,
6602     const VkSemaphoreWaitInfo*                  pWaitInfo,
6603     uint64_t                                    timeout);
6604 
6605 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
6606     VkDevice                                    device,
6607     const VkSemaphoreSignalInfo*                pSignalInfo);
6608 
6609 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
6610     VkDevice                                    device,
6611     const VkBufferDeviceAddressInfo*            pInfo);
6612 
6613 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
6614     VkDevice                                    device,
6615     const VkBufferDeviceAddressInfo*            pInfo);
6616 
6617 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
6618     VkDevice                                    device,
6619     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6620 #endif
6621 
6622 
6623 // VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
6624 #define VK_VERSION_1_3 1
6625 // Vulkan 1.3 version number
6626 #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
6627 
6628 typedef uint64_t VkFlags64;
6629 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
6630 
6631 typedef enum VkPipelineCreationFeedbackFlagBits {
6632     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
6633     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
6634     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
6635     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
6636     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
6637     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
6638     VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6639 } VkPipelineCreationFeedbackFlagBits;
6640 typedef VkFlags VkPipelineCreationFeedbackFlags;
6641 
6642 typedef enum VkToolPurposeFlagBits {
6643     VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
6644     VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
6645     VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
6646     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
6647     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
6648     VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
6649     VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
6650     VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
6651     VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
6652     VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
6653     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
6654     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
6655     VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6656 } VkToolPurposeFlagBits;
6657 typedef VkFlags VkToolPurposeFlags;
6658 typedef VkFlags VkPrivateDataSlotCreateFlags;
6659 typedef VkFlags64 VkPipelineStageFlags2;
6660 
6661 // Flag bits for VkPipelineStageFlagBits2
6662 typedef VkFlags64 VkPipelineStageFlagBits2;
6663 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
6664 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
6665 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
6666 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
6667 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
6668 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
6669 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
6670 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
6671 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
6672 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
6673 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
6674 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
6675 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
6676 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
6677 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
6678 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
6679 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
6680 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
6681 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
6682 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
6683 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
6684 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
6685 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
6686 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
6687 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
6688 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
6689 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
6690 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
6691 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
6692 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
6693 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
6694 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
6695 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
6696 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
6697 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
6698 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
6699 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
6700 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
6701 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
6702 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
6703 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
6704 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
6705 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
6706 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
6707 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
6708 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
6709 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
6710 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
6711 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
6712 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
6713 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
6714 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
6715 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
6716 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
6717 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
6718 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
6719 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
6720 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
6721 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
6722 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
6723 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
6724 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
6725 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
6726 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
6727 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
6728 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
6729 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
6730 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
6731 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
6732 // VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI is a deprecated alias
6733 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
6734 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
6735 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
6736 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
6737 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
6738 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
6739 
6740 typedef VkFlags64 VkAccessFlags2;
6741 
6742 // Flag bits for VkAccessFlagBits2
6743 typedef VkFlags64 VkAccessFlagBits2;
6744 static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
6745 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
6746 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
6747 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
6748 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
6749 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
6750 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
6751 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
6752 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
6753 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
6754 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
6755 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
6756 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
6757 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
6758 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
6759 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
6760 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
6761 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
6762 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
6763 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
6764 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
6765 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
6766 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
6767 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
6768 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
6769 static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
6770 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
6771 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
6772 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
6773 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
6774 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
6775 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
6776 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
6777 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
6778 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
6779 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
6780 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
6781 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
6782 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
6783 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
6784 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
6785 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
6786 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
6787 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
6788 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
6789 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
6790 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
6791 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
6792 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
6793 static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
6794 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
6795 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
6796 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
6797 static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
6798 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
6799 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
6800 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
6801 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
6802 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
6803 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
6804 static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
6805 static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
6806 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
6807 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
6808 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
6809 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
6810 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
6811 
6812 
6813 typedef enum VkSubmitFlagBits {
6814     VK_SUBMIT_PROTECTED_BIT = 0x00000001,
6815     VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
6816     VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6817 } VkSubmitFlagBits;
6818 typedef VkFlags VkSubmitFlags;
6819 
6820 typedef enum VkRenderingFlagBits {
6821     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
6822     VK_RENDERING_SUSPENDING_BIT = 0x00000002,
6823     VK_RENDERING_RESUMING_BIT = 0x00000004,
6824     VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
6825     VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010,
6826     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
6827     VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
6828     VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
6829     VK_RENDERING_CONTENTS_INLINE_BIT_EXT = VK_RENDERING_CONTENTS_INLINE_BIT_KHR,
6830     VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6831 } VkRenderingFlagBits;
6832 typedef VkFlags VkRenderingFlags;
6833 typedef VkFlags64 VkFormatFeatureFlags2;
6834 
6835 // Flag bits for VkFormatFeatureFlagBits2
6836 typedef VkFlags64 VkFormatFeatureFlagBits2;
6837 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
6838 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
6839 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
6840 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
6841 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
6842 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
6843 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
6844 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
6845 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
6846 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
6847 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
6848 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
6849 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
6850 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
6851 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
6852 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
6853 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
6854 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
6855 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
6856 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
6857 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
6858 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
6859 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
6860 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
6861 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
6862 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
6863 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
6864 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT = 0x400000000000ULL;
6865 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
6866 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
6867 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
6868 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
6869 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
6870 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
6871 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
6872 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
6873 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
6874 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
6875 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
6876 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
6877 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
6878 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
6879 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
6880 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
6881 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
6882 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
6883 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
6884 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
6885 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
6886 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
6887 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
6888 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
6889 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
6890 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
6891 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
6892 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
6893 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
6894 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
6895 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
6896 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
6897 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
6898 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
6899 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
6900 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
6901 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
6902 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
6903 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
6904 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
6905 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
6906 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
6907 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
6908 
6909 typedef struct VkPhysicalDeviceVulkan13Features {
6910     VkStructureType    sType;
6911     void*              pNext;
6912     VkBool32           robustImageAccess;
6913     VkBool32           inlineUniformBlock;
6914     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
6915     VkBool32           pipelineCreationCacheControl;
6916     VkBool32           privateData;
6917     VkBool32           shaderDemoteToHelperInvocation;
6918     VkBool32           shaderTerminateInvocation;
6919     VkBool32           subgroupSizeControl;
6920     VkBool32           computeFullSubgroups;
6921     VkBool32           synchronization2;
6922     VkBool32           textureCompressionASTC_HDR;
6923     VkBool32           shaderZeroInitializeWorkgroupMemory;
6924     VkBool32           dynamicRendering;
6925     VkBool32           shaderIntegerDotProduct;
6926     VkBool32           maintenance4;
6927 } VkPhysicalDeviceVulkan13Features;
6928 
6929 typedef struct VkPhysicalDeviceVulkan13Properties {
6930     VkStructureType       sType;
6931     void*                 pNext;
6932     uint32_t              minSubgroupSize;
6933     uint32_t              maxSubgroupSize;
6934     uint32_t              maxComputeWorkgroupSubgroups;
6935     VkShaderStageFlags    requiredSubgroupSizeStages;
6936     uint32_t              maxInlineUniformBlockSize;
6937     uint32_t              maxPerStageDescriptorInlineUniformBlocks;
6938     uint32_t              maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
6939     uint32_t              maxDescriptorSetInlineUniformBlocks;
6940     uint32_t              maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
6941     uint32_t              maxInlineUniformTotalSize;
6942     VkBool32              integerDotProduct8BitUnsignedAccelerated;
6943     VkBool32              integerDotProduct8BitSignedAccelerated;
6944     VkBool32              integerDotProduct8BitMixedSignednessAccelerated;
6945     VkBool32              integerDotProduct4x8BitPackedUnsignedAccelerated;
6946     VkBool32              integerDotProduct4x8BitPackedSignedAccelerated;
6947     VkBool32              integerDotProduct4x8BitPackedMixedSignednessAccelerated;
6948     VkBool32              integerDotProduct16BitUnsignedAccelerated;
6949     VkBool32              integerDotProduct16BitSignedAccelerated;
6950     VkBool32              integerDotProduct16BitMixedSignednessAccelerated;
6951     VkBool32              integerDotProduct32BitUnsignedAccelerated;
6952     VkBool32              integerDotProduct32BitSignedAccelerated;
6953     VkBool32              integerDotProduct32BitMixedSignednessAccelerated;
6954     VkBool32              integerDotProduct64BitUnsignedAccelerated;
6955     VkBool32              integerDotProduct64BitSignedAccelerated;
6956     VkBool32              integerDotProduct64BitMixedSignednessAccelerated;
6957     VkBool32              integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
6958     VkBool32              integerDotProductAccumulatingSaturating8BitSignedAccelerated;
6959     VkBool32              integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
6960     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
6961     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
6962     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
6963     VkBool32              integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
6964     VkBool32              integerDotProductAccumulatingSaturating16BitSignedAccelerated;
6965     VkBool32              integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
6966     VkBool32              integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
6967     VkBool32              integerDotProductAccumulatingSaturating32BitSignedAccelerated;
6968     VkBool32              integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
6969     VkBool32              integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
6970     VkBool32              integerDotProductAccumulatingSaturating64BitSignedAccelerated;
6971     VkBool32              integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
6972     VkDeviceSize          storageTexelBufferOffsetAlignmentBytes;
6973     VkBool32              storageTexelBufferOffsetSingleTexelAlignment;
6974     VkDeviceSize          uniformTexelBufferOffsetAlignmentBytes;
6975     VkBool32              uniformTexelBufferOffsetSingleTexelAlignment;
6976     VkDeviceSize          maxBufferSize;
6977 } VkPhysicalDeviceVulkan13Properties;
6978 
6979 typedef struct VkPipelineCreationFeedback {
6980     VkPipelineCreationFeedbackFlags    flags;
6981     uint64_t                           duration;
6982 } VkPipelineCreationFeedback;
6983 
6984 typedef struct VkPipelineCreationFeedbackCreateInfo {
6985     VkStructureType                sType;
6986     const void*                    pNext;
6987     VkPipelineCreationFeedback*    pPipelineCreationFeedback;
6988     uint32_t                       pipelineStageCreationFeedbackCount;
6989     VkPipelineCreationFeedback*    pPipelineStageCreationFeedbacks;
6990 } VkPipelineCreationFeedbackCreateInfo;
6991 
6992 typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
6993     VkStructureType    sType;
6994     void*              pNext;
6995     VkBool32           shaderTerminateInvocation;
6996 } VkPhysicalDeviceShaderTerminateInvocationFeatures;
6997 
6998 typedef struct VkPhysicalDeviceToolProperties {
6999     VkStructureType       sType;
7000     void*                 pNext;
7001     char                  name[VK_MAX_EXTENSION_NAME_SIZE];
7002     char                  version[VK_MAX_EXTENSION_NAME_SIZE];
7003     VkToolPurposeFlags    purposes;
7004     char                  description[VK_MAX_DESCRIPTION_SIZE];
7005     char                  layer[VK_MAX_EXTENSION_NAME_SIZE];
7006 } VkPhysicalDeviceToolProperties;
7007 
7008 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
7009     VkStructureType    sType;
7010     void*              pNext;
7011     VkBool32           shaderDemoteToHelperInvocation;
7012 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
7013 
7014 typedef struct VkPhysicalDevicePrivateDataFeatures {
7015     VkStructureType    sType;
7016     void*              pNext;
7017     VkBool32           privateData;
7018 } VkPhysicalDevicePrivateDataFeatures;
7019 
7020 typedef struct VkDevicePrivateDataCreateInfo {
7021     VkStructureType    sType;
7022     const void*        pNext;
7023     uint32_t           privateDataSlotRequestCount;
7024 } VkDevicePrivateDataCreateInfo;
7025 
7026 typedef struct VkPrivateDataSlotCreateInfo {
7027     VkStructureType                 sType;
7028     const void*                     pNext;
7029     VkPrivateDataSlotCreateFlags    flags;
7030 } VkPrivateDataSlotCreateInfo;
7031 
7032 typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
7033     VkStructureType    sType;
7034     void*              pNext;
7035     VkBool32           pipelineCreationCacheControl;
7036 } VkPhysicalDevicePipelineCreationCacheControlFeatures;
7037 
7038 typedef struct VkMemoryBarrier2 {
7039     VkStructureType          sType;
7040     const void*              pNext;
7041     VkPipelineStageFlags2    srcStageMask;
7042     VkAccessFlags2           srcAccessMask;
7043     VkPipelineStageFlags2    dstStageMask;
7044     VkAccessFlags2           dstAccessMask;
7045 } VkMemoryBarrier2;
7046 
7047 typedef struct VkBufferMemoryBarrier2 {
7048     VkStructureType          sType;
7049     const void*              pNext;
7050     VkPipelineStageFlags2    srcStageMask;
7051     VkAccessFlags2           srcAccessMask;
7052     VkPipelineStageFlags2    dstStageMask;
7053     VkAccessFlags2           dstAccessMask;
7054     uint32_t                 srcQueueFamilyIndex;
7055     uint32_t                 dstQueueFamilyIndex;
7056     VkBuffer                 buffer;
7057     VkDeviceSize             offset;
7058     VkDeviceSize             size;
7059 } VkBufferMemoryBarrier2;
7060 
7061 typedef struct VkImageMemoryBarrier2 {
7062     VkStructureType            sType;
7063     const void*                pNext;
7064     VkPipelineStageFlags2      srcStageMask;
7065     VkAccessFlags2             srcAccessMask;
7066     VkPipelineStageFlags2      dstStageMask;
7067     VkAccessFlags2             dstAccessMask;
7068     VkImageLayout              oldLayout;
7069     VkImageLayout              newLayout;
7070     uint32_t                   srcQueueFamilyIndex;
7071     uint32_t                   dstQueueFamilyIndex;
7072     VkImage                    image;
7073     VkImageSubresourceRange    subresourceRange;
7074 } VkImageMemoryBarrier2;
7075 
7076 typedef struct VkDependencyInfo {
7077     VkStructureType                  sType;
7078     const void*                      pNext;
7079     VkDependencyFlags                dependencyFlags;
7080     uint32_t                         memoryBarrierCount;
7081     const VkMemoryBarrier2*          pMemoryBarriers;
7082     uint32_t                         bufferMemoryBarrierCount;
7083     const VkBufferMemoryBarrier2*    pBufferMemoryBarriers;
7084     uint32_t                         imageMemoryBarrierCount;
7085     const VkImageMemoryBarrier2*     pImageMemoryBarriers;
7086 } VkDependencyInfo;
7087 
7088 typedef struct VkSemaphoreSubmitInfo {
7089     VkStructureType          sType;
7090     const void*              pNext;
7091     VkSemaphore              semaphore;
7092     uint64_t                 value;
7093     VkPipelineStageFlags2    stageMask;
7094     uint32_t                 deviceIndex;
7095 } VkSemaphoreSubmitInfo;
7096 
7097 typedef struct VkCommandBufferSubmitInfo {
7098     VkStructureType    sType;
7099     const void*        pNext;
7100     VkCommandBuffer    commandBuffer;
7101     uint32_t           deviceMask;
7102 } VkCommandBufferSubmitInfo;
7103 
7104 typedef struct VkSubmitInfo2 {
7105     VkStructureType                     sType;
7106     const void*                         pNext;
7107     VkSubmitFlags                       flags;
7108     uint32_t                            waitSemaphoreInfoCount;
7109     const VkSemaphoreSubmitInfo*        pWaitSemaphoreInfos;
7110     uint32_t                            commandBufferInfoCount;
7111     const VkCommandBufferSubmitInfo*    pCommandBufferInfos;
7112     uint32_t                            signalSemaphoreInfoCount;
7113     const VkSemaphoreSubmitInfo*        pSignalSemaphoreInfos;
7114 } VkSubmitInfo2;
7115 
7116 typedef struct VkPhysicalDeviceSynchronization2Features {
7117     VkStructureType    sType;
7118     void*              pNext;
7119     VkBool32           synchronization2;
7120 } VkPhysicalDeviceSynchronization2Features;
7121 
7122 typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
7123     VkStructureType    sType;
7124     void*              pNext;
7125     VkBool32           shaderZeroInitializeWorkgroupMemory;
7126 } VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
7127 
7128 typedef struct VkPhysicalDeviceImageRobustnessFeatures {
7129     VkStructureType    sType;
7130     void*              pNext;
7131     VkBool32           robustImageAccess;
7132 } VkPhysicalDeviceImageRobustnessFeatures;
7133 
7134 typedef struct VkBufferCopy2 {
7135     VkStructureType    sType;
7136     const void*        pNext;
7137     VkDeviceSize       srcOffset;
7138     VkDeviceSize       dstOffset;
7139     VkDeviceSize       size;
7140 } VkBufferCopy2;
7141 
7142 typedef struct VkCopyBufferInfo2 {
7143     VkStructureType         sType;
7144     const void*             pNext;
7145     VkBuffer                srcBuffer;
7146     VkBuffer                dstBuffer;
7147     uint32_t                regionCount;
7148     const VkBufferCopy2*    pRegions;
7149 } VkCopyBufferInfo2;
7150 
7151 typedef struct VkImageCopy2 {
7152     VkStructureType             sType;
7153     const void*                 pNext;
7154     VkImageSubresourceLayers    srcSubresource;
7155     VkOffset3D                  srcOffset;
7156     VkImageSubresourceLayers    dstSubresource;
7157     VkOffset3D                  dstOffset;
7158     VkExtent3D                  extent;
7159 } VkImageCopy2;
7160 
7161 typedef struct VkCopyImageInfo2 {
7162     VkStructureType        sType;
7163     const void*            pNext;
7164     VkImage                srcImage;
7165     VkImageLayout          srcImageLayout;
7166     VkImage                dstImage;
7167     VkImageLayout          dstImageLayout;
7168     uint32_t               regionCount;
7169     const VkImageCopy2*    pRegions;
7170 } VkCopyImageInfo2;
7171 
7172 typedef struct VkBufferImageCopy2 {
7173     VkStructureType             sType;
7174     const void*                 pNext;
7175     VkDeviceSize                bufferOffset;
7176     uint32_t                    bufferRowLength;
7177     uint32_t                    bufferImageHeight;
7178     VkImageSubresourceLayers    imageSubresource;
7179     VkOffset3D                  imageOffset;
7180     VkExtent3D                  imageExtent;
7181 } VkBufferImageCopy2;
7182 
7183 typedef struct VkCopyBufferToImageInfo2 {
7184     VkStructureType              sType;
7185     const void*                  pNext;
7186     VkBuffer                     srcBuffer;
7187     VkImage                      dstImage;
7188     VkImageLayout                dstImageLayout;
7189     uint32_t                     regionCount;
7190     const VkBufferImageCopy2*    pRegions;
7191 } VkCopyBufferToImageInfo2;
7192 
7193 typedef struct VkCopyImageToBufferInfo2 {
7194     VkStructureType              sType;
7195     const void*                  pNext;
7196     VkImage                      srcImage;
7197     VkImageLayout                srcImageLayout;
7198     VkBuffer                     dstBuffer;
7199     uint32_t                     regionCount;
7200     const VkBufferImageCopy2*    pRegions;
7201 } VkCopyImageToBufferInfo2;
7202 
7203 typedef struct VkImageBlit2 {
7204     VkStructureType             sType;
7205     const void*                 pNext;
7206     VkImageSubresourceLayers    srcSubresource;
7207     VkOffset3D                  srcOffsets[2];
7208     VkImageSubresourceLayers    dstSubresource;
7209     VkOffset3D                  dstOffsets[2];
7210 } VkImageBlit2;
7211 
7212 typedef struct VkBlitImageInfo2 {
7213     VkStructureType        sType;
7214     const void*            pNext;
7215     VkImage                srcImage;
7216     VkImageLayout          srcImageLayout;
7217     VkImage                dstImage;
7218     VkImageLayout          dstImageLayout;
7219     uint32_t               regionCount;
7220     const VkImageBlit2*    pRegions;
7221     VkFilter               filter;
7222 } VkBlitImageInfo2;
7223 
7224 typedef struct VkImageResolve2 {
7225     VkStructureType             sType;
7226     const void*                 pNext;
7227     VkImageSubresourceLayers    srcSubresource;
7228     VkOffset3D                  srcOffset;
7229     VkImageSubresourceLayers    dstSubresource;
7230     VkOffset3D                  dstOffset;
7231     VkExtent3D                  extent;
7232 } VkImageResolve2;
7233 
7234 typedef struct VkResolveImageInfo2 {
7235     VkStructureType           sType;
7236     const void*               pNext;
7237     VkImage                   srcImage;
7238     VkImageLayout             srcImageLayout;
7239     VkImage                   dstImage;
7240     VkImageLayout             dstImageLayout;
7241     uint32_t                  regionCount;
7242     const VkImageResolve2*    pRegions;
7243 } VkResolveImageInfo2;
7244 
7245 typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7246     VkStructureType    sType;
7247     void*              pNext;
7248     VkBool32           subgroupSizeControl;
7249     VkBool32           computeFullSubgroups;
7250 } VkPhysicalDeviceSubgroupSizeControlFeatures;
7251 
7252 typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7253     VkStructureType       sType;
7254     void*                 pNext;
7255     uint32_t              minSubgroupSize;
7256     uint32_t              maxSubgroupSize;
7257     uint32_t              maxComputeWorkgroupSubgroups;
7258     VkShaderStageFlags    requiredSubgroupSizeStages;
7259 } VkPhysicalDeviceSubgroupSizeControlProperties;
7260 
7261 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7262     VkStructureType    sType;
7263     void*              pNext;
7264     uint32_t           requiredSubgroupSize;
7265 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7266 
7267 typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7268     VkStructureType    sType;
7269     void*              pNext;
7270     VkBool32           inlineUniformBlock;
7271     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
7272 } VkPhysicalDeviceInlineUniformBlockFeatures;
7273 
7274 typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7275     VkStructureType    sType;
7276     void*              pNext;
7277     uint32_t           maxInlineUniformBlockSize;
7278     uint32_t           maxPerStageDescriptorInlineUniformBlocks;
7279     uint32_t           maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7280     uint32_t           maxDescriptorSetInlineUniformBlocks;
7281     uint32_t           maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7282 } VkPhysicalDeviceInlineUniformBlockProperties;
7283 
7284 typedef struct VkWriteDescriptorSetInlineUniformBlock {
7285     VkStructureType    sType;
7286     const void*        pNext;
7287     uint32_t           dataSize;
7288     const void*        pData;
7289 } VkWriteDescriptorSetInlineUniformBlock;
7290 
7291 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7292     VkStructureType    sType;
7293     const void*        pNext;
7294     uint32_t           maxInlineUniformBlockBindings;
7295 } VkDescriptorPoolInlineUniformBlockCreateInfo;
7296 
7297 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7298     VkStructureType    sType;
7299     void*              pNext;
7300     VkBool32           textureCompressionASTC_HDR;
7301 } VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7302 
7303 typedef struct VkRenderingAttachmentInfo {
7304     VkStructureType          sType;
7305     const void*              pNext;
7306     VkImageView              imageView;
7307     VkImageLayout            imageLayout;
7308     VkResolveModeFlagBits    resolveMode;
7309     VkImageView              resolveImageView;
7310     VkImageLayout            resolveImageLayout;
7311     VkAttachmentLoadOp       loadOp;
7312     VkAttachmentStoreOp      storeOp;
7313     VkClearValue             clearValue;
7314 } VkRenderingAttachmentInfo;
7315 
7316 typedef struct VkRenderingInfo {
7317     VkStructureType                     sType;
7318     const void*                         pNext;
7319     VkRenderingFlags                    flags;
7320     VkRect2D                            renderArea;
7321     uint32_t                            layerCount;
7322     uint32_t                            viewMask;
7323     uint32_t                            colorAttachmentCount;
7324     const VkRenderingAttachmentInfo*    pColorAttachments;
7325     const VkRenderingAttachmentInfo*    pDepthAttachment;
7326     const VkRenderingAttachmentInfo*    pStencilAttachment;
7327 } VkRenderingInfo;
7328 
7329 typedef struct VkPipelineRenderingCreateInfo {
7330     VkStructureType    sType;
7331     const void*        pNext;
7332     uint32_t           viewMask;
7333     uint32_t           colorAttachmentCount;
7334     const VkFormat*    pColorAttachmentFormats;
7335     VkFormat           depthAttachmentFormat;
7336     VkFormat           stencilAttachmentFormat;
7337 } VkPipelineRenderingCreateInfo;
7338 
7339 typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7340     VkStructureType    sType;
7341     void*              pNext;
7342     VkBool32           dynamicRendering;
7343 } VkPhysicalDeviceDynamicRenderingFeatures;
7344 
7345 typedef struct VkCommandBufferInheritanceRenderingInfo {
7346     VkStructureType          sType;
7347     const void*              pNext;
7348     VkRenderingFlags         flags;
7349     uint32_t                 viewMask;
7350     uint32_t                 colorAttachmentCount;
7351     const VkFormat*          pColorAttachmentFormats;
7352     VkFormat                 depthAttachmentFormat;
7353     VkFormat                 stencilAttachmentFormat;
7354     VkSampleCountFlagBits    rasterizationSamples;
7355 } VkCommandBufferInheritanceRenderingInfo;
7356 
7357 typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7358     VkStructureType    sType;
7359     void*              pNext;
7360     VkBool32           shaderIntegerDotProduct;
7361 } VkPhysicalDeviceShaderIntegerDotProductFeatures;
7362 
7363 typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
7364     VkStructureType    sType;
7365     void*              pNext;
7366     VkBool32           integerDotProduct8BitUnsignedAccelerated;
7367     VkBool32           integerDotProduct8BitSignedAccelerated;
7368     VkBool32           integerDotProduct8BitMixedSignednessAccelerated;
7369     VkBool32           integerDotProduct4x8BitPackedUnsignedAccelerated;
7370     VkBool32           integerDotProduct4x8BitPackedSignedAccelerated;
7371     VkBool32           integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7372     VkBool32           integerDotProduct16BitUnsignedAccelerated;
7373     VkBool32           integerDotProduct16BitSignedAccelerated;
7374     VkBool32           integerDotProduct16BitMixedSignednessAccelerated;
7375     VkBool32           integerDotProduct32BitUnsignedAccelerated;
7376     VkBool32           integerDotProduct32BitSignedAccelerated;
7377     VkBool32           integerDotProduct32BitMixedSignednessAccelerated;
7378     VkBool32           integerDotProduct64BitUnsignedAccelerated;
7379     VkBool32           integerDotProduct64BitSignedAccelerated;
7380     VkBool32           integerDotProduct64BitMixedSignednessAccelerated;
7381     VkBool32           integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7382     VkBool32           integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7383     VkBool32           integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7384     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7385     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7386     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7387     VkBool32           integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7388     VkBool32           integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7389     VkBool32           integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7390     VkBool32           integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7391     VkBool32           integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7392     VkBool32           integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7393     VkBool32           integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7394     VkBool32           integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7395     VkBool32           integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7396 } VkPhysicalDeviceShaderIntegerDotProductProperties;
7397 
7398 typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
7399     VkStructureType    sType;
7400     void*              pNext;
7401     VkDeviceSize       storageTexelBufferOffsetAlignmentBytes;
7402     VkBool32           storageTexelBufferOffsetSingleTexelAlignment;
7403     VkDeviceSize       uniformTexelBufferOffsetAlignmentBytes;
7404     VkBool32           uniformTexelBufferOffsetSingleTexelAlignment;
7405 } VkPhysicalDeviceTexelBufferAlignmentProperties;
7406 
7407 typedef struct VkFormatProperties3 {
7408     VkStructureType          sType;
7409     void*                    pNext;
7410     VkFormatFeatureFlags2    linearTilingFeatures;
7411     VkFormatFeatureFlags2    optimalTilingFeatures;
7412     VkFormatFeatureFlags2    bufferFeatures;
7413 } VkFormatProperties3;
7414 
7415 typedef struct VkPhysicalDeviceMaintenance4Features {
7416     VkStructureType    sType;
7417     void*              pNext;
7418     VkBool32           maintenance4;
7419 } VkPhysicalDeviceMaintenance4Features;
7420 
7421 typedef struct VkPhysicalDeviceMaintenance4Properties {
7422     VkStructureType    sType;
7423     void*              pNext;
7424     VkDeviceSize       maxBufferSize;
7425 } VkPhysicalDeviceMaintenance4Properties;
7426 
7427 typedef struct VkDeviceBufferMemoryRequirements {
7428     VkStructureType              sType;
7429     const void*                  pNext;
7430     const VkBufferCreateInfo*    pCreateInfo;
7431 } VkDeviceBufferMemoryRequirements;
7432 
7433 typedef struct VkDeviceImageMemoryRequirements {
7434     VkStructureType             sType;
7435     const void*                 pNext;
7436     const VkImageCreateInfo*    pCreateInfo;
7437     VkImageAspectFlagBits       planeAspect;
7438 } VkDeviceImageMemoryRequirements;
7439 
7440 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
7441 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
7442 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
7443 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
7444 typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
7445 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
7446 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
7447 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
7448 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
7449 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
7450 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
7451 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
7452 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
7453 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7454 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7455 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
7456 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
7457 typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
7458 typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer                   commandBuffer);
7459 typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
7460 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
7461 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
7462 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
7463 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
7464 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);
7465 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
7466 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
7467 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
7468 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
7469 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
7470 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
7471 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
7472 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
7473 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
7474 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7475 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7476 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7477 
7478 #ifndef VK_NO_PROTOTYPES
7479 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
7480     VkPhysicalDevice                            physicalDevice,
7481     uint32_t*                                   pToolCount,
7482     VkPhysicalDeviceToolProperties*             pToolProperties);
7483 
7484 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
7485     VkDevice                                    device,
7486     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
7487     const VkAllocationCallbacks*                pAllocator,
7488     VkPrivateDataSlot*                          pPrivateDataSlot);
7489 
7490 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
7491     VkDevice                                    device,
7492     VkPrivateDataSlot                           privateDataSlot,
7493     const VkAllocationCallbacks*                pAllocator);
7494 
7495 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
7496     VkDevice                                    device,
7497     VkObjectType                                objectType,
7498     uint64_t                                    objectHandle,
7499     VkPrivateDataSlot                           privateDataSlot,
7500     uint64_t                                    data);
7501 
7502 VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
7503     VkDevice                                    device,
7504     VkObjectType                                objectType,
7505     uint64_t                                    objectHandle,
7506     VkPrivateDataSlot                           privateDataSlot,
7507     uint64_t*                                   pData);
7508 
7509 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
7510     VkCommandBuffer                             commandBuffer,
7511     VkEvent                                     event,
7512     const VkDependencyInfo*                     pDependencyInfo);
7513 
7514 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
7515     VkCommandBuffer                             commandBuffer,
7516     VkEvent                                     event,
7517     VkPipelineStageFlags2                       stageMask);
7518 
7519 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
7520     VkCommandBuffer                             commandBuffer,
7521     uint32_t                                    eventCount,
7522     const VkEvent*                              pEvents,
7523     const VkDependencyInfo*                     pDependencyInfos);
7524 
7525 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
7526     VkCommandBuffer                             commandBuffer,
7527     const VkDependencyInfo*                     pDependencyInfo);
7528 
7529 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
7530     VkCommandBuffer                             commandBuffer,
7531     VkPipelineStageFlags2                       stage,
7532     VkQueryPool                                 queryPool,
7533     uint32_t                                    query);
7534 
7535 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
7536     VkQueue                                     queue,
7537     uint32_t                                    submitCount,
7538     const VkSubmitInfo2*                        pSubmits,
7539     VkFence                                     fence);
7540 
7541 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
7542     VkCommandBuffer                             commandBuffer,
7543     const VkCopyBufferInfo2*                    pCopyBufferInfo);
7544 
7545 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
7546     VkCommandBuffer                             commandBuffer,
7547     const VkCopyImageInfo2*                     pCopyImageInfo);
7548 
7549 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
7550     VkCommandBuffer                             commandBuffer,
7551     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
7552 
7553 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
7554     VkCommandBuffer                             commandBuffer,
7555     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
7556 
7557 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
7558     VkCommandBuffer                             commandBuffer,
7559     const VkBlitImageInfo2*                     pBlitImageInfo);
7560 
7561 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
7562     VkCommandBuffer                             commandBuffer,
7563     const VkResolveImageInfo2*                  pResolveImageInfo);
7564 
7565 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
7566     VkCommandBuffer                             commandBuffer,
7567     const VkRenderingInfo*                      pRenderingInfo);
7568 
7569 VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
7570     VkCommandBuffer                             commandBuffer);
7571 
7572 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
7573     VkCommandBuffer                             commandBuffer,
7574     VkCullModeFlags                             cullMode);
7575 
7576 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
7577     VkCommandBuffer                             commandBuffer,
7578     VkFrontFace                                 frontFace);
7579 
7580 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
7581     VkCommandBuffer                             commandBuffer,
7582     VkPrimitiveTopology                         primitiveTopology);
7583 
7584 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
7585     VkCommandBuffer                             commandBuffer,
7586     uint32_t                                    viewportCount,
7587     const VkViewport*                           pViewports);
7588 
7589 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
7590     VkCommandBuffer                             commandBuffer,
7591     uint32_t                                    scissorCount,
7592     const VkRect2D*                             pScissors);
7593 
7594 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
7595     VkCommandBuffer                             commandBuffer,
7596     uint32_t                                    firstBinding,
7597     uint32_t                                    bindingCount,
7598     const VkBuffer*                             pBuffers,
7599     const VkDeviceSize*                         pOffsets,
7600     const VkDeviceSize*                         pSizes,
7601     const VkDeviceSize*                         pStrides);
7602 
7603 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
7604     VkCommandBuffer                             commandBuffer,
7605     VkBool32                                    depthTestEnable);
7606 
7607 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
7608     VkCommandBuffer                             commandBuffer,
7609     VkBool32                                    depthWriteEnable);
7610 
7611 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
7612     VkCommandBuffer                             commandBuffer,
7613     VkCompareOp                                 depthCompareOp);
7614 
7615 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
7616     VkCommandBuffer                             commandBuffer,
7617     VkBool32                                    depthBoundsTestEnable);
7618 
7619 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
7620     VkCommandBuffer                             commandBuffer,
7621     VkBool32                                    stencilTestEnable);
7622 
7623 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
7624     VkCommandBuffer                             commandBuffer,
7625     VkStencilFaceFlags                          faceMask,
7626     VkStencilOp                                 failOp,
7627     VkStencilOp                                 passOp,
7628     VkStencilOp                                 depthFailOp,
7629     VkCompareOp                                 compareOp);
7630 
7631 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
7632     VkCommandBuffer                             commandBuffer,
7633     VkBool32                                    rasterizerDiscardEnable);
7634 
7635 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
7636     VkCommandBuffer                             commandBuffer,
7637     VkBool32                                    depthBiasEnable);
7638 
7639 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
7640     VkCommandBuffer                             commandBuffer,
7641     VkBool32                                    primitiveRestartEnable);
7642 
7643 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
7644     VkDevice                                    device,
7645     const VkDeviceBufferMemoryRequirements*     pInfo,
7646     VkMemoryRequirements2*                      pMemoryRequirements);
7647 
7648 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
7649     VkDevice                                    device,
7650     const VkDeviceImageMemoryRequirements*      pInfo,
7651     VkMemoryRequirements2*                      pMemoryRequirements);
7652 
7653 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
7654     VkDevice                                    device,
7655     const VkDeviceImageMemoryRequirements*      pInfo,
7656     uint32_t*                                   pSparseMemoryRequirementCount,
7657     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
7658 #endif
7659 
7660 
7661 // VK_VERSION_1_4 is a preprocessor guard. Do not pass it to API calls.
7662 #define VK_VERSION_1_4 1
7663 // Vulkan 1.4 version number
7664 #define VK_API_VERSION_1_4 VK_MAKE_API_VERSION(0, 1, 4, 0)// Patch version should always be set to 0
7665 
7666 #define VK_MAX_GLOBAL_PRIORITY_SIZE       16U
7667 
7668 typedef enum VkPipelineRobustnessBufferBehavior {
7669     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT = 0,
7670     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED = 1,
7671     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS = 2,
7672     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 = 3,
7673     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT,
7674     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
7675     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,
7676     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,
7677     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
7678 } VkPipelineRobustnessBufferBehavior;
7679 
7680 typedef enum VkPipelineRobustnessImageBehavior {
7681     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT = 0,
7682     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED = 1,
7683     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS = 2,
7684     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2 = 3,
7685     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT,
7686     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED,
7687     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS,
7688     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
7689     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
7690 } VkPipelineRobustnessImageBehavior;
7691 
7692 typedef enum VkQueueGlobalPriority {
7693     VK_QUEUE_GLOBAL_PRIORITY_LOW = 128,
7694     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM = 256,
7695     VK_QUEUE_GLOBAL_PRIORITY_HIGH = 512,
7696     VK_QUEUE_GLOBAL_PRIORITY_REALTIME = 1024,
7697     VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW,
7698     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
7699     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
7700     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
7701     VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = VK_QUEUE_GLOBAL_PRIORITY_LOW,
7702     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
7703     VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
7704     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
7705     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM = 0x7FFFFFFF
7706 } VkQueueGlobalPriority;
7707 
7708 typedef enum VkLineRasterizationMode {
7709     VK_LINE_RASTERIZATION_MODE_DEFAULT = 0,
7710     VK_LINE_RASTERIZATION_MODE_RECTANGULAR = 1,
7711     VK_LINE_RASTERIZATION_MODE_BRESENHAM = 2,
7712     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH = 3,
7713     VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT,
7714     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
7715     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
7716     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
7717     VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = VK_LINE_RASTERIZATION_MODE_DEFAULT,
7718     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
7719     VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
7720     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
7721     VK_LINE_RASTERIZATION_MODE_MAX_ENUM = 0x7FFFFFFF
7722 } VkLineRasterizationMode;
7723 
7724 typedef enum VkMemoryUnmapFlagBits {
7725     VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
7726     VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7727 } VkMemoryUnmapFlagBits;
7728 typedef VkFlags VkMemoryUnmapFlags;
7729 typedef VkFlags64 VkPipelineCreateFlags2;
7730 
7731 // Flag bits for VkPipelineCreateFlagBits2
7732 typedef VkFlags64 VkPipelineCreateFlagBits2;
7733 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT = 0x00000001ULL;
7734 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT = 0x00000002ULL;
7735 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT = 0x00000004ULL;
7736 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008ULL;
7737 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT = 0x00000010ULL;
7738 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100ULL;
7739 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200ULL;
7740 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL;
7741 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
7742 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
7743 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
7744 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
7745 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
7746 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
7747 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
7748 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
7749 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
7750 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
7751 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
7752 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
7753 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
7754 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
7755 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
7756 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
7757 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
7758 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
7759 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
7760 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
7761 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
7762 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
7763 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
7764 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
7765 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
7766 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
7767 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
7768 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
7769 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
7770 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
7771 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
7772 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
7773 
7774 typedef VkFlags64 VkBufferUsageFlags2;
7775 
7776 // Flag bits for VkBufferUsageFlagBits2
7777 typedef VkFlags64 VkBufferUsageFlagBits2;
7778 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT = 0x00000001ULL;
7779 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT = 0x00000002ULL;
7780 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004ULL;
7781 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000008ULL;
7782 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT = 0x00000010ULL;
7783 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT = 0x00000020ULL;
7784 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT = 0x00000040ULL;
7785 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT = 0x00000080ULL;
7786 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT = 0x00000100ULL;
7787 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT = 0x00020000ULL;
7788 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
7789 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
7790 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
7791 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
7792 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
7793 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
7794 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
7795 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
7796 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
7797 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
7798 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
7799 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
7800 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
7801 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
7802 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
7803 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
7804 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
7805 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
7806 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
7807 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
7808 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
7809 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
7810 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
7811 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
7812 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
7813 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
7814 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
7815 
7816 
7817 typedef enum VkHostImageCopyFlagBits {
7818     VK_HOST_IMAGE_COPY_MEMCPY = 0x00000001,
7819     VK_HOST_IMAGE_COPY_MEMCPY_EXT = VK_HOST_IMAGE_COPY_MEMCPY,
7820     VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7821 } VkHostImageCopyFlagBits;
7822 typedef VkFlags VkHostImageCopyFlags;
7823 typedef struct VkPhysicalDeviceVulkan14Features {
7824     VkStructureType    sType;
7825     void*              pNext;
7826     VkBool32           globalPriorityQuery;
7827     VkBool32           shaderSubgroupRotate;
7828     VkBool32           shaderSubgroupRotateClustered;
7829     VkBool32           shaderFloatControls2;
7830     VkBool32           shaderExpectAssume;
7831     VkBool32           rectangularLines;
7832     VkBool32           bresenhamLines;
7833     VkBool32           smoothLines;
7834     VkBool32           stippledRectangularLines;
7835     VkBool32           stippledBresenhamLines;
7836     VkBool32           stippledSmoothLines;
7837     VkBool32           vertexAttributeInstanceRateDivisor;
7838     VkBool32           vertexAttributeInstanceRateZeroDivisor;
7839     VkBool32           indexTypeUint8;
7840     VkBool32           dynamicRenderingLocalRead;
7841     VkBool32           maintenance5;
7842     VkBool32           maintenance6;
7843     VkBool32           pipelineProtectedAccess;
7844     VkBool32           pipelineRobustness;
7845     VkBool32           hostImageCopy;
7846 } VkPhysicalDeviceVulkan14Features;
7847 
7848 typedef struct VkPhysicalDeviceVulkan14Properties {
7849     VkStructureType                       sType;
7850     void*                                 pNext;
7851     uint32_t                              lineSubPixelPrecisionBits;
7852     uint32_t                              maxVertexAttribDivisor;
7853     VkBool32                              supportsNonZeroFirstInstance;
7854     uint32_t                              maxPushDescriptors;
7855     VkBool32                              dynamicRenderingLocalReadDepthStencilAttachments;
7856     VkBool32                              dynamicRenderingLocalReadMultisampledAttachments;
7857     VkBool32                              earlyFragmentMultisampleCoverageAfterSampleCounting;
7858     VkBool32                              earlyFragmentSampleMaskTestBeforeSampleCounting;
7859     VkBool32                              depthStencilSwizzleOneSupport;
7860     VkBool32                              polygonModePointSize;
7861     VkBool32                              nonStrictSinglePixelWideLinesUseParallelogram;
7862     VkBool32                              nonStrictWideLinesUseParallelogram;
7863     VkBool32                              blockTexelViewCompatibleMultipleLayers;
7864     uint32_t                              maxCombinedImageSamplerDescriptorCount;
7865     VkBool32                              fragmentShadingRateClampCombinerInputs;
7866     VkPipelineRobustnessBufferBehavior    defaultRobustnessStorageBuffers;
7867     VkPipelineRobustnessBufferBehavior    defaultRobustnessUniformBuffers;
7868     VkPipelineRobustnessBufferBehavior    defaultRobustnessVertexInputs;
7869     VkPipelineRobustnessImageBehavior     defaultRobustnessImages;
7870     uint32_t                              copySrcLayoutCount;
7871     VkImageLayout*                        pCopySrcLayouts;
7872     uint32_t                              copyDstLayoutCount;
7873     VkImageLayout*                        pCopyDstLayouts;
7874     uint8_t                               optimalTilingLayoutUUID[VK_UUID_SIZE];
7875     VkBool32                              identicalMemoryTypeRequirements;
7876 } VkPhysicalDeviceVulkan14Properties;
7877 
7878 typedef struct VkDeviceQueueGlobalPriorityCreateInfo {
7879     VkStructureType          sType;
7880     const void*              pNext;
7881     VkQueueGlobalPriority    globalPriority;
7882 } VkDeviceQueueGlobalPriorityCreateInfo;
7883 
7884 typedef struct VkPhysicalDeviceGlobalPriorityQueryFeatures {
7885     VkStructureType    sType;
7886     void*              pNext;
7887     VkBool32           globalPriorityQuery;
7888 } VkPhysicalDeviceGlobalPriorityQueryFeatures;
7889 
7890 typedef struct VkQueueFamilyGlobalPriorityProperties {
7891     VkStructureType          sType;
7892     void*                    pNext;
7893     uint32_t                 priorityCount;
7894     VkQueueGlobalPriority    priorities[VK_MAX_GLOBAL_PRIORITY_SIZE];
7895 } VkQueueFamilyGlobalPriorityProperties;
7896 
7897 typedef struct VkPhysicalDeviceShaderSubgroupRotateFeatures {
7898     VkStructureType    sType;
7899     void*              pNext;
7900     VkBool32           shaderSubgroupRotate;
7901     VkBool32           shaderSubgroupRotateClustered;
7902 } VkPhysicalDeviceShaderSubgroupRotateFeatures;
7903 
7904 typedef struct VkPhysicalDeviceShaderFloatControls2Features {
7905     VkStructureType    sType;
7906     void*              pNext;
7907     VkBool32           shaderFloatControls2;
7908 } VkPhysicalDeviceShaderFloatControls2Features;
7909 
7910 typedef struct VkPhysicalDeviceShaderExpectAssumeFeatures {
7911     VkStructureType    sType;
7912     void*              pNext;
7913     VkBool32           shaderExpectAssume;
7914 } VkPhysicalDeviceShaderExpectAssumeFeatures;
7915 
7916 typedef struct VkPhysicalDeviceLineRasterizationFeatures {
7917     VkStructureType    sType;
7918     void*              pNext;
7919     VkBool32           rectangularLines;
7920     VkBool32           bresenhamLines;
7921     VkBool32           smoothLines;
7922     VkBool32           stippledRectangularLines;
7923     VkBool32           stippledBresenhamLines;
7924     VkBool32           stippledSmoothLines;
7925 } VkPhysicalDeviceLineRasterizationFeatures;
7926 
7927 typedef struct VkPhysicalDeviceLineRasterizationProperties {
7928     VkStructureType    sType;
7929     void*              pNext;
7930     uint32_t           lineSubPixelPrecisionBits;
7931 } VkPhysicalDeviceLineRasterizationProperties;
7932 
7933 typedef struct VkPipelineRasterizationLineStateCreateInfo {
7934     VkStructureType            sType;
7935     const void*                pNext;
7936     VkLineRasterizationMode    lineRasterizationMode;
7937     VkBool32                   stippledLineEnable;
7938     uint32_t                   lineStippleFactor;
7939     uint16_t                   lineStipplePattern;
7940 } VkPipelineRasterizationLineStateCreateInfo;
7941 
7942 typedef struct VkPhysicalDeviceVertexAttributeDivisorProperties {
7943     VkStructureType    sType;
7944     void*              pNext;
7945     uint32_t           maxVertexAttribDivisor;
7946     VkBool32           supportsNonZeroFirstInstance;
7947 } VkPhysicalDeviceVertexAttributeDivisorProperties;
7948 
7949 typedef struct VkVertexInputBindingDivisorDescription {
7950     uint32_t    binding;
7951     uint32_t    divisor;
7952 } VkVertexInputBindingDivisorDescription;
7953 
7954 typedef struct VkPipelineVertexInputDivisorStateCreateInfo {
7955     VkStructureType                                  sType;
7956     const void*                                      pNext;
7957     uint32_t                                         vertexBindingDivisorCount;
7958     const VkVertexInputBindingDivisorDescription*    pVertexBindingDivisors;
7959 } VkPipelineVertexInputDivisorStateCreateInfo;
7960 
7961 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeatures {
7962     VkStructureType    sType;
7963     void*              pNext;
7964     VkBool32           vertexAttributeInstanceRateDivisor;
7965     VkBool32           vertexAttributeInstanceRateZeroDivisor;
7966 } VkPhysicalDeviceVertexAttributeDivisorFeatures;
7967 
7968 typedef struct VkPhysicalDeviceIndexTypeUint8Features {
7969     VkStructureType    sType;
7970     void*              pNext;
7971     VkBool32           indexTypeUint8;
7972 } VkPhysicalDeviceIndexTypeUint8Features;
7973 
7974 typedef struct VkMemoryMapInfo {
7975     VkStructureType     sType;
7976     const void*         pNext;
7977     VkMemoryMapFlags    flags;
7978     VkDeviceMemory      memory;
7979     VkDeviceSize        offset;
7980     VkDeviceSize        size;
7981 } VkMemoryMapInfo;
7982 
7983 typedef struct VkMemoryUnmapInfo {
7984     VkStructureType       sType;
7985     const void*           pNext;
7986     VkMemoryUnmapFlags    flags;
7987     VkDeviceMemory        memory;
7988 } VkMemoryUnmapInfo;
7989 
7990 typedef struct VkPhysicalDeviceMaintenance5Features {
7991     VkStructureType    sType;
7992     void*              pNext;
7993     VkBool32           maintenance5;
7994 } VkPhysicalDeviceMaintenance5Features;
7995 
7996 typedef struct VkPhysicalDeviceMaintenance5Properties {
7997     VkStructureType    sType;
7998     void*              pNext;
7999     VkBool32           earlyFragmentMultisampleCoverageAfterSampleCounting;
8000     VkBool32           earlyFragmentSampleMaskTestBeforeSampleCounting;
8001     VkBool32           depthStencilSwizzleOneSupport;
8002     VkBool32           polygonModePointSize;
8003     VkBool32           nonStrictSinglePixelWideLinesUseParallelogram;
8004     VkBool32           nonStrictWideLinesUseParallelogram;
8005 } VkPhysicalDeviceMaintenance5Properties;
8006 
8007 typedef struct VkRenderingAreaInfo {
8008     VkStructureType    sType;
8009     const void*        pNext;
8010     uint32_t           viewMask;
8011     uint32_t           colorAttachmentCount;
8012     const VkFormat*    pColorAttachmentFormats;
8013     VkFormat           depthAttachmentFormat;
8014     VkFormat           stencilAttachmentFormat;
8015 } VkRenderingAreaInfo;
8016 
8017 typedef struct VkImageSubresource2 {
8018     VkStructureType       sType;
8019     void*                 pNext;
8020     VkImageSubresource    imageSubresource;
8021 } VkImageSubresource2;
8022 
8023 typedef struct VkDeviceImageSubresourceInfo {
8024     VkStructureType               sType;
8025     const void*                   pNext;
8026     const VkImageCreateInfo*      pCreateInfo;
8027     const VkImageSubresource2*    pSubresource;
8028 } VkDeviceImageSubresourceInfo;
8029 
8030 typedef struct VkSubresourceLayout2 {
8031     VkStructureType        sType;
8032     void*                  pNext;
8033     VkSubresourceLayout    subresourceLayout;
8034 } VkSubresourceLayout2;
8035 
8036 typedef struct VkPipelineCreateFlags2CreateInfo {
8037     VkStructureType           sType;
8038     const void*               pNext;
8039     VkPipelineCreateFlags2    flags;
8040 } VkPipelineCreateFlags2CreateInfo;
8041 
8042 typedef struct VkBufferUsageFlags2CreateInfo {
8043     VkStructureType        sType;
8044     const void*            pNext;
8045     VkBufferUsageFlags2    usage;
8046 } VkBufferUsageFlags2CreateInfo;
8047 
8048 typedef struct VkPhysicalDevicePushDescriptorProperties {
8049     VkStructureType    sType;
8050     void*              pNext;
8051     uint32_t           maxPushDescriptors;
8052 } VkPhysicalDevicePushDescriptorProperties;
8053 
8054 typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeatures {
8055     VkStructureType    sType;
8056     void*              pNext;
8057     VkBool32           dynamicRenderingLocalRead;
8058 } VkPhysicalDeviceDynamicRenderingLocalReadFeatures;
8059 
8060 typedef struct VkRenderingAttachmentLocationInfo {
8061     VkStructureType    sType;
8062     const void*        pNext;
8063     uint32_t           colorAttachmentCount;
8064     const uint32_t*    pColorAttachmentLocations;
8065 } VkRenderingAttachmentLocationInfo;
8066 
8067 typedef struct VkRenderingInputAttachmentIndexInfo {
8068     VkStructureType    sType;
8069     const void*        pNext;
8070     uint32_t           colorAttachmentCount;
8071     const uint32_t*    pColorAttachmentInputIndices;
8072     const uint32_t*    pDepthInputAttachmentIndex;
8073     const uint32_t*    pStencilInputAttachmentIndex;
8074 } VkRenderingInputAttachmentIndexInfo;
8075 
8076 typedef struct VkPhysicalDeviceMaintenance6Features {
8077     VkStructureType    sType;
8078     void*              pNext;
8079     VkBool32           maintenance6;
8080 } VkPhysicalDeviceMaintenance6Features;
8081 
8082 typedef struct VkPhysicalDeviceMaintenance6Properties {
8083     VkStructureType    sType;
8084     void*              pNext;
8085     VkBool32           blockTexelViewCompatibleMultipleLayers;
8086     uint32_t           maxCombinedImageSamplerDescriptorCount;
8087     VkBool32           fragmentShadingRateClampCombinerInputs;
8088 } VkPhysicalDeviceMaintenance6Properties;
8089 
8090 typedef struct VkBindMemoryStatus {
8091     VkStructureType    sType;
8092     const void*        pNext;
8093     VkResult*          pResult;
8094 } VkBindMemoryStatus;
8095 
8096 typedef struct VkBindDescriptorSetsInfo {
8097     VkStructureType           sType;
8098     const void*               pNext;
8099     VkShaderStageFlags        stageFlags;
8100     VkPipelineLayout          layout;
8101     uint32_t                  firstSet;
8102     uint32_t                  descriptorSetCount;
8103     const VkDescriptorSet*    pDescriptorSets;
8104     uint32_t                  dynamicOffsetCount;
8105     const uint32_t*           pDynamicOffsets;
8106 } VkBindDescriptorSetsInfo;
8107 
8108 typedef struct VkPushConstantsInfo {
8109     VkStructureType       sType;
8110     const void*           pNext;
8111     VkPipelineLayout      layout;
8112     VkShaderStageFlags    stageFlags;
8113     uint32_t              offset;
8114     uint32_t              size;
8115     const void*           pValues;
8116 } VkPushConstantsInfo;
8117 
8118 typedef struct VkPushDescriptorSetInfo {
8119     VkStructureType                sType;
8120     const void*                    pNext;
8121     VkShaderStageFlags             stageFlags;
8122     VkPipelineLayout               layout;
8123     uint32_t                       set;
8124     uint32_t                       descriptorWriteCount;
8125     const VkWriteDescriptorSet*    pDescriptorWrites;
8126 } VkPushDescriptorSetInfo;
8127 
8128 typedef struct VkPushDescriptorSetWithTemplateInfo {
8129     VkStructureType               sType;
8130     const void*                   pNext;
8131     VkDescriptorUpdateTemplate    descriptorUpdateTemplate;
8132     VkPipelineLayout              layout;
8133     uint32_t                      set;
8134     const void*                   pData;
8135 } VkPushDescriptorSetWithTemplateInfo;
8136 
8137 typedef struct VkPhysicalDevicePipelineProtectedAccessFeatures {
8138     VkStructureType    sType;
8139     void*              pNext;
8140     VkBool32           pipelineProtectedAccess;
8141 } VkPhysicalDevicePipelineProtectedAccessFeatures;
8142 
8143 typedef struct VkPhysicalDevicePipelineRobustnessFeatures {
8144     VkStructureType    sType;
8145     void*              pNext;
8146     VkBool32           pipelineRobustness;
8147 } VkPhysicalDevicePipelineRobustnessFeatures;
8148 
8149 typedef struct VkPhysicalDevicePipelineRobustnessProperties {
8150     VkStructureType                       sType;
8151     void*                                 pNext;
8152     VkPipelineRobustnessBufferBehavior    defaultRobustnessStorageBuffers;
8153     VkPipelineRobustnessBufferBehavior    defaultRobustnessUniformBuffers;
8154     VkPipelineRobustnessBufferBehavior    defaultRobustnessVertexInputs;
8155     VkPipelineRobustnessImageBehavior     defaultRobustnessImages;
8156 } VkPhysicalDevicePipelineRobustnessProperties;
8157 
8158 typedef struct VkPipelineRobustnessCreateInfo {
8159     VkStructureType                       sType;
8160     const void*                           pNext;
8161     VkPipelineRobustnessBufferBehavior    storageBuffers;
8162     VkPipelineRobustnessBufferBehavior    uniformBuffers;
8163     VkPipelineRobustnessBufferBehavior    vertexInputs;
8164     VkPipelineRobustnessImageBehavior     images;
8165 } VkPipelineRobustnessCreateInfo;
8166 
8167 typedef struct VkPhysicalDeviceHostImageCopyFeatures {
8168     VkStructureType    sType;
8169     void*              pNext;
8170     VkBool32           hostImageCopy;
8171 } VkPhysicalDeviceHostImageCopyFeatures;
8172 
8173 typedef struct VkPhysicalDeviceHostImageCopyProperties {
8174     VkStructureType    sType;
8175     void*              pNext;
8176     uint32_t           copySrcLayoutCount;
8177     VkImageLayout*     pCopySrcLayouts;
8178     uint32_t           copyDstLayoutCount;
8179     VkImageLayout*     pCopyDstLayouts;
8180     uint8_t            optimalTilingLayoutUUID[VK_UUID_SIZE];
8181     VkBool32           identicalMemoryTypeRequirements;
8182 } VkPhysicalDeviceHostImageCopyProperties;
8183 
8184 typedef struct VkMemoryToImageCopy {
8185     VkStructureType             sType;
8186     const void*                 pNext;
8187     const void*                 pHostPointer;
8188     uint32_t                    memoryRowLength;
8189     uint32_t                    memoryImageHeight;
8190     VkImageSubresourceLayers    imageSubresource;
8191     VkOffset3D                  imageOffset;
8192     VkExtent3D                  imageExtent;
8193 } VkMemoryToImageCopy;
8194 
8195 typedef struct VkImageToMemoryCopy {
8196     VkStructureType             sType;
8197     const void*                 pNext;
8198     void*                       pHostPointer;
8199     uint32_t                    memoryRowLength;
8200     uint32_t                    memoryImageHeight;
8201     VkImageSubresourceLayers    imageSubresource;
8202     VkOffset3D                  imageOffset;
8203     VkExtent3D                  imageExtent;
8204 } VkImageToMemoryCopy;
8205 
8206 typedef struct VkCopyMemoryToImageInfo {
8207     VkStructureType               sType;
8208     const void*                   pNext;
8209     VkHostImageCopyFlags          flags;
8210     VkImage                       dstImage;
8211     VkImageLayout                 dstImageLayout;
8212     uint32_t                      regionCount;
8213     const VkMemoryToImageCopy*    pRegions;
8214 } VkCopyMemoryToImageInfo;
8215 
8216 typedef struct VkCopyImageToMemoryInfo {
8217     VkStructureType               sType;
8218     const void*                   pNext;
8219     VkHostImageCopyFlags          flags;
8220     VkImage                       srcImage;
8221     VkImageLayout                 srcImageLayout;
8222     uint32_t                      regionCount;
8223     const VkImageToMemoryCopy*    pRegions;
8224 } VkCopyImageToMemoryInfo;
8225 
8226 typedef struct VkCopyImageToImageInfo {
8227     VkStructureType         sType;
8228     const void*             pNext;
8229     VkHostImageCopyFlags    flags;
8230     VkImage                 srcImage;
8231     VkImageLayout           srcImageLayout;
8232     VkImage                 dstImage;
8233     VkImageLayout           dstImageLayout;
8234     uint32_t                regionCount;
8235     const VkImageCopy2*     pRegions;
8236 } VkCopyImageToImageInfo;
8237 
8238 typedef struct VkHostImageLayoutTransitionInfo {
8239     VkStructureType            sType;
8240     const void*                pNext;
8241     VkImage                    image;
8242     VkImageLayout              oldLayout;
8243     VkImageLayout              newLayout;
8244     VkImageSubresourceRange    subresourceRange;
8245 } VkHostImageLayoutTransitionInfo;
8246 
8247 typedef struct VkSubresourceHostMemcpySize {
8248     VkStructureType    sType;
8249     void*              pNext;
8250     VkDeviceSize       size;
8251 } VkSubresourceHostMemcpySize;
8252 
8253 typedef struct VkHostImageCopyDevicePerformanceQuery {
8254     VkStructureType    sType;
8255     void*              pNext;
8256     VkBool32           optimalDeviceAccess;
8257     VkBool32           identicalMemoryLayout;
8258 } VkHostImageCopyDevicePerformanceQuery;
8259 
8260 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStipple)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
8261 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
8262 typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8263 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
8264 typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularity)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
8265 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayout)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
8266 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
8267 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
8268 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
8269 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocations)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
8270 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndices)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8271 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo*   pBindDescriptorSetsInfo);
8272 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo*        pPushConstantsInfo);
8273 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo*    pPushDescriptorSetInfo);
8274 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8275 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImage)(VkDevice device, const VkCopyMemoryToImageInfo*    pCopyMemoryToImageInfo);
8276 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemory)(VkDevice device, const VkCopyImageToMemoryInfo*    pCopyImageToMemoryInfo);
8277 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImage)(VkDevice device, const VkCopyImageToImageInfo*    pCopyImageToImageInfo);
8278 typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayout)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo*    pTransitions);
8279 
8280 #ifndef VK_NO_PROTOTYPES
8281 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStipple(
8282     VkCommandBuffer                             commandBuffer,
8283     uint32_t                                    lineStippleFactor,
8284     uint16_t                                    lineStipplePattern);
8285 
8286 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2(
8287     VkDevice                                    device,
8288     const VkMemoryMapInfo*                      pMemoryMapInfo,
8289     void**                                      ppData);
8290 
8291 VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2(
8292     VkDevice                                    device,
8293     const VkMemoryUnmapInfo*                    pMemoryUnmapInfo);
8294 
8295 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2(
8296     VkCommandBuffer                             commandBuffer,
8297     VkBuffer                                    buffer,
8298     VkDeviceSize                                offset,
8299     VkDeviceSize                                size,
8300     VkIndexType                                 indexType);
8301 
8302 VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularity(
8303     VkDevice                                    device,
8304     const VkRenderingAreaInfo*                  pRenderingAreaInfo,
8305     VkExtent2D*                                 pGranularity);
8306 
8307 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayout(
8308     VkDevice                                    device,
8309     const VkDeviceImageSubresourceInfo*         pInfo,
8310     VkSubresourceLayout2*                       pLayout);
8311 
8312 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2(
8313     VkDevice                                    device,
8314     VkImage                                     image,
8315     const VkImageSubresource2*                  pSubresource,
8316     VkSubresourceLayout2*                       pLayout);
8317 
8318 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet(
8319     VkCommandBuffer                             commandBuffer,
8320     VkPipelineBindPoint                         pipelineBindPoint,
8321     VkPipelineLayout                            layout,
8322     uint32_t                                    set,
8323     uint32_t                                    descriptorWriteCount,
8324     const VkWriteDescriptorSet*                 pDescriptorWrites);
8325 
8326 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate(
8327     VkCommandBuffer                             commandBuffer,
8328     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
8329     VkPipelineLayout                            layout,
8330     uint32_t                                    set,
8331     const void*                                 pData);
8332 
8333 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocations(
8334     VkCommandBuffer                             commandBuffer,
8335     const VkRenderingAttachmentLocationInfo*    pLocationInfo);
8336 
8337 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndices(
8338     VkCommandBuffer                             commandBuffer,
8339     const VkRenderingInputAttachmentIndexInfo*  pInputAttachmentIndexInfo);
8340 
8341 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2(
8342     VkCommandBuffer                             commandBuffer,
8343     const VkBindDescriptorSetsInfo*             pBindDescriptorSetsInfo);
8344 
8345 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2(
8346     VkCommandBuffer                             commandBuffer,
8347     const VkPushConstantsInfo*                  pPushConstantsInfo);
8348 
8349 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2(
8350     VkCommandBuffer                             commandBuffer,
8351     const VkPushDescriptorSetInfo*              pPushDescriptorSetInfo);
8352 
8353 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2(
8354     VkCommandBuffer                             commandBuffer,
8355     const VkPushDescriptorSetWithTemplateInfo*  pPushDescriptorSetWithTemplateInfo);
8356 
8357 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImage(
8358     VkDevice                                    device,
8359     const VkCopyMemoryToImageInfo*              pCopyMemoryToImageInfo);
8360 
8361 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemory(
8362     VkDevice                                    device,
8363     const VkCopyImageToMemoryInfo*              pCopyImageToMemoryInfo);
8364 
8365 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImage(
8366     VkDevice                                    device,
8367     const VkCopyImageToImageInfo*               pCopyImageToImageInfo);
8368 
8369 VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayout(
8370     VkDevice                                    device,
8371     uint32_t                                    transitionCount,
8372     const VkHostImageLayoutTransitionInfo*      pTransitions);
8373 #endif
8374 
8375 
8376 // VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
8377 #define VK_KHR_surface 1
8378 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
8379 #define VK_KHR_SURFACE_SPEC_VERSION       25
8380 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
8381 
8382 typedef enum VkPresentModeKHR {
8383     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
8384     VK_PRESENT_MODE_MAILBOX_KHR = 1,
8385     VK_PRESENT_MODE_FIFO_KHR = 2,
8386     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
8387     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
8388     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
8389     VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
8390 } VkPresentModeKHR;
8391 
8392 typedef enum VkColorSpaceKHR {
8393     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
8394     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
8395     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
8396     VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
8397     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
8398     VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
8399     VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
8400     VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
8401     VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
8402     VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
8403     VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
8404     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
8405     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
8406     VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
8407     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
8408     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
8409   // VK_COLORSPACE_SRGB_NONLINEAR_KHR is a deprecated alias
8410     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
8411   // VK_COLOR_SPACE_DCI_P3_LINEAR_EXT is a deprecated alias
8412     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
8413     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
8414 } VkColorSpaceKHR;
8415 
8416 typedef enum VkSurfaceTransformFlagBitsKHR {
8417     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
8418     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
8419     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
8420     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
8421     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
8422     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
8423     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
8424     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
8425     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
8426     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8427 } VkSurfaceTransformFlagBitsKHR;
8428 
8429 typedef enum VkCompositeAlphaFlagBitsKHR {
8430     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8431     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
8432     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
8433     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
8434     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8435 } VkCompositeAlphaFlagBitsKHR;
8436 typedef VkFlags VkCompositeAlphaFlagsKHR;
8437 typedef VkFlags VkSurfaceTransformFlagsKHR;
8438 typedef struct VkSurfaceCapabilitiesKHR {
8439     uint32_t                         minImageCount;
8440     uint32_t                         maxImageCount;
8441     VkExtent2D                       currentExtent;
8442     VkExtent2D                       minImageExtent;
8443     VkExtent2D                       maxImageExtent;
8444     uint32_t                         maxImageArrayLayers;
8445     VkSurfaceTransformFlagsKHR       supportedTransforms;
8446     VkSurfaceTransformFlagBitsKHR    currentTransform;
8447     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
8448     VkImageUsageFlags                supportedUsageFlags;
8449 } VkSurfaceCapabilitiesKHR;
8450 
8451 typedef struct VkSurfaceFormatKHR {
8452     VkFormat           format;
8453     VkColorSpaceKHR    colorSpace;
8454 } VkSurfaceFormatKHR;
8455 
8456 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
8457 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
8458 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
8459 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
8460 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
8461 
8462 #ifndef VK_NO_PROTOTYPES
8463 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
8464     VkInstance                                  instance,
8465     VkSurfaceKHR                                surface,
8466     const VkAllocationCallbacks*                pAllocator);
8467 
8468 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
8469     VkPhysicalDevice                            physicalDevice,
8470     uint32_t                                    queueFamilyIndex,
8471     VkSurfaceKHR                                surface,
8472     VkBool32*                                   pSupported);
8473 
8474 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
8475     VkPhysicalDevice                            physicalDevice,
8476     VkSurfaceKHR                                surface,
8477     VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
8478 
8479 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
8480     VkPhysicalDevice                            physicalDevice,
8481     VkSurfaceKHR                                surface,
8482     uint32_t*                                   pSurfaceFormatCount,
8483     VkSurfaceFormatKHR*                         pSurfaceFormats);
8484 
8485 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
8486     VkPhysicalDevice                            physicalDevice,
8487     VkSurfaceKHR                                surface,
8488     uint32_t*                                   pPresentModeCount,
8489     VkPresentModeKHR*                           pPresentModes);
8490 #endif
8491 
8492 
8493 // VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
8494 #define VK_KHR_swapchain 1
8495 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
8496 #define VK_KHR_SWAPCHAIN_SPEC_VERSION     70
8497 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
8498 
8499 typedef enum VkSwapchainCreateFlagBitsKHR {
8500     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
8501     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
8502     VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
8503     VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0x00000008,
8504     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8505 } VkSwapchainCreateFlagBitsKHR;
8506 typedef VkFlags VkSwapchainCreateFlagsKHR;
8507 
8508 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
8509     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
8510     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
8511     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
8512     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
8513     VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8514 } VkDeviceGroupPresentModeFlagBitsKHR;
8515 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
8516 typedef struct VkSwapchainCreateInfoKHR {
8517     VkStructureType                  sType;
8518     const void*                      pNext;
8519     VkSwapchainCreateFlagsKHR        flags;
8520     VkSurfaceKHR                     surface;
8521     uint32_t                         minImageCount;
8522     VkFormat                         imageFormat;
8523     VkColorSpaceKHR                  imageColorSpace;
8524     VkExtent2D                       imageExtent;
8525     uint32_t                         imageArrayLayers;
8526     VkImageUsageFlags                imageUsage;
8527     VkSharingMode                    imageSharingMode;
8528     uint32_t                         queueFamilyIndexCount;
8529     const uint32_t*                  pQueueFamilyIndices;
8530     VkSurfaceTransformFlagBitsKHR    preTransform;
8531     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
8532     VkPresentModeKHR                 presentMode;
8533     VkBool32                         clipped;
8534     VkSwapchainKHR                   oldSwapchain;
8535 } VkSwapchainCreateInfoKHR;
8536 
8537 typedef struct VkPresentInfoKHR {
8538     VkStructureType          sType;
8539     const void*              pNext;
8540     uint32_t                 waitSemaphoreCount;
8541     const VkSemaphore*       pWaitSemaphores;
8542     uint32_t                 swapchainCount;
8543     const VkSwapchainKHR*    pSwapchains;
8544     const uint32_t*          pImageIndices;
8545     VkResult*                pResults;
8546 } VkPresentInfoKHR;
8547 
8548 typedef struct VkImageSwapchainCreateInfoKHR {
8549     VkStructureType    sType;
8550     const void*        pNext;
8551     VkSwapchainKHR     swapchain;
8552 } VkImageSwapchainCreateInfoKHR;
8553 
8554 typedef struct VkBindImageMemorySwapchainInfoKHR {
8555     VkStructureType    sType;
8556     const void*        pNext;
8557     VkSwapchainKHR     swapchain;
8558     uint32_t           imageIndex;
8559 } VkBindImageMemorySwapchainInfoKHR;
8560 
8561 typedef struct VkAcquireNextImageInfoKHR {
8562     VkStructureType    sType;
8563     const void*        pNext;
8564     VkSwapchainKHR     swapchain;
8565     uint64_t           timeout;
8566     VkSemaphore        semaphore;
8567     VkFence            fence;
8568     uint32_t           deviceMask;
8569 } VkAcquireNextImageInfoKHR;
8570 
8571 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
8572     VkStructureType                     sType;
8573     void*                               pNext;
8574     uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE];
8575     VkDeviceGroupPresentModeFlagsKHR    modes;
8576 } VkDeviceGroupPresentCapabilitiesKHR;
8577 
8578 typedef struct VkDeviceGroupPresentInfoKHR {
8579     VkStructureType                        sType;
8580     const void*                            pNext;
8581     uint32_t                               swapchainCount;
8582     const uint32_t*                        pDeviceMasks;
8583     VkDeviceGroupPresentModeFlagBitsKHR    mode;
8584 } VkDeviceGroupPresentInfoKHR;
8585 
8586 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
8587     VkStructureType                     sType;
8588     const void*                         pNext;
8589     VkDeviceGroupPresentModeFlagsKHR    modes;
8590 } VkDeviceGroupSwapchainCreateInfoKHR;
8591 
8592 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
8593 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
8594 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
8595 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
8596 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
8597 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
8598 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
8599 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
8600 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
8601 
8602 #ifndef VK_NO_PROTOTYPES
8603 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
8604     VkDevice                                    device,
8605     const VkSwapchainCreateInfoKHR*             pCreateInfo,
8606     const VkAllocationCallbacks*                pAllocator,
8607     VkSwapchainKHR*                             pSwapchain);
8608 
8609 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
8610     VkDevice                                    device,
8611     VkSwapchainKHR                              swapchain,
8612     const VkAllocationCallbacks*                pAllocator);
8613 
8614 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
8615     VkDevice                                    device,
8616     VkSwapchainKHR                              swapchain,
8617     uint32_t*                                   pSwapchainImageCount,
8618     VkImage*                                    pSwapchainImages);
8619 
8620 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
8621     VkDevice                                    device,
8622     VkSwapchainKHR                              swapchain,
8623     uint64_t                                    timeout,
8624     VkSemaphore                                 semaphore,
8625     VkFence                                     fence,
8626     uint32_t*                                   pImageIndex);
8627 
8628 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
8629     VkQueue                                     queue,
8630     const VkPresentInfoKHR*                     pPresentInfo);
8631 
8632 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
8633     VkDevice                                    device,
8634     VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
8635 
8636 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
8637     VkDevice                                    device,
8638     VkSurfaceKHR                                surface,
8639     VkDeviceGroupPresentModeFlagsKHR*           pModes);
8640 
8641 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
8642     VkPhysicalDevice                            physicalDevice,
8643     VkSurfaceKHR                                surface,
8644     uint32_t*                                   pRectCount,
8645     VkRect2D*                                   pRects);
8646 
8647 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
8648     VkDevice                                    device,
8649     const VkAcquireNextImageInfoKHR*            pAcquireInfo,
8650     uint32_t*                                   pImageIndex);
8651 #endif
8652 
8653 
8654 // VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
8655 #define VK_KHR_display 1
8656 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
8657 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
8658 #define VK_KHR_DISPLAY_SPEC_VERSION       23
8659 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
8660 typedef VkFlags VkDisplayModeCreateFlagsKHR;
8661 
8662 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
8663     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8664     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
8665     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
8666     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
8667     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8668 } VkDisplayPlaneAlphaFlagBitsKHR;
8669 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
8670 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
8671 typedef struct VkDisplayModeParametersKHR {
8672     VkExtent2D    visibleRegion;
8673     uint32_t      refreshRate;
8674 } VkDisplayModeParametersKHR;
8675 
8676 typedef struct VkDisplayModeCreateInfoKHR {
8677     VkStructureType                sType;
8678     const void*                    pNext;
8679     VkDisplayModeCreateFlagsKHR    flags;
8680     VkDisplayModeParametersKHR     parameters;
8681 } VkDisplayModeCreateInfoKHR;
8682 
8683 typedef struct VkDisplayModePropertiesKHR {
8684     VkDisplayModeKHR              displayMode;
8685     VkDisplayModeParametersKHR    parameters;
8686 } VkDisplayModePropertiesKHR;
8687 
8688 typedef struct VkDisplayPlaneCapabilitiesKHR {
8689     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
8690     VkOffset2D                     minSrcPosition;
8691     VkOffset2D                     maxSrcPosition;
8692     VkExtent2D                     minSrcExtent;
8693     VkExtent2D                     maxSrcExtent;
8694     VkOffset2D                     minDstPosition;
8695     VkOffset2D                     maxDstPosition;
8696     VkExtent2D                     minDstExtent;
8697     VkExtent2D                     maxDstExtent;
8698 } VkDisplayPlaneCapabilitiesKHR;
8699 
8700 typedef struct VkDisplayPlanePropertiesKHR {
8701     VkDisplayKHR    currentDisplay;
8702     uint32_t        currentStackIndex;
8703 } VkDisplayPlanePropertiesKHR;
8704 
8705 typedef struct VkDisplayPropertiesKHR {
8706     VkDisplayKHR                  display;
8707     const char*                   displayName;
8708     VkExtent2D                    physicalDimensions;
8709     VkExtent2D                    physicalResolution;
8710     VkSurfaceTransformFlagsKHR    supportedTransforms;
8711     VkBool32                      planeReorderPossible;
8712     VkBool32                      persistentContent;
8713 } VkDisplayPropertiesKHR;
8714 
8715 typedef struct VkDisplaySurfaceCreateInfoKHR {
8716     VkStructureType                   sType;
8717     const void*                       pNext;
8718     VkDisplaySurfaceCreateFlagsKHR    flags;
8719     VkDisplayModeKHR                  displayMode;
8720     uint32_t                          planeIndex;
8721     uint32_t                          planeStackIndex;
8722     VkSurfaceTransformFlagBitsKHR     transform;
8723     float                             globalAlpha;
8724     VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
8725     VkExtent2D                        imageExtent;
8726 } VkDisplaySurfaceCreateInfoKHR;
8727 
8728 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
8729 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
8730 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
8731 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
8732 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
8733 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
8734 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
8735 
8736 #ifndef VK_NO_PROTOTYPES
8737 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
8738     VkPhysicalDevice                            physicalDevice,
8739     uint32_t*                                   pPropertyCount,
8740     VkDisplayPropertiesKHR*                     pProperties);
8741 
8742 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
8743     VkPhysicalDevice                            physicalDevice,
8744     uint32_t*                                   pPropertyCount,
8745     VkDisplayPlanePropertiesKHR*                pProperties);
8746 
8747 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
8748     VkPhysicalDevice                            physicalDevice,
8749     uint32_t                                    planeIndex,
8750     uint32_t*                                   pDisplayCount,
8751     VkDisplayKHR*                               pDisplays);
8752 
8753 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
8754     VkPhysicalDevice                            physicalDevice,
8755     VkDisplayKHR                                display,
8756     uint32_t*                                   pPropertyCount,
8757     VkDisplayModePropertiesKHR*                 pProperties);
8758 
8759 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
8760     VkPhysicalDevice                            physicalDevice,
8761     VkDisplayKHR                                display,
8762     const VkDisplayModeCreateInfoKHR*           pCreateInfo,
8763     const VkAllocationCallbacks*                pAllocator,
8764     VkDisplayModeKHR*                           pMode);
8765 
8766 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
8767     VkPhysicalDevice                            physicalDevice,
8768     VkDisplayModeKHR                            mode,
8769     uint32_t                                    planeIndex,
8770     VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
8771 
8772 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
8773     VkInstance                                  instance,
8774     const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
8775     const VkAllocationCallbacks*                pAllocator,
8776     VkSurfaceKHR*                               pSurface);
8777 #endif
8778 
8779 
8780 // VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
8781 #define VK_KHR_display_swapchain 1
8782 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
8783 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
8784 typedef struct VkDisplayPresentInfoKHR {
8785     VkStructureType    sType;
8786     const void*        pNext;
8787     VkRect2D           srcRect;
8788     VkRect2D           dstRect;
8789     VkBool32           persistent;
8790 } VkDisplayPresentInfoKHR;
8791 
8792 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
8793 
8794 #ifndef VK_NO_PROTOTYPES
8795 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
8796     VkDevice                                    device,
8797     uint32_t                                    swapchainCount,
8798     const VkSwapchainCreateInfoKHR*             pCreateInfos,
8799     const VkAllocationCallbacks*                pAllocator,
8800     VkSwapchainKHR*                             pSwapchains);
8801 #endif
8802 
8803 
8804 // VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
8805 #define VK_KHR_sampler_mirror_clamp_to_edge 1
8806 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
8807 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
8808 
8809 
8810 // VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
8811 #define VK_KHR_video_queue 1
8812 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
8813 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
8814 #define VK_KHR_VIDEO_QUEUE_SPEC_VERSION   8
8815 #define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
8816 
8817 typedef enum VkQueryResultStatusKHR {
8818     VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
8819     VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
8820     VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
8821     VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
8822     VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
8823 } VkQueryResultStatusKHR;
8824 
8825 typedef enum VkVideoCodecOperationFlagBitsKHR {
8826     VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
8827     VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
8828     VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
8829     VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
8830     VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
8831     VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
8832     VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8833 } VkVideoCodecOperationFlagBitsKHR;
8834 typedef VkFlags VkVideoCodecOperationFlagsKHR;
8835 
8836 typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
8837     VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
8838     VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
8839     VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
8840     VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
8841     VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
8842     VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8843 } VkVideoChromaSubsamplingFlagBitsKHR;
8844 typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
8845 
8846 typedef enum VkVideoComponentBitDepthFlagBitsKHR {
8847     VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
8848     VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
8849     VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
8850     VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
8851     VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8852 } VkVideoComponentBitDepthFlagBitsKHR;
8853 typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
8854 
8855 typedef enum VkVideoCapabilityFlagBitsKHR {
8856     VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
8857     VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
8858     VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8859 } VkVideoCapabilityFlagBitsKHR;
8860 typedef VkFlags VkVideoCapabilityFlagsKHR;
8861 
8862 typedef enum VkVideoSessionCreateFlagBitsKHR {
8863     VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
8864     VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
8865     VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
8866     VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8867 } VkVideoSessionCreateFlagBitsKHR;
8868 typedef VkFlags VkVideoSessionCreateFlagsKHR;
8869 typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
8870 typedef VkFlags VkVideoBeginCodingFlagsKHR;
8871 typedef VkFlags VkVideoEndCodingFlagsKHR;
8872 
8873 typedef enum VkVideoCodingControlFlagBitsKHR {
8874     VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
8875     VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
8876     VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
8877     VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8878 } VkVideoCodingControlFlagBitsKHR;
8879 typedef VkFlags VkVideoCodingControlFlagsKHR;
8880 typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
8881     VkStructureType    sType;
8882     void*              pNext;
8883     VkBool32           queryResultStatusSupport;
8884 } VkQueueFamilyQueryResultStatusPropertiesKHR;
8885 
8886 typedef struct VkQueueFamilyVideoPropertiesKHR {
8887     VkStructureType                  sType;
8888     void*                            pNext;
8889     VkVideoCodecOperationFlagsKHR    videoCodecOperations;
8890 } VkQueueFamilyVideoPropertiesKHR;
8891 
8892 typedef struct VkVideoProfileInfoKHR {
8893     VkStructureType                     sType;
8894     const void*                         pNext;
8895     VkVideoCodecOperationFlagBitsKHR    videoCodecOperation;
8896     VkVideoChromaSubsamplingFlagsKHR    chromaSubsampling;
8897     VkVideoComponentBitDepthFlagsKHR    lumaBitDepth;
8898     VkVideoComponentBitDepthFlagsKHR    chromaBitDepth;
8899 } VkVideoProfileInfoKHR;
8900 
8901 typedef struct VkVideoProfileListInfoKHR {
8902     VkStructureType                 sType;
8903     const void*                     pNext;
8904     uint32_t                        profileCount;
8905     const VkVideoProfileInfoKHR*    pProfiles;
8906 } VkVideoProfileListInfoKHR;
8907 
8908 typedef struct VkVideoCapabilitiesKHR {
8909     VkStructureType              sType;
8910     void*                        pNext;
8911     VkVideoCapabilityFlagsKHR    flags;
8912     VkDeviceSize                 minBitstreamBufferOffsetAlignment;
8913     VkDeviceSize                 minBitstreamBufferSizeAlignment;
8914     VkExtent2D                   pictureAccessGranularity;
8915     VkExtent2D                   minCodedExtent;
8916     VkExtent2D                   maxCodedExtent;
8917     uint32_t                     maxDpbSlots;
8918     uint32_t                     maxActiveReferencePictures;
8919     VkExtensionProperties        stdHeaderVersion;
8920 } VkVideoCapabilitiesKHR;
8921 
8922 typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
8923     VkStructureType      sType;
8924     const void*          pNext;
8925     VkImageUsageFlags    imageUsage;
8926 } VkPhysicalDeviceVideoFormatInfoKHR;
8927 
8928 typedef struct VkVideoFormatPropertiesKHR {
8929     VkStructureType       sType;
8930     void*                 pNext;
8931     VkFormat              format;
8932     VkComponentMapping    componentMapping;
8933     VkImageCreateFlags    imageCreateFlags;
8934     VkImageType           imageType;
8935     VkImageTiling         imageTiling;
8936     VkImageUsageFlags     imageUsageFlags;
8937 } VkVideoFormatPropertiesKHR;
8938 
8939 typedef struct VkVideoPictureResourceInfoKHR {
8940     VkStructureType    sType;
8941     const void*        pNext;
8942     VkOffset2D         codedOffset;
8943     VkExtent2D         codedExtent;
8944     uint32_t           baseArrayLayer;
8945     VkImageView        imageViewBinding;
8946 } VkVideoPictureResourceInfoKHR;
8947 
8948 typedef struct VkVideoReferenceSlotInfoKHR {
8949     VkStructureType                         sType;
8950     const void*                             pNext;
8951     int32_t                                 slotIndex;
8952     const VkVideoPictureResourceInfoKHR*    pPictureResource;
8953 } VkVideoReferenceSlotInfoKHR;
8954 
8955 typedef struct VkVideoSessionMemoryRequirementsKHR {
8956     VkStructureType         sType;
8957     void*                   pNext;
8958     uint32_t                memoryBindIndex;
8959     VkMemoryRequirements    memoryRequirements;
8960 } VkVideoSessionMemoryRequirementsKHR;
8961 
8962 typedef struct VkBindVideoSessionMemoryInfoKHR {
8963     VkStructureType    sType;
8964     const void*        pNext;
8965     uint32_t           memoryBindIndex;
8966     VkDeviceMemory     memory;
8967     VkDeviceSize       memoryOffset;
8968     VkDeviceSize       memorySize;
8969 } VkBindVideoSessionMemoryInfoKHR;
8970 
8971 typedef struct VkVideoSessionCreateInfoKHR {
8972     VkStructureType                 sType;
8973     const void*                     pNext;
8974     uint32_t                        queueFamilyIndex;
8975     VkVideoSessionCreateFlagsKHR    flags;
8976     const VkVideoProfileInfoKHR*    pVideoProfile;
8977     VkFormat                        pictureFormat;
8978     VkExtent2D                      maxCodedExtent;
8979     VkFormat                        referencePictureFormat;
8980     uint32_t                        maxDpbSlots;
8981     uint32_t                        maxActiveReferencePictures;
8982     const VkExtensionProperties*    pStdHeaderVersion;
8983 } VkVideoSessionCreateInfoKHR;
8984 
8985 typedef struct VkVideoSessionParametersCreateInfoKHR {
8986     VkStructureType                           sType;
8987     const void*                               pNext;
8988     VkVideoSessionParametersCreateFlagsKHR    flags;
8989     VkVideoSessionParametersKHR               videoSessionParametersTemplate;
8990     VkVideoSessionKHR                         videoSession;
8991 } VkVideoSessionParametersCreateInfoKHR;
8992 
8993 typedef struct VkVideoSessionParametersUpdateInfoKHR {
8994     VkStructureType    sType;
8995     const void*        pNext;
8996     uint32_t           updateSequenceCount;
8997 } VkVideoSessionParametersUpdateInfoKHR;
8998 
8999 typedef struct VkVideoBeginCodingInfoKHR {
9000     VkStructureType                       sType;
9001     const void*                           pNext;
9002     VkVideoBeginCodingFlagsKHR            flags;
9003     VkVideoSessionKHR                     videoSession;
9004     VkVideoSessionParametersKHR           videoSessionParameters;
9005     uint32_t                              referenceSlotCount;
9006     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
9007 } VkVideoBeginCodingInfoKHR;
9008 
9009 typedef struct VkVideoEndCodingInfoKHR {
9010     VkStructureType             sType;
9011     const void*                 pNext;
9012     VkVideoEndCodingFlagsKHR    flags;
9013 } VkVideoEndCodingInfoKHR;
9014 
9015 typedef struct VkVideoCodingControlInfoKHR {
9016     VkStructureType                 sType;
9017     const void*                     pNext;
9018     VkVideoCodingControlFlagsKHR    flags;
9019 } VkVideoCodingControlInfoKHR;
9020 
9021 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
9022 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9023 typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
9024 typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
9025 typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9026 typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9027 typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
9028 typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9029 typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
9030 typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
9031 typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9032 typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9033 
9034 #ifndef VK_NO_PROTOTYPES
9035 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
9036     VkPhysicalDevice                            physicalDevice,
9037     const VkVideoProfileInfoKHR*                pVideoProfile,
9038     VkVideoCapabilitiesKHR*                     pCapabilities);
9039 
9040 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
9041     VkPhysicalDevice                            physicalDevice,
9042     const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
9043     uint32_t*                                   pVideoFormatPropertyCount,
9044     VkVideoFormatPropertiesKHR*                 pVideoFormatProperties);
9045 
9046 VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
9047     VkDevice                                    device,
9048     const VkVideoSessionCreateInfoKHR*          pCreateInfo,
9049     const VkAllocationCallbacks*                pAllocator,
9050     VkVideoSessionKHR*                          pVideoSession);
9051 
9052 VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
9053     VkDevice                                    device,
9054     VkVideoSessionKHR                           videoSession,
9055     const VkAllocationCallbacks*                pAllocator);
9056 
9057 VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
9058     VkDevice                                    device,
9059     VkVideoSessionKHR                           videoSession,
9060     uint32_t*                                   pMemoryRequirementsCount,
9061     VkVideoSessionMemoryRequirementsKHR*        pMemoryRequirements);
9062 
9063 VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
9064     VkDevice                                    device,
9065     VkVideoSessionKHR                           videoSession,
9066     uint32_t                                    bindSessionMemoryInfoCount,
9067     const VkBindVideoSessionMemoryInfoKHR*      pBindSessionMemoryInfos);
9068 
9069 VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
9070     VkDevice                                    device,
9071     const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
9072     const VkAllocationCallbacks*                pAllocator,
9073     VkVideoSessionParametersKHR*                pVideoSessionParameters);
9074 
9075 VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
9076     VkDevice                                    device,
9077     VkVideoSessionParametersKHR                 videoSessionParameters,
9078     const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9079 
9080 VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
9081     VkDevice                                    device,
9082     VkVideoSessionParametersKHR                 videoSessionParameters,
9083     const VkAllocationCallbacks*                pAllocator);
9084 
9085 VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
9086     VkCommandBuffer                             commandBuffer,
9087     const VkVideoBeginCodingInfoKHR*            pBeginInfo);
9088 
9089 VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
9090     VkCommandBuffer                             commandBuffer,
9091     const VkVideoEndCodingInfoKHR*              pEndCodingInfo);
9092 
9093 VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
9094     VkCommandBuffer                             commandBuffer,
9095     const VkVideoCodingControlInfoKHR*          pCodingControlInfo);
9096 #endif
9097 
9098 
9099 // VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
9100 #define VK_KHR_video_decode_queue 1
9101 #define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
9102 #define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
9103 
9104 typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
9105     VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
9106     VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
9107     VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9108 } VkVideoDecodeCapabilityFlagBitsKHR;
9109 typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
9110 
9111 typedef enum VkVideoDecodeUsageFlagBitsKHR {
9112     VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
9113     VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
9114     VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
9115     VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
9116     VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9117 } VkVideoDecodeUsageFlagBitsKHR;
9118 typedef VkFlags VkVideoDecodeUsageFlagsKHR;
9119 typedef VkFlags VkVideoDecodeFlagsKHR;
9120 typedef struct VkVideoDecodeCapabilitiesKHR {
9121     VkStructureType                    sType;
9122     void*                              pNext;
9123     VkVideoDecodeCapabilityFlagsKHR    flags;
9124 } VkVideoDecodeCapabilitiesKHR;
9125 
9126 typedef struct VkVideoDecodeUsageInfoKHR {
9127     VkStructureType               sType;
9128     const void*                   pNext;
9129     VkVideoDecodeUsageFlagsKHR    videoUsageHints;
9130 } VkVideoDecodeUsageInfoKHR;
9131 
9132 typedef struct VkVideoDecodeInfoKHR {
9133     VkStructureType                       sType;
9134     const void*                           pNext;
9135     VkVideoDecodeFlagsKHR                 flags;
9136     VkBuffer                              srcBuffer;
9137     VkDeviceSize                          srcBufferOffset;
9138     VkDeviceSize                          srcBufferRange;
9139     VkVideoPictureResourceInfoKHR         dstPictureResource;
9140     const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
9141     uint32_t                              referenceSlotCount;
9142     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
9143 } VkVideoDecodeInfoKHR;
9144 
9145 typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
9146 
9147 #ifndef VK_NO_PROTOTYPES
9148 VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
9149     VkCommandBuffer                             commandBuffer,
9150     const VkVideoDecodeInfoKHR*                 pDecodeInfo);
9151 #endif
9152 
9153 
9154 // VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
9155 #define VK_KHR_video_encode_h264 1
9156 #include "vk_video/vulkan_video_codec_h264std.h"
9157 #include "vk_video/vulkan_video_codec_h264std_encode.h"
9158 #define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
9159 #define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
9160 
9161 typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
9162     VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9163     VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9164     VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
9165     VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
9166     VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9167     VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9168     VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9169     VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
9170     VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
9171     VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9172 } VkVideoEncodeH264CapabilityFlagBitsKHR;
9173 typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
9174 
9175 typedef enum VkVideoEncodeH264StdFlagBitsKHR {
9176     VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9177     VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
9178     VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9179     VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
9180     VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
9181     VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9182     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9183     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
9184     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
9185     VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
9186     VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
9187     VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
9188     VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
9189     VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
9190     VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9191     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
9192     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
9193     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
9194     VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9195     VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9196     VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9197 } VkVideoEncodeH264StdFlagBitsKHR;
9198 typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
9199 
9200 typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
9201     VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9202     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9203     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9204     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9205     VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9206     VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9207 } VkVideoEncodeH264RateControlFlagBitsKHR;
9208 typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
9209 typedef struct VkVideoEncodeH264CapabilitiesKHR {
9210     VkStructureType                        sType;
9211     void*                                  pNext;
9212     VkVideoEncodeH264CapabilityFlagsKHR    flags;
9213     StdVideoH264LevelIdc                   maxLevelIdc;
9214     uint32_t                               maxSliceCount;
9215     uint32_t                               maxPPictureL0ReferenceCount;
9216     uint32_t                               maxBPictureL0ReferenceCount;
9217     uint32_t                               maxL1ReferenceCount;
9218     uint32_t                               maxTemporalLayerCount;
9219     VkBool32                               expectDyadicTemporalLayerPattern;
9220     int32_t                                minQp;
9221     int32_t                                maxQp;
9222     VkBool32                               prefersGopRemainingFrames;
9223     VkBool32                               requiresGopRemainingFrames;
9224     VkVideoEncodeH264StdFlagsKHR           stdSyntaxFlags;
9225 } VkVideoEncodeH264CapabilitiesKHR;
9226 
9227 typedef struct VkVideoEncodeH264QpKHR {
9228     int32_t    qpI;
9229     int32_t    qpP;
9230     int32_t    qpB;
9231 } VkVideoEncodeH264QpKHR;
9232 
9233 typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
9234     VkStructureType                         sType;
9235     void*                                   pNext;
9236     VkVideoEncodeH264RateControlFlagsKHR    preferredRateControlFlags;
9237     uint32_t                                preferredGopFrameCount;
9238     uint32_t                                preferredIdrPeriod;
9239     uint32_t                                preferredConsecutiveBFrameCount;
9240     uint32_t                                preferredTemporalLayerCount;
9241     VkVideoEncodeH264QpKHR                  preferredConstantQp;
9242     uint32_t                                preferredMaxL0ReferenceCount;
9243     uint32_t                                preferredMaxL1ReferenceCount;
9244     VkBool32                                preferredStdEntropyCodingModeFlag;
9245 } VkVideoEncodeH264QualityLevelPropertiesKHR;
9246 
9247 typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
9248     VkStructureType         sType;
9249     const void*             pNext;
9250     VkBool32                useMaxLevelIdc;
9251     StdVideoH264LevelIdc    maxLevelIdc;
9252 } VkVideoEncodeH264SessionCreateInfoKHR;
9253 
9254 typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
9255     VkStructureType                            sType;
9256     const void*                                pNext;
9257     uint32_t                                   stdSPSCount;
9258     const StdVideoH264SequenceParameterSet*    pStdSPSs;
9259     uint32_t                                   stdPPSCount;
9260     const StdVideoH264PictureParameterSet*     pStdPPSs;
9261 } VkVideoEncodeH264SessionParametersAddInfoKHR;
9262 
9263 typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
9264     VkStructureType                                        sType;
9265     const void*                                            pNext;
9266     uint32_t                                               maxStdSPSCount;
9267     uint32_t                                               maxStdPPSCount;
9268     const VkVideoEncodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
9269 } VkVideoEncodeH264SessionParametersCreateInfoKHR;
9270 
9271 typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
9272     VkStructureType    sType;
9273     const void*        pNext;
9274     VkBool32           writeStdSPS;
9275     VkBool32           writeStdPPS;
9276     uint32_t           stdSPSId;
9277     uint32_t           stdPPSId;
9278 } VkVideoEncodeH264SessionParametersGetInfoKHR;
9279 
9280 typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
9281     VkStructureType    sType;
9282     void*              pNext;
9283     VkBool32           hasStdSPSOverrides;
9284     VkBool32           hasStdPPSOverrides;
9285 } VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
9286 
9287 typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
9288     VkStructureType                         sType;
9289     const void*                             pNext;
9290     int32_t                                 constantQp;
9291     const StdVideoEncodeH264SliceHeader*    pStdSliceHeader;
9292 } VkVideoEncodeH264NaluSliceInfoKHR;
9293 
9294 typedef struct VkVideoEncodeH264PictureInfoKHR {
9295     VkStructureType                             sType;
9296     const void*                                 pNext;
9297     uint32_t                                    naluSliceEntryCount;
9298     const VkVideoEncodeH264NaluSliceInfoKHR*    pNaluSliceEntries;
9299     const StdVideoEncodeH264PictureInfo*        pStdPictureInfo;
9300     VkBool32                                    generatePrefixNalu;
9301 } VkVideoEncodeH264PictureInfoKHR;
9302 
9303 typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
9304     VkStructureType                           sType;
9305     const void*                               pNext;
9306     const StdVideoEncodeH264ReferenceInfo*    pStdReferenceInfo;
9307 } VkVideoEncodeH264DpbSlotInfoKHR;
9308 
9309 typedef struct VkVideoEncodeH264ProfileInfoKHR {
9310     VkStructureType           sType;
9311     const void*               pNext;
9312     StdVideoH264ProfileIdc    stdProfileIdc;
9313 } VkVideoEncodeH264ProfileInfoKHR;
9314 
9315 typedef struct VkVideoEncodeH264RateControlInfoKHR {
9316     VkStructureType                         sType;
9317     const void*                             pNext;
9318     VkVideoEncodeH264RateControlFlagsKHR    flags;
9319     uint32_t                                gopFrameCount;
9320     uint32_t                                idrPeriod;
9321     uint32_t                                consecutiveBFrameCount;
9322     uint32_t                                temporalLayerCount;
9323 } VkVideoEncodeH264RateControlInfoKHR;
9324 
9325 typedef struct VkVideoEncodeH264FrameSizeKHR {
9326     uint32_t    frameISize;
9327     uint32_t    framePSize;
9328     uint32_t    frameBSize;
9329 } VkVideoEncodeH264FrameSizeKHR;
9330 
9331 typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
9332     VkStructureType                  sType;
9333     const void*                      pNext;
9334     VkBool32                         useMinQp;
9335     VkVideoEncodeH264QpKHR           minQp;
9336     VkBool32                         useMaxQp;
9337     VkVideoEncodeH264QpKHR           maxQp;
9338     VkBool32                         useMaxFrameSize;
9339     VkVideoEncodeH264FrameSizeKHR    maxFrameSize;
9340 } VkVideoEncodeH264RateControlLayerInfoKHR;
9341 
9342 typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
9343     VkStructureType    sType;
9344     const void*        pNext;
9345     VkBool32           useGopRemainingFrames;
9346     uint32_t           gopRemainingI;
9347     uint32_t           gopRemainingP;
9348     uint32_t           gopRemainingB;
9349 } VkVideoEncodeH264GopRemainingFrameInfoKHR;
9350 
9351 
9352 
9353 // VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
9354 #define VK_KHR_video_encode_h265 1
9355 #include "vk_video/vulkan_video_codec_h265std.h"
9356 #include "vk_video/vulkan_video_codec_h265std_encode.h"
9357 #define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
9358 #define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
9359 
9360 typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
9361     VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9362     VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9363     VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
9364     VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
9365     VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9366     VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9367     VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9368     VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
9369     VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
9370     VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
9371     VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9372 } VkVideoEncodeH265CapabilityFlagBitsKHR;
9373 typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
9374 
9375 typedef enum VkVideoEncodeH265StdFlagBitsKHR {
9376     VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9377     VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
9378     VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9379     VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
9380     VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
9381     VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9382     VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9383     VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
9384     VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
9385     VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
9386     VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
9387     VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
9388     VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
9389     VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
9390     VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9391     VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
9392     VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
9393     VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
9394     VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
9395     VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9396     VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9397     VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9398 } VkVideoEncodeH265StdFlagBitsKHR;
9399 typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
9400 
9401 typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
9402     VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
9403     VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
9404     VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
9405     VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9406 } VkVideoEncodeH265CtbSizeFlagBitsKHR;
9407 typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
9408 
9409 typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
9410     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
9411     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
9412     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
9413     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
9414     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9415 } VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
9416 typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
9417 
9418 typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
9419     VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9420     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9421     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9422     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9423     VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9424     VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9425 } VkVideoEncodeH265RateControlFlagBitsKHR;
9426 typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
9427 typedef struct VkVideoEncodeH265CapabilitiesKHR {
9428     VkStructureType                                sType;
9429     void*                                          pNext;
9430     VkVideoEncodeH265CapabilityFlagsKHR            flags;
9431     StdVideoH265LevelIdc                           maxLevelIdc;
9432     uint32_t                                       maxSliceSegmentCount;
9433     VkExtent2D                                     maxTiles;
9434     VkVideoEncodeH265CtbSizeFlagsKHR               ctbSizes;
9435     VkVideoEncodeH265TransformBlockSizeFlagsKHR    transformBlockSizes;
9436     uint32_t                                       maxPPictureL0ReferenceCount;
9437     uint32_t                                       maxBPictureL0ReferenceCount;
9438     uint32_t                                       maxL1ReferenceCount;
9439     uint32_t                                       maxSubLayerCount;
9440     VkBool32                                       expectDyadicTemporalSubLayerPattern;
9441     int32_t                                        minQp;
9442     int32_t                                        maxQp;
9443     VkBool32                                       prefersGopRemainingFrames;
9444     VkBool32                                       requiresGopRemainingFrames;
9445     VkVideoEncodeH265StdFlagsKHR                   stdSyntaxFlags;
9446 } VkVideoEncodeH265CapabilitiesKHR;
9447 
9448 typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
9449     VkStructureType         sType;
9450     const void*             pNext;
9451     VkBool32                useMaxLevelIdc;
9452     StdVideoH265LevelIdc    maxLevelIdc;
9453 } VkVideoEncodeH265SessionCreateInfoKHR;
9454 
9455 typedef struct VkVideoEncodeH265QpKHR {
9456     int32_t    qpI;
9457     int32_t    qpP;
9458     int32_t    qpB;
9459 } VkVideoEncodeH265QpKHR;
9460 
9461 typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
9462     VkStructureType                         sType;
9463     void*                                   pNext;
9464     VkVideoEncodeH265RateControlFlagsKHR    preferredRateControlFlags;
9465     uint32_t                                preferredGopFrameCount;
9466     uint32_t                                preferredIdrPeriod;
9467     uint32_t                                preferredConsecutiveBFrameCount;
9468     uint32_t                                preferredSubLayerCount;
9469     VkVideoEncodeH265QpKHR                  preferredConstantQp;
9470     uint32_t                                preferredMaxL0ReferenceCount;
9471     uint32_t                                preferredMaxL1ReferenceCount;
9472 } VkVideoEncodeH265QualityLevelPropertiesKHR;
9473 
9474 typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
9475     VkStructureType                            sType;
9476     const void*                                pNext;
9477     uint32_t                                   stdVPSCount;
9478     const StdVideoH265VideoParameterSet*       pStdVPSs;
9479     uint32_t                                   stdSPSCount;
9480     const StdVideoH265SequenceParameterSet*    pStdSPSs;
9481     uint32_t                                   stdPPSCount;
9482     const StdVideoH265PictureParameterSet*     pStdPPSs;
9483 } VkVideoEncodeH265SessionParametersAddInfoKHR;
9484 
9485 typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
9486     VkStructureType                                        sType;
9487     const void*                                            pNext;
9488     uint32_t                                               maxStdVPSCount;
9489     uint32_t                                               maxStdSPSCount;
9490     uint32_t                                               maxStdPPSCount;
9491     const VkVideoEncodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
9492 } VkVideoEncodeH265SessionParametersCreateInfoKHR;
9493 
9494 typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
9495     VkStructureType    sType;
9496     const void*        pNext;
9497     VkBool32           writeStdVPS;
9498     VkBool32           writeStdSPS;
9499     VkBool32           writeStdPPS;
9500     uint32_t           stdVPSId;
9501     uint32_t           stdSPSId;
9502     uint32_t           stdPPSId;
9503 } VkVideoEncodeH265SessionParametersGetInfoKHR;
9504 
9505 typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
9506     VkStructureType    sType;
9507     void*              pNext;
9508     VkBool32           hasStdVPSOverrides;
9509     VkBool32           hasStdSPSOverrides;
9510     VkBool32           hasStdPPSOverrides;
9511 } VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
9512 
9513 typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
9514     VkStructureType                                sType;
9515     const void*                                    pNext;
9516     int32_t                                        constantQp;
9517     const StdVideoEncodeH265SliceSegmentHeader*    pStdSliceSegmentHeader;
9518 } VkVideoEncodeH265NaluSliceSegmentInfoKHR;
9519 
9520 typedef struct VkVideoEncodeH265PictureInfoKHR {
9521     VkStructureType                                    sType;
9522     const void*                                        pNext;
9523     uint32_t                                           naluSliceSegmentEntryCount;
9524     const VkVideoEncodeH265NaluSliceSegmentInfoKHR*    pNaluSliceSegmentEntries;
9525     const StdVideoEncodeH265PictureInfo*               pStdPictureInfo;
9526 } VkVideoEncodeH265PictureInfoKHR;
9527 
9528 typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
9529     VkStructureType                           sType;
9530     const void*                               pNext;
9531     const StdVideoEncodeH265ReferenceInfo*    pStdReferenceInfo;
9532 } VkVideoEncodeH265DpbSlotInfoKHR;
9533 
9534 typedef struct VkVideoEncodeH265ProfileInfoKHR {
9535     VkStructureType           sType;
9536     const void*               pNext;
9537     StdVideoH265ProfileIdc    stdProfileIdc;
9538 } VkVideoEncodeH265ProfileInfoKHR;
9539 
9540 typedef struct VkVideoEncodeH265RateControlInfoKHR {
9541     VkStructureType                         sType;
9542     const void*                             pNext;
9543     VkVideoEncodeH265RateControlFlagsKHR    flags;
9544     uint32_t                                gopFrameCount;
9545     uint32_t                                idrPeriod;
9546     uint32_t                                consecutiveBFrameCount;
9547     uint32_t                                subLayerCount;
9548 } VkVideoEncodeH265RateControlInfoKHR;
9549 
9550 typedef struct VkVideoEncodeH265FrameSizeKHR {
9551     uint32_t    frameISize;
9552     uint32_t    framePSize;
9553     uint32_t    frameBSize;
9554 } VkVideoEncodeH265FrameSizeKHR;
9555 
9556 typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
9557     VkStructureType                  sType;
9558     const void*                      pNext;
9559     VkBool32                         useMinQp;
9560     VkVideoEncodeH265QpKHR           minQp;
9561     VkBool32                         useMaxQp;
9562     VkVideoEncodeH265QpKHR           maxQp;
9563     VkBool32                         useMaxFrameSize;
9564     VkVideoEncodeH265FrameSizeKHR    maxFrameSize;
9565 } VkVideoEncodeH265RateControlLayerInfoKHR;
9566 
9567 typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
9568     VkStructureType    sType;
9569     const void*        pNext;
9570     VkBool32           useGopRemainingFrames;
9571     uint32_t           gopRemainingI;
9572     uint32_t           gopRemainingP;
9573     uint32_t           gopRemainingB;
9574 } VkVideoEncodeH265GopRemainingFrameInfoKHR;
9575 
9576 
9577 
9578 // VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
9579 #define VK_KHR_video_decode_h264 1
9580 #include "vk_video/vulkan_video_codec_h264std_decode.h"
9581 #define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
9582 #define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
9583 
9584 typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
9585     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
9586     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
9587     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
9588     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9589 } VkVideoDecodeH264PictureLayoutFlagBitsKHR;
9590 typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
9591 typedef struct VkVideoDecodeH264ProfileInfoKHR {
9592     VkStructureType                              sType;
9593     const void*                                  pNext;
9594     StdVideoH264ProfileIdc                       stdProfileIdc;
9595     VkVideoDecodeH264PictureLayoutFlagBitsKHR    pictureLayout;
9596 } VkVideoDecodeH264ProfileInfoKHR;
9597 
9598 typedef struct VkVideoDecodeH264CapabilitiesKHR {
9599     VkStructureType         sType;
9600     void*                   pNext;
9601     StdVideoH264LevelIdc    maxLevelIdc;
9602     VkOffset2D              fieldOffsetGranularity;
9603 } VkVideoDecodeH264CapabilitiesKHR;
9604 
9605 typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
9606     VkStructureType                            sType;
9607     const void*                                pNext;
9608     uint32_t                                   stdSPSCount;
9609     const StdVideoH264SequenceParameterSet*    pStdSPSs;
9610     uint32_t                                   stdPPSCount;
9611     const StdVideoH264PictureParameterSet*     pStdPPSs;
9612 } VkVideoDecodeH264SessionParametersAddInfoKHR;
9613 
9614 typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
9615     VkStructureType                                        sType;
9616     const void*                                            pNext;
9617     uint32_t                                               maxStdSPSCount;
9618     uint32_t                                               maxStdPPSCount;
9619     const VkVideoDecodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
9620 } VkVideoDecodeH264SessionParametersCreateInfoKHR;
9621 
9622 typedef struct VkVideoDecodeH264PictureInfoKHR {
9623     VkStructureType                         sType;
9624     const void*                             pNext;
9625     const StdVideoDecodeH264PictureInfo*    pStdPictureInfo;
9626     uint32_t                                sliceCount;
9627     const uint32_t*                         pSliceOffsets;
9628 } VkVideoDecodeH264PictureInfoKHR;
9629 
9630 typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
9631     VkStructureType                           sType;
9632     const void*                               pNext;
9633     const StdVideoDecodeH264ReferenceInfo*    pStdReferenceInfo;
9634 } VkVideoDecodeH264DpbSlotInfoKHR;
9635 
9636 
9637 
9638 // VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
9639 #define VK_KHR_dynamic_rendering 1
9640 #define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
9641 #define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
9642 typedef VkRenderingFlags VkRenderingFlagsKHR;
9643 
9644 typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
9645 
9646 typedef VkRenderingInfo VkRenderingInfoKHR;
9647 
9648 typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
9649 
9650 typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
9651 
9652 typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
9653 
9654 typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
9655 
9656 typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
9657     VkStructureType    sType;
9658     const void*        pNext;
9659     VkImageView        imageView;
9660     VkImageLayout      imageLayout;
9661     VkExtent2D         shadingRateAttachmentTexelSize;
9662 } VkRenderingFragmentShadingRateAttachmentInfoKHR;
9663 
9664 typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
9665     VkStructureType    sType;
9666     const void*        pNext;
9667     VkImageView        imageView;
9668     VkImageLayout      imageLayout;
9669 } VkRenderingFragmentDensityMapAttachmentInfoEXT;
9670 
9671 typedef struct VkAttachmentSampleCountInfoAMD {
9672     VkStructureType                 sType;
9673     const void*                     pNext;
9674     uint32_t                        colorAttachmentCount;
9675     const VkSampleCountFlagBits*    pColorAttachmentSamples;
9676     VkSampleCountFlagBits           depthStencilAttachmentSamples;
9677 } VkAttachmentSampleCountInfoAMD;
9678 
9679 typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
9680 
9681 typedef struct VkMultiviewPerViewAttributesInfoNVX {
9682     VkStructureType    sType;
9683     const void*        pNext;
9684     VkBool32           perViewAttributes;
9685     VkBool32           perViewAttributesPositionXOnly;
9686 } VkMultiviewPerViewAttributesInfoNVX;
9687 
9688 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
9689 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer                   commandBuffer);
9690 
9691 #ifndef VK_NO_PROTOTYPES
9692 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
9693     VkCommandBuffer                             commandBuffer,
9694     const VkRenderingInfo*                      pRenderingInfo);
9695 
9696 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
9697     VkCommandBuffer                             commandBuffer);
9698 #endif
9699 
9700 
9701 // VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
9702 #define VK_KHR_multiview 1
9703 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
9704 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
9705 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
9706 
9707 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
9708 
9709 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
9710 
9711 
9712 
9713 // VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
9714 #define VK_KHR_get_physical_device_properties2 1
9715 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
9716 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
9717 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
9718 
9719 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
9720 
9721 typedef VkFormatProperties2 VkFormatProperties2KHR;
9722 
9723 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
9724 
9725 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
9726 
9727 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
9728 
9729 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
9730 
9731 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
9732 
9733 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
9734 
9735 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
9736 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
9737 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
9738 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
9739 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
9740 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
9741 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
9742 
9743 #ifndef VK_NO_PROTOTYPES
9744 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
9745     VkPhysicalDevice                            physicalDevice,
9746     VkPhysicalDeviceFeatures2*                  pFeatures);
9747 
9748 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
9749     VkPhysicalDevice                            physicalDevice,
9750     VkPhysicalDeviceProperties2*                pProperties);
9751 
9752 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
9753     VkPhysicalDevice                            physicalDevice,
9754     VkFormat                                    format,
9755     VkFormatProperties2*                        pFormatProperties);
9756 
9757 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
9758     VkPhysicalDevice                            physicalDevice,
9759     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
9760     VkImageFormatProperties2*                   pImageFormatProperties);
9761 
9762 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
9763     VkPhysicalDevice                            physicalDevice,
9764     uint32_t*                                   pQueueFamilyPropertyCount,
9765     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
9766 
9767 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
9768     VkPhysicalDevice                            physicalDevice,
9769     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
9770 
9771 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
9772     VkPhysicalDevice                            physicalDevice,
9773     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
9774     uint32_t*                                   pPropertyCount,
9775     VkSparseImageFormatProperties2*             pProperties);
9776 #endif
9777 
9778 
9779 // VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
9780 #define VK_KHR_device_group 1
9781 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  4
9782 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
9783 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
9784 
9785 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
9786 
9787 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
9788 
9789 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
9790 
9791 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
9792 
9793 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
9794 
9795 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
9796 
9797 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
9798 
9799 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
9800 
9801 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
9802 
9803 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
9804 
9805 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
9806 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
9807 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);
9808 
9809 #ifndef VK_NO_PROTOTYPES
9810 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
9811     VkDevice                                    device,
9812     uint32_t                                    heapIndex,
9813     uint32_t                                    localDeviceIndex,
9814     uint32_t                                    remoteDeviceIndex,
9815     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
9816 
9817 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
9818     VkCommandBuffer                             commandBuffer,
9819     uint32_t                                    deviceMask);
9820 
9821 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
9822     VkCommandBuffer                             commandBuffer,
9823     uint32_t                                    baseGroupX,
9824     uint32_t                                    baseGroupY,
9825     uint32_t                                    baseGroupZ,
9826     uint32_t                                    groupCountX,
9827     uint32_t                                    groupCountY,
9828     uint32_t                                    groupCountZ);
9829 #endif
9830 
9831 
9832 // VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
9833 #define VK_KHR_shader_draw_parameters 1
9834 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
9835 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
9836 
9837 
9838 // VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
9839 #define VK_KHR_maintenance1 1
9840 #define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
9841 #define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
9842 // VK_KHR_MAINTENANCE1_SPEC_VERSION is a deprecated alias
9843 #define VK_KHR_MAINTENANCE1_SPEC_VERSION  VK_KHR_MAINTENANCE_1_SPEC_VERSION
9844 // VK_KHR_MAINTENANCE1_EXTENSION_NAME is a deprecated alias
9845 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
9846 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
9847 
9848 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
9849 
9850 #ifndef VK_NO_PROTOTYPES
9851 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
9852     VkDevice                                    device,
9853     VkCommandPool                               commandPool,
9854     VkCommandPoolTrimFlags                      flags);
9855 #endif
9856 
9857 
9858 // VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
9859 #define VK_KHR_device_group_creation 1
9860 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
9861 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
9862 #define VK_MAX_DEVICE_GROUP_SIZE_KHR      VK_MAX_DEVICE_GROUP_SIZE
9863 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
9864 
9865 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
9866 
9867 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
9868 
9869 #ifndef VK_NO_PROTOTYPES
9870 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
9871     VkInstance                                  instance,
9872     uint32_t*                                   pPhysicalDeviceGroupCount,
9873     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
9874 #endif
9875 
9876 
9877 // VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
9878 #define VK_KHR_external_memory_capabilities 1
9879 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
9880 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
9881 #define VK_LUID_SIZE_KHR                  VK_LUID_SIZE
9882 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
9883 
9884 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
9885 
9886 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
9887 
9888 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
9889 
9890 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
9891 
9892 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
9893 
9894 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
9895 
9896 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
9897 
9898 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
9899 
9900 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
9901 
9902 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
9903 
9904 #ifndef VK_NO_PROTOTYPES
9905 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
9906     VkPhysicalDevice                            physicalDevice,
9907     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
9908     VkExternalBufferProperties*                 pExternalBufferProperties);
9909 #endif
9910 
9911 
9912 // VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
9913 #define VK_KHR_external_memory 1
9914 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
9915 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
9916 #define VK_QUEUE_FAMILY_EXTERNAL_KHR      VK_QUEUE_FAMILY_EXTERNAL
9917 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
9918 
9919 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
9920 
9921 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
9922 
9923 
9924 
9925 // VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
9926 #define VK_KHR_external_memory_fd 1
9927 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
9928 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
9929 typedef struct VkImportMemoryFdInfoKHR {
9930     VkStructureType                       sType;
9931     const void*                           pNext;
9932     VkExternalMemoryHandleTypeFlagBits    handleType;
9933     int                                   fd;
9934 } VkImportMemoryFdInfoKHR;
9935 
9936 typedef struct VkMemoryFdPropertiesKHR {
9937     VkStructureType    sType;
9938     void*              pNext;
9939     uint32_t           memoryTypeBits;
9940 } VkMemoryFdPropertiesKHR;
9941 
9942 typedef struct VkMemoryGetFdInfoKHR {
9943     VkStructureType                       sType;
9944     const void*                           pNext;
9945     VkDeviceMemory                        memory;
9946     VkExternalMemoryHandleTypeFlagBits    handleType;
9947 } VkMemoryGetFdInfoKHR;
9948 
9949 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
9950 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
9951 
9952 #ifndef VK_NO_PROTOTYPES
9953 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
9954     VkDevice                                    device,
9955     const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
9956     int*                                        pFd);
9957 
9958 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
9959     VkDevice                                    device,
9960     VkExternalMemoryHandleTypeFlagBits          handleType,
9961     int                                         fd,
9962     VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
9963 #endif
9964 
9965 
9966 // VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
9967 #define VK_KHR_external_semaphore_capabilities 1
9968 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
9969 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
9970 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
9971 
9972 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
9973 
9974 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
9975 
9976 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
9977 
9978 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
9979 
9980 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
9981 
9982 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
9983 
9984 #ifndef VK_NO_PROTOTYPES
9985 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
9986     VkPhysicalDevice                            physicalDevice,
9987     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
9988     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
9989 #endif
9990 
9991 
9992 // VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
9993 #define VK_KHR_external_semaphore 1
9994 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
9995 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
9996 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
9997 
9998 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
9999 
10000 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
10001 
10002 
10003 
10004 // VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
10005 #define VK_KHR_external_semaphore_fd 1
10006 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
10007 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
10008 typedef struct VkImportSemaphoreFdInfoKHR {
10009     VkStructureType                          sType;
10010     const void*                              pNext;
10011     VkSemaphore                              semaphore;
10012     VkSemaphoreImportFlags                   flags;
10013     VkExternalSemaphoreHandleTypeFlagBits    handleType;
10014     int                                      fd;
10015 } VkImportSemaphoreFdInfoKHR;
10016 
10017 typedef struct VkSemaphoreGetFdInfoKHR {
10018     VkStructureType                          sType;
10019     const void*                              pNext;
10020     VkSemaphore                              semaphore;
10021     VkExternalSemaphoreHandleTypeFlagBits    handleType;
10022 } VkSemaphoreGetFdInfoKHR;
10023 
10024 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10025 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
10026 
10027 #ifndef VK_NO_PROTOTYPES
10028 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
10029     VkDevice                                    device,
10030     const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
10031 
10032 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
10033     VkDevice                                    device,
10034     const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
10035     int*                                        pFd);
10036 #endif
10037 
10038 
10039 // VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
10040 #define VK_KHR_push_descriptor 1
10041 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
10042 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
10043 typedef VkPhysicalDevicePushDescriptorProperties VkPhysicalDevicePushDescriptorPropertiesKHR;
10044 
10045 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
10046 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
10047 
10048 #ifndef VK_NO_PROTOTYPES
10049 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
10050     VkCommandBuffer                             commandBuffer,
10051     VkPipelineBindPoint                         pipelineBindPoint,
10052     VkPipelineLayout                            layout,
10053     uint32_t                                    set,
10054     uint32_t                                    descriptorWriteCount,
10055     const VkWriteDescriptorSet*                 pDescriptorWrites);
10056 
10057 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
10058     VkCommandBuffer                             commandBuffer,
10059     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
10060     VkPipelineLayout                            layout,
10061     uint32_t                                    set,
10062     const void*                                 pData);
10063 #endif
10064 
10065 
10066 // VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
10067 #define VK_KHR_shader_float16_int8 1
10068 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
10069 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
10070 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
10071 
10072 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
10073 
10074 
10075 
10076 // VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
10077 #define VK_KHR_16bit_storage 1
10078 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
10079 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
10080 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
10081 
10082 
10083 
10084 // VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
10085 #define VK_KHR_incremental_present 1
10086 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
10087 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
10088 typedef struct VkRectLayerKHR {
10089     VkOffset2D    offset;
10090     VkExtent2D    extent;
10091     uint32_t      layer;
10092 } VkRectLayerKHR;
10093 
10094 typedef struct VkPresentRegionKHR {
10095     uint32_t                 rectangleCount;
10096     const VkRectLayerKHR*    pRectangles;
10097 } VkPresentRegionKHR;
10098 
10099 typedef struct VkPresentRegionsKHR {
10100     VkStructureType              sType;
10101     const void*                  pNext;
10102     uint32_t                     swapchainCount;
10103     const VkPresentRegionKHR*    pRegions;
10104 } VkPresentRegionsKHR;
10105 
10106 
10107 
10108 // VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
10109 #define VK_KHR_descriptor_update_template 1
10110 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
10111 
10112 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
10113 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
10114 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
10115 
10116 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
10117 
10118 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
10119 
10120 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
10121 
10122 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10123 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
10124 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
10125 
10126 #ifndef VK_NO_PROTOTYPES
10127 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
10128     VkDevice                                    device,
10129     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10130     const VkAllocationCallbacks*                pAllocator,
10131     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
10132 
10133 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
10134     VkDevice                                    device,
10135     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
10136     const VkAllocationCallbacks*                pAllocator);
10137 
10138 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
10139     VkDevice                                    device,
10140     VkDescriptorSet                             descriptorSet,
10141     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
10142     const void*                                 pData);
10143 #endif
10144 
10145 
10146 // VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
10147 #define VK_KHR_imageless_framebuffer 1
10148 #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
10149 #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
10150 typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
10151 
10152 typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
10153 
10154 typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
10155 
10156 typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
10157 
10158 
10159 
10160 // VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
10161 #define VK_KHR_create_renderpass2 1
10162 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
10163 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
10164 typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
10165 
10166 typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
10167 
10168 typedef VkAttachmentReference2 VkAttachmentReference2KHR;
10169 
10170 typedef VkSubpassDescription2 VkSubpassDescription2KHR;
10171 
10172 typedef VkSubpassDependency2 VkSubpassDependency2KHR;
10173 
10174 typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
10175 
10176 typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
10177 
10178 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
10179 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
10180 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
10181 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
10182 
10183 #ifndef VK_NO_PROTOTYPES
10184 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
10185     VkDevice                                    device,
10186     const VkRenderPassCreateInfo2*              pCreateInfo,
10187     const VkAllocationCallbacks*                pAllocator,
10188     VkRenderPass*                               pRenderPass);
10189 
10190 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
10191     VkCommandBuffer                             commandBuffer,
10192     const VkRenderPassBeginInfo*                pRenderPassBegin,
10193     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
10194 
10195 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
10196     VkCommandBuffer                             commandBuffer,
10197     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
10198     const VkSubpassEndInfo*                     pSubpassEndInfo);
10199 
10200 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
10201     VkCommandBuffer                             commandBuffer,
10202     const VkSubpassEndInfo*                     pSubpassEndInfo);
10203 #endif
10204 
10205 
10206 // VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
10207 #define VK_KHR_shared_presentable_image 1
10208 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
10209 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
10210 typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
10211     VkStructureType      sType;
10212     void*                pNext;
10213     VkImageUsageFlags    sharedPresentSupportedUsageFlags;
10214 } VkSharedPresentSurfaceCapabilitiesKHR;
10215 
10216 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
10217 
10218 #ifndef VK_NO_PROTOTYPES
10219 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
10220     VkDevice                                    device,
10221     VkSwapchainKHR                              swapchain);
10222 #endif
10223 
10224 
10225 // VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
10226 #define VK_KHR_external_fence_capabilities 1
10227 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
10228 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
10229 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
10230 
10231 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
10232 
10233 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
10234 
10235 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
10236 
10237 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
10238 
10239 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
10240 
10241 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
10242 
10243 #ifndef VK_NO_PROTOTYPES
10244 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
10245     VkPhysicalDevice                            physicalDevice,
10246     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
10247     VkExternalFenceProperties*                  pExternalFenceProperties);
10248 #endif
10249 
10250 
10251 // VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
10252 #define VK_KHR_external_fence 1
10253 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
10254 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
10255 typedef VkFenceImportFlags VkFenceImportFlagsKHR;
10256 
10257 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
10258 
10259 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
10260 
10261 
10262 
10263 // VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
10264 #define VK_KHR_external_fence_fd 1
10265 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
10266 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
10267 typedef struct VkImportFenceFdInfoKHR {
10268     VkStructureType                      sType;
10269     const void*                          pNext;
10270     VkFence                              fence;
10271     VkFenceImportFlags                   flags;
10272     VkExternalFenceHandleTypeFlagBits    handleType;
10273     int                                  fd;
10274 } VkImportFenceFdInfoKHR;
10275 
10276 typedef struct VkFenceGetFdInfoKHR {
10277     VkStructureType                      sType;
10278     const void*                          pNext;
10279     VkFence                              fence;
10280     VkExternalFenceHandleTypeFlagBits    handleType;
10281 } VkFenceGetFdInfoKHR;
10282 
10283 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10284 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
10285 
10286 #ifndef VK_NO_PROTOTYPES
10287 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
10288     VkDevice                                    device,
10289     const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
10290 
10291 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
10292     VkDevice                                    device,
10293     const VkFenceGetFdInfoKHR*                  pGetFdInfo,
10294     int*                                        pFd);
10295 #endif
10296 
10297 
10298 // VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
10299 #define VK_KHR_performance_query 1
10300 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
10301 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
10302 
10303 typedef enum VkPerformanceCounterUnitKHR {
10304     VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
10305     VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
10306     VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
10307     VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
10308     VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
10309     VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
10310     VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
10311     VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
10312     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
10313     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
10314     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
10315     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
10316 } VkPerformanceCounterUnitKHR;
10317 
10318 typedef enum VkPerformanceCounterScopeKHR {
10319     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
10320     VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
10321     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
10322   // VK_QUERY_SCOPE_COMMAND_BUFFER_KHR is a deprecated alias
10323     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
10324   // VK_QUERY_SCOPE_RENDER_PASS_KHR is a deprecated alias
10325     VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
10326   // VK_QUERY_SCOPE_COMMAND_KHR is a deprecated alias
10327     VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
10328     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
10329 } VkPerformanceCounterScopeKHR;
10330 
10331 typedef enum VkPerformanceCounterStorageKHR {
10332     VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
10333     VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
10334     VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
10335     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
10336     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
10337     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
10338     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
10339 } VkPerformanceCounterStorageKHR;
10340 
10341 typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
10342     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
10343     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
10344   // VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR is a deprecated alias
10345     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
10346   // VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR is a deprecated alias
10347     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
10348     VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10349 } VkPerformanceCounterDescriptionFlagBitsKHR;
10350 typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
10351 
10352 typedef enum VkAcquireProfilingLockFlagBitsKHR {
10353     VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10354 } VkAcquireProfilingLockFlagBitsKHR;
10355 typedef VkFlags VkAcquireProfilingLockFlagsKHR;
10356 typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
10357     VkStructureType    sType;
10358     void*              pNext;
10359     VkBool32           performanceCounterQueryPools;
10360     VkBool32           performanceCounterMultipleQueryPools;
10361 } VkPhysicalDevicePerformanceQueryFeaturesKHR;
10362 
10363 typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
10364     VkStructureType    sType;
10365     void*              pNext;
10366     VkBool32           allowCommandBufferQueryCopies;
10367 } VkPhysicalDevicePerformanceQueryPropertiesKHR;
10368 
10369 typedef struct VkPerformanceCounterKHR {
10370     VkStructureType                   sType;
10371     void*                             pNext;
10372     VkPerformanceCounterUnitKHR       unit;
10373     VkPerformanceCounterScopeKHR      scope;
10374     VkPerformanceCounterStorageKHR    storage;
10375     uint8_t                           uuid[VK_UUID_SIZE];
10376 } VkPerformanceCounterKHR;
10377 
10378 typedef struct VkPerformanceCounterDescriptionKHR {
10379     VkStructureType                            sType;
10380     void*                                      pNext;
10381     VkPerformanceCounterDescriptionFlagsKHR    flags;
10382     char                                       name[VK_MAX_DESCRIPTION_SIZE];
10383     char                                       category[VK_MAX_DESCRIPTION_SIZE];
10384     char                                       description[VK_MAX_DESCRIPTION_SIZE];
10385 } VkPerformanceCounterDescriptionKHR;
10386 
10387 typedef struct VkQueryPoolPerformanceCreateInfoKHR {
10388     VkStructureType    sType;
10389     const void*        pNext;
10390     uint32_t           queueFamilyIndex;
10391     uint32_t           counterIndexCount;
10392     const uint32_t*    pCounterIndices;
10393 } VkQueryPoolPerformanceCreateInfoKHR;
10394 
10395 typedef union VkPerformanceCounterResultKHR {
10396     int32_t     int32;
10397     int64_t     int64;
10398     uint32_t    uint32;
10399     uint64_t    uint64;
10400     float       float32;
10401     double      float64;
10402 } VkPerformanceCounterResultKHR;
10403 
10404 typedef struct VkAcquireProfilingLockInfoKHR {
10405     VkStructureType                   sType;
10406     const void*                       pNext;
10407     VkAcquireProfilingLockFlagsKHR    flags;
10408     uint64_t                          timeout;
10409 } VkAcquireProfilingLockInfoKHR;
10410 
10411 typedef struct VkPerformanceQuerySubmitInfoKHR {
10412     VkStructureType    sType;
10413     const void*        pNext;
10414     uint32_t           counterPassIndex;
10415 } VkPerformanceQuerySubmitInfoKHR;
10416 
10417 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
10418 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
10419 typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
10420 typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
10421 
10422 #ifndef VK_NO_PROTOTYPES
10423 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
10424     VkPhysicalDevice                            physicalDevice,
10425     uint32_t                                    queueFamilyIndex,
10426     uint32_t*                                   pCounterCount,
10427     VkPerformanceCounterKHR*                    pCounters,
10428     VkPerformanceCounterDescriptionKHR*         pCounterDescriptions);
10429 
10430 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
10431     VkPhysicalDevice                            physicalDevice,
10432     const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
10433     uint32_t*                                   pNumPasses);
10434 
10435 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
10436     VkDevice                                    device,
10437     const VkAcquireProfilingLockInfoKHR*        pInfo);
10438 
10439 VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
10440     VkDevice                                    device);
10441 #endif
10442 
10443 
10444 // VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
10445 #define VK_KHR_maintenance2 1
10446 #define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
10447 #define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
10448 // VK_KHR_MAINTENANCE2_SPEC_VERSION is a deprecated alias
10449 #define VK_KHR_MAINTENANCE2_SPEC_VERSION  VK_KHR_MAINTENANCE_2_SPEC_VERSION
10450 // VK_KHR_MAINTENANCE2_EXTENSION_NAME is a deprecated alias
10451 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
10452 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
10453 
10454 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
10455 
10456 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
10457 
10458 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
10459 
10460 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
10461 
10462 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
10463 
10464 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
10465 
10466 
10467 
10468 // VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
10469 #define VK_KHR_get_surface_capabilities2 1
10470 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
10471 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
10472 typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
10473     VkStructureType    sType;
10474     const void*        pNext;
10475     VkSurfaceKHR       surface;
10476 } VkPhysicalDeviceSurfaceInfo2KHR;
10477 
10478 typedef struct VkSurfaceCapabilities2KHR {
10479     VkStructureType             sType;
10480     void*                       pNext;
10481     VkSurfaceCapabilitiesKHR    surfaceCapabilities;
10482 } VkSurfaceCapabilities2KHR;
10483 
10484 typedef struct VkSurfaceFormat2KHR {
10485     VkStructureType       sType;
10486     void*                 pNext;
10487     VkSurfaceFormatKHR    surfaceFormat;
10488 } VkSurfaceFormat2KHR;
10489 
10490 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
10491 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
10492 
10493 #ifndef VK_NO_PROTOTYPES
10494 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
10495     VkPhysicalDevice                            physicalDevice,
10496     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
10497     VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
10498 
10499 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
10500     VkPhysicalDevice                            physicalDevice,
10501     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
10502     uint32_t*                                   pSurfaceFormatCount,
10503     VkSurfaceFormat2KHR*                        pSurfaceFormats);
10504 #endif
10505 
10506 
10507 // VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
10508 #define VK_KHR_variable_pointers 1
10509 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
10510 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
10511 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
10512 
10513 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
10514 
10515 
10516 
10517 // VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
10518 #define VK_KHR_get_display_properties2 1
10519 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
10520 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
10521 typedef struct VkDisplayProperties2KHR {
10522     VkStructureType           sType;
10523     void*                     pNext;
10524     VkDisplayPropertiesKHR    displayProperties;
10525 } VkDisplayProperties2KHR;
10526 
10527 typedef struct VkDisplayPlaneProperties2KHR {
10528     VkStructureType                sType;
10529     void*                          pNext;
10530     VkDisplayPlanePropertiesKHR    displayPlaneProperties;
10531 } VkDisplayPlaneProperties2KHR;
10532 
10533 typedef struct VkDisplayModeProperties2KHR {
10534     VkStructureType               sType;
10535     void*                         pNext;
10536     VkDisplayModePropertiesKHR    displayModeProperties;
10537 } VkDisplayModeProperties2KHR;
10538 
10539 typedef struct VkDisplayPlaneInfo2KHR {
10540     VkStructureType     sType;
10541     const void*         pNext;
10542     VkDisplayModeKHR    mode;
10543     uint32_t            planeIndex;
10544 } VkDisplayPlaneInfo2KHR;
10545 
10546 typedef struct VkDisplayPlaneCapabilities2KHR {
10547     VkStructureType                  sType;
10548     void*                            pNext;
10549     VkDisplayPlaneCapabilitiesKHR    capabilities;
10550 } VkDisplayPlaneCapabilities2KHR;
10551 
10552 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
10553 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
10554 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
10555 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
10556 
10557 #ifndef VK_NO_PROTOTYPES
10558 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
10559     VkPhysicalDevice                            physicalDevice,
10560     uint32_t*                                   pPropertyCount,
10561     VkDisplayProperties2KHR*                    pProperties);
10562 
10563 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
10564     VkPhysicalDevice                            physicalDevice,
10565     uint32_t*                                   pPropertyCount,
10566     VkDisplayPlaneProperties2KHR*               pProperties);
10567 
10568 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
10569     VkPhysicalDevice                            physicalDevice,
10570     VkDisplayKHR                                display,
10571     uint32_t*                                   pPropertyCount,
10572     VkDisplayModeProperties2KHR*                pProperties);
10573 
10574 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
10575     VkPhysicalDevice                            physicalDevice,
10576     const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
10577     VkDisplayPlaneCapabilities2KHR*             pCapabilities);
10578 #endif
10579 
10580 
10581 // VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
10582 #define VK_KHR_dedicated_allocation 1
10583 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
10584 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
10585 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
10586 
10587 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
10588 
10589 
10590 
10591 // VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
10592 #define VK_KHR_storage_buffer_storage_class 1
10593 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
10594 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
10595 
10596 
10597 // VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
10598 #define VK_KHR_relaxed_block_layout 1
10599 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
10600 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
10601 
10602 
10603 // VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
10604 #define VK_KHR_get_memory_requirements2 1
10605 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
10606 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
10607 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
10608 
10609 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
10610 
10611 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
10612 
10613 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
10614 
10615 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
10616 
10617 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
10618 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
10619 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
10620 
10621 #ifndef VK_NO_PROTOTYPES
10622 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
10623     VkDevice                                    device,
10624     const VkImageMemoryRequirementsInfo2*       pInfo,
10625     VkMemoryRequirements2*                      pMemoryRequirements);
10626 
10627 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
10628     VkDevice                                    device,
10629     const VkBufferMemoryRequirementsInfo2*      pInfo,
10630     VkMemoryRequirements2*                      pMemoryRequirements);
10631 
10632 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
10633     VkDevice                                    device,
10634     const VkImageSparseMemoryRequirementsInfo2* pInfo,
10635     uint32_t*                                   pSparseMemoryRequirementCount,
10636     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
10637 #endif
10638 
10639 
10640 // VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
10641 #define VK_KHR_image_format_list 1
10642 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
10643 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
10644 typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
10645 
10646 
10647 
10648 // VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
10649 #define VK_KHR_sampler_ycbcr_conversion 1
10650 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
10651 
10652 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
10653 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
10654 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
10655 
10656 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
10657 
10658 typedef VkChromaLocation VkChromaLocationKHR;
10659 
10660 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
10661 
10662 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
10663 
10664 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
10665 
10666 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
10667 
10668 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
10669 
10670 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
10671 
10672 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
10673 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
10674 
10675 #ifndef VK_NO_PROTOTYPES
10676 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
10677     VkDevice                                    device,
10678     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
10679     const VkAllocationCallbacks*                pAllocator,
10680     VkSamplerYcbcrConversion*                   pYcbcrConversion);
10681 
10682 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
10683     VkDevice                                    device,
10684     VkSamplerYcbcrConversion                    ycbcrConversion,
10685     const VkAllocationCallbacks*                pAllocator);
10686 #endif
10687 
10688 
10689 // VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
10690 #define VK_KHR_bind_memory2 1
10691 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
10692 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
10693 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
10694 
10695 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
10696 
10697 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
10698 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
10699 
10700 #ifndef VK_NO_PROTOTYPES
10701 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
10702     VkDevice                                    device,
10703     uint32_t                                    bindInfoCount,
10704     const VkBindBufferMemoryInfo*               pBindInfos);
10705 
10706 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
10707     VkDevice                                    device,
10708     uint32_t                                    bindInfoCount,
10709     const VkBindImageMemoryInfo*                pBindInfos);
10710 #endif
10711 
10712 
10713 // VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
10714 #define VK_KHR_maintenance3 1
10715 #define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
10716 #define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
10717 // VK_KHR_MAINTENANCE3_SPEC_VERSION is a deprecated alias
10718 #define VK_KHR_MAINTENANCE3_SPEC_VERSION  VK_KHR_MAINTENANCE_3_SPEC_VERSION
10719 // VK_KHR_MAINTENANCE3_EXTENSION_NAME is a deprecated alias
10720 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
10721 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
10722 
10723 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
10724 
10725 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
10726 
10727 #ifndef VK_NO_PROTOTYPES
10728 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
10729     VkDevice                                    device,
10730     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
10731     VkDescriptorSetLayoutSupport*               pSupport);
10732 #endif
10733 
10734 
10735 // VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
10736 #define VK_KHR_draw_indirect_count 1
10737 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
10738 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
10739 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
10740 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
10741 
10742 #ifndef VK_NO_PROTOTYPES
10743 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
10744     VkCommandBuffer                             commandBuffer,
10745     VkBuffer                                    buffer,
10746     VkDeviceSize                                offset,
10747     VkBuffer                                    countBuffer,
10748     VkDeviceSize                                countBufferOffset,
10749     uint32_t                                    maxDrawCount,
10750     uint32_t                                    stride);
10751 
10752 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
10753     VkCommandBuffer                             commandBuffer,
10754     VkBuffer                                    buffer,
10755     VkDeviceSize                                offset,
10756     VkBuffer                                    countBuffer,
10757     VkDeviceSize                                countBufferOffset,
10758     uint32_t                                    maxDrawCount,
10759     uint32_t                                    stride);
10760 #endif
10761 
10762 
10763 // VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
10764 #define VK_KHR_shader_subgroup_extended_types 1
10765 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
10766 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
10767 typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
10768 
10769 
10770 
10771 // VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
10772 #define VK_KHR_8bit_storage 1
10773 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1
10774 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
10775 typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
10776 
10777 
10778 
10779 // VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
10780 #define VK_KHR_shader_atomic_int64 1
10781 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
10782 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
10783 typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
10784 
10785 
10786 
10787 // VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
10788 #define VK_KHR_shader_clock 1
10789 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION  1
10790 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
10791 typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
10792     VkStructureType    sType;
10793     void*              pNext;
10794     VkBool32           shaderSubgroupClock;
10795     VkBool32           shaderDeviceClock;
10796 } VkPhysicalDeviceShaderClockFeaturesKHR;
10797 
10798 
10799 
10800 // VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
10801 #define VK_KHR_video_decode_h265 1
10802 #include "vk_video/vulkan_video_codec_h265std_decode.h"
10803 #define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
10804 #define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
10805 typedef struct VkVideoDecodeH265ProfileInfoKHR {
10806     VkStructureType           sType;
10807     const void*               pNext;
10808     StdVideoH265ProfileIdc    stdProfileIdc;
10809 } VkVideoDecodeH265ProfileInfoKHR;
10810 
10811 typedef struct VkVideoDecodeH265CapabilitiesKHR {
10812     VkStructureType         sType;
10813     void*                   pNext;
10814     StdVideoH265LevelIdc    maxLevelIdc;
10815 } VkVideoDecodeH265CapabilitiesKHR;
10816 
10817 typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
10818     VkStructureType                            sType;
10819     const void*                                pNext;
10820     uint32_t                                   stdVPSCount;
10821     const StdVideoH265VideoParameterSet*       pStdVPSs;
10822     uint32_t                                   stdSPSCount;
10823     const StdVideoH265SequenceParameterSet*    pStdSPSs;
10824     uint32_t                                   stdPPSCount;
10825     const StdVideoH265PictureParameterSet*     pStdPPSs;
10826 } VkVideoDecodeH265SessionParametersAddInfoKHR;
10827 
10828 typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
10829     VkStructureType                                        sType;
10830     const void*                                            pNext;
10831     uint32_t                                               maxStdVPSCount;
10832     uint32_t                                               maxStdSPSCount;
10833     uint32_t                                               maxStdPPSCount;
10834     const VkVideoDecodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
10835 } VkVideoDecodeH265SessionParametersCreateInfoKHR;
10836 
10837 typedef struct VkVideoDecodeH265PictureInfoKHR {
10838     VkStructureType                         sType;
10839     const void*                             pNext;
10840     const StdVideoDecodeH265PictureInfo*    pStdPictureInfo;
10841     uint32_t                                sliceSegmentCount;
10842     const uint32_t*                         pSliceSegmentOffsets;
10843 } VkVideoDecodeH265PictureInfoKHR;
10844 
10845 typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
10846     VkStructureType                           sType;
10847     const void*                               pNext;
10848     const StdVideoDecodeH265ReferenceInfo*    pStdReferenceInfo;
10849 } VkVideoDecodeH265DpbSlotInfoKHR;
10850 
10851 
10852 
10853 // VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
10854 #define VK_KHR_global_priority 1
10855 #define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
10856 #define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
10857 #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR   VK_MAX_GLOBAL_PRIORITY_SIZE
10858 typedef VkQueueGlobalPriority VkQueueGlobalPriorityKHR;
10859 
10860 typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoKHR;
10861 
10862 typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
10863 
10864 typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesKHR;
10865 
10866 
10867 
10868 // VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
10869 #define VK_KHR_driver_properties 1
10870 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
10871 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
10872 #define VK_MAX_DRIVER_NAME_SIZE_KHR       VK_MAX_DRIVER_NAME_SIZE
10873 #define VK_MAX_DRIVER_INFO_SIZE_KHR       VK_MAX_DRIVER_INFO_SIZE
10874 typedef VkDriverId VkDriverIdKHR;
10875 
10876 typedef VkConformanceVersion VkConformanceVersionKHR;
10877 
10878 typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
10879 
10880 
10881 
10882 // VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
10883 #define VK_KHR_shader_float_controls 1
10884 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
10885 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
10886 typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
10887 
10888 typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
10889 
10890 
10891 
10892 // VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
10893 #define VK_KHR_depth_stencil_resolve 1
10894 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
10895 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
10896 typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
10897 
10898 typedef VkResolveModeFlags VkResolveModeFlagsKHR;
10899 
10900 typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
10901 
10902 typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
10903 
10904 
10905 
10906 // VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
10907 #define VK_KHR_swapchain_mutable_format 1
10908 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
10909 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
10910 
10911 
10912 // VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
10913 #define VK_KHR_timeline_semaphore 1
10914 #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
10915 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
10916 typedef VkSemaphoreType VkSemaphoreTypeKHR;
10917 
10918 typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
10919 
10920 typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
10921 
10922 typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
10923 
10924 typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
10925 
10926 typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
10927 
10928 typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
10929 
10930 typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
10931 
10932 typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
10933 
10934 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
10935 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
10936 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
10937 
10938 #ifndef VK_NO_PROTOTYPES
10939 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
10940     VkDevice                                    device,
10941     VkSemaphore                                 semaphore,
10942     uint64_t*                                   pValue);
10943 
10944 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
10945     VkDevice                                    device,
10946     const VkSemaphoreWaitInfo*                  pWaitInfo,
10947     uint64_t                                    timeout);
10948 
10949 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
10950     VkDevice                                    device,
10951     const VkSemaphoreSignalInfo*                pSignalInfo);
10952 #endif
10953 
10954 
10955 // VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
10956 #define VK_KHR_vulkan_memory_model 1
10957 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
10958 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
10959 typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
10960 
10961 
10962 
10963 // VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
10964 #define VK_KHR_shader_terminate_invocation 1
10965 #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
10966 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
10967 typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
10968 
10969 
10970 
10971 // VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
10972 #define VK_KHR_fragment_shading_rate 1
10973 #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
10974 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
10975 
10976 typedef enum VkFragmentShadingRateCombinerOpKHR {
10977     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
10978     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
10979     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
10980     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
10981     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
10982     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
10983 } VkFragmentShadingRateCombinerOpKHR;
10984 typedef struct VkFragmentShadingRateAttachmentInfoKHR {
10985     VkStructureType                  sType;
10986     const void*                      pNext;
10987     const VkAttachmentReference2*    pFragmentShadingRateAttachment;
10988     VkExtent2D                       shadingRateAttachmentTexelSize;
10989 } VkFragmentShadingRateAttachmentInfoKHR;
10990 
10991 typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
10992     VkStructureType                       sType;
10993     const void*                           pNext;
10994     VkExtent2D                            fragmentSize;
10995     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
10996 } VkPipelineFragmentShadingRateStateCreateInfoKHR;
10997 
10998 typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
10999     VkStructureType    sType;
11000     void*              pNext;
11001     VkBool32           pipelineFragmentShadingRate;
11002     VkBool32           primitiveFragmentShadingRate;
11003     VkBool32           attachmentFragmentShadingRate;
11004 } VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
11005 
11006 typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
11007     VkStructureType          sType;
11008     void*                    pNext;
11009     VkExtent2D               minFragmentShadingRateAttachmentTexelSize;
11010     VkExtent2D               maxFragmentShadingRateAttachmentTexelSize;
11011     uint32_t                 maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
11012     VkBool32                 primitiveFragmentShadingRateWithMultipleViewports;
11013     VkBool32                 layeredShadingRateAttachments;
11014     VkBool32                 fragmentShadingRateNonTrivialCombinerOps;
11015     VkExtent2D               maxFragmentSize;
11016     uint32_t                 maxFragmentSizeAspectRatio;
11017     uint32_t                 maxFragmentShadingRateCoverageSamples;
11018     VkSampleCountFlagBits    maxFragmentShadingRateRasterizationSamples;
11019     VkBool32                 fragmentShadingRateWithShaderDepthStencilWrites;
11020     VkBool32                 fragmentShadingRateWithSampleMask;
11021     VkBool32                 fragmentShadingRateWithShaderSampleMask;
11022     VkBool32                 fragmentShadingRateWithConservativeRasterization;
11023     VkBool32                 fragmentShadingRateWithFragmentShaderInterlock;
11024     VkBool32                 fragmentShadingRateWithCustomSampleLocations;
11025     VkBool32                 fragmentShadingRateStrictMultiplyCombiner;
11026 } VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
11027 
11028 typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
11029     VkStructureType       sType;
11030     void*                 pNext;
11031     VkSampleCountFlags    sampleCounts;
11032     VkExtent2D            fragmentSize;
11033 } VkPhysicalDeviceFragmentShadingRateKHR;
11034 
11035 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11036 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer           commandBuffer, const VkExtent2D*                           pFragmentSize, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
11037 
11038 #ifndef VK_NO_PROTOTYPES
11039 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
11040     VkPhysicalDevice                            physicalDevice,
11041     uint32_t*                                   pFragmentShadingRateCount,
11042     VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates);
11043 
11044 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
11045     VkCommandBuffer                             commandBuffer,
11046     const VkExtent2D*                           pFragmentSize,
11047     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
11048 #endif
11049 
11050 
11051 // VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
11052 #define VK_KHR_dynamic_rendering_local_read 1
11053 #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
11054 #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
11055 typedef VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
11056 
11057 typedef VkRenderingAttachmentLocationInfo VkRenderingAttachmentLocationInfoKHR;
11058 
11059 typedef VkRenderingInputAttachmentIndexInfo VkRenderingInputAttachmentIndexInfoKHR;
11060 
11061 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
11062 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11063 
11064 #ifndef VK_NO_PROTOTYPES
11065 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
11066     VkCommandBuffer                             commandBuffer,
11067     const VkRenderingAttachmentLocationInfo*    pLocationInfo);
11068 
11069 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
11070     VkCommandBuffer                             commandBuffer,
11071     const VkRenderingInputAttachmentIndexInfo*  pInputAttachmentIndexInfo);
11072 #endif
11073 
11074 
11075 // VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
11076 #define VK_KHR_shader_quad_control 1
11077 #define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
11078 #define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
11079 typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
11080     VkStructureType    sType;
11081     void*              pNext;
11082     VkBool32           shaderQuadControl;
11083 } VkPhysicalDeviceShaderQuadControlFeaturesKHR;
11084 
11085 
11086 
11087 // VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
11088 #define VK_KHR_spirv_1_4 1
11089 #define VK_KHR_SPIRV_1_4_SPEC_VERSION     1
11090 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME   "VK_KHR_spirv_1_4"
11091 
11092 
11093 // VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
11094 #define VK_KHR_surface_protected_capabilities 1
11095 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
11096 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
11097 typedef struct VkSurfaceProtectedCapabilitiesKHR {
11098     VkStructureType    sType;
11099     const void*        pNext;
11100     VkBool32           supportsProtected;
11101 } VkSurfaceProtectedCapabilitiesKHR;
11102 
11103 
11104 
11105 // VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
11106 #define VK_KHR_separate_depth_stencil_layouts 1
11107 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
11108 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
11109 typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
11110 
11111 typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
11112 
11113 typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
11114 
11115 
11116 
11117 // VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
11118 #define VK_KHR_present_wait 1
11119 #define VK_KHR_PRESENT_WAIT_SPEC_VERSION  1
11120 #define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
11121 typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
11122     VkStructureType    sType;
11123     void*              pNext;
11124     VkBool32           presentWait;
11125 } VkPhysicalDevicePresentWaitFeaturesKHR;
11126 
11127 typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
11128 
11129 #ifndef VK_NO_PROTOTYPES
11130 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
11131     VkDevice                                    device,
11132     VkSwapchainKHR                              swapchain,
11133     uint64_t                                    presentId,
11134     uint64_t                                    timeout);
11135 #endif
11136 
11137 
11138 // VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
11139 #define VK_KHR_uniform_buffer_standard_layout 1
11140 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
11141 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
11142 typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
11143 
11144 
11145 
11146 // VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
11147 #define VK_KHR_buffer_device_address 1
11148 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
11149 #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
11150 typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
11151 
11152 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
11153 
11154 typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
11155 
11156 typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
11157 
11158 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
11159 
11160 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11161 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11162 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11163 
11164 #ifndef VK_NO_PROTOTYPES
11165 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
11166     VkDevice                                    device,
11167     const VkBufferDeviceAddressInfo*            pInfo);
11168 
11169 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
11170     VkDevice                                    device,
11171     const VkBufferDeviceAddressInfo*            pInfo);
11172 
11173 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
11174     VkDevice                                    device,
11175     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11176 #endif
11177 
11178 
11179 // VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
11180 #define VK_KHR_deferred_host_operations 1
11181 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
11182 #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
11183 #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
11184 typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
11185 typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
11186 typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
11187 typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
11188 typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
11189 
11190 #ifndef VK_NO_PROTOTYPES
11191 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
11192     VkDevice                                    device,
11193     const VkAllocationCallbacks*                pAllocator,
11194     VkDeferredOperationKHR*                     pDeferredOperation);
11195 
11196 VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
11197     VkDevice                                    device,
11198     VkDeferredOperationKHR                      operation,
11199     const VkAllocationCallbacks*                pAllocator);
11200 
11201 VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
11202     VkDevice                                    device,
11203     VkDeferredOperationKHR                      operation);
11204 
11205 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
11206     VkDevice                                    device,
11207     VkDeferredOperationKHR                      operation);
11208 
11209 VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
11210     VkDevice                                    device,
11211     VkDeferredOperationKHR                      operation);
11212 #endif
11213 
11214 
11215 // VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
11216 #define VK_KHR_pipeline_executable_properties 1
11217 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
11218 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
11219 
11220 typedef enum VkPipelineExecutableStatisticFormatKHR {
11221     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
11222     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
11223     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
11224     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
11225     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
11226 } VkPipelineExecutableStatisticFormatKHR;
11227 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11228     VkStructureType    sType;
11229     void*              pNext;
11230     VkBool32           pipelineExecutableInfo;
11231 } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
11232 
11233 typedef struct VkPipelineInfoKHR {
11234     VkStructureType    sType;
11235     const void*        pNext;
11236     VkPipeline         pipeline;
11237 } VkPipelineInfoKHR;
11238 
11239 typedef struct VkPipelineExecutablePropertiesKHR {
11240     VkStructureType       sType;
11241     void*                 pNext;
11242     VkShaderStageFlags    stages;
11243     char                  name[VK_MAX_DESCRIPTION_SIZE];
11244     char                  description[VK_MAX_DESCRIPTION_SIZE];
11245     uint32_t              subgroupSize;
11246 } VkPipelineExecutablePropertiesKHR;
11247 
11248 typedef struct VkPipelineExecutableInfoKHR {
11249     VkStructureType    sType;
11250     const void*        pNext;
11251     VkPipeline         pipeline;
11252     uint32_t           executableIndex;
11253 } VkPipelineExecutableInfoKHR;
11254 
11255 typedef union VkPipelineExecutableStatisticValueKHR {
11256     VkBool32    b32;
11257     int64_t     i64;
11258     uint64_t    u64;
11259     double      f64;
11260 } VkPipelineExecutableStatisticValueKHR;
11261 
11262 typedef struct VkPipelineExecutableStatisticKHR {
11263     VkStructureType                           sType;
11264     void*                                     pNext;
11265     char                                      name[VK_MAX_DESCRIPTION_SIZE];
11266     char                                      description[VK_MAX_DESCRIPTION_SIZE];
11267     VkPipelineExecutableStatisticFormatKHR    format;
11268     VkPipelineExecutableStatisticValueKHR     value;
11269 } VkPipelineExecutableStatisticKHR;
11270 
11271 typedef struct VkPipelineExecutableInternalRepresentationKHR {
11272     VkStructureType    sType;
11273     void*              pNext;
11274     char               name[VK_MAX_DESCRIPTION_SIZE];
11275     char               description[VK_MAX_DESCRIPTION_SIZE];
11276     VkBool32           isText;
11277     size_t             dataSize;
11278     void*              pData;
11279 } VkPipelineExecutableInternalRepresentationKHR;
11280 
11281 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice                        device, const VkPipelineInfoKHR*        pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
11282 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
11283 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
11284 
11285 #ifndef VK_NO_PROTOTYPES
11286 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
11287     VkDevice                                    device,
11288     const VkPipelineInfoKHR*                    pPipelineInfo,
11289     uint32_t*                                   pExecutableCount,
11290     VkPipelineExecutablePropertiesKHR*          pProperties);
11291 
11292 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
11293     VkDevice                                    device,
11294     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
11295     uint32_t*                                   pStatisticCount,
11296     VkPipelineExecutableStatisticKHR*           pStatistics);
11297 
11298 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
11299     VkDevice                                    device,
11300     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
11301     uint32_t*                                   pInternalRepresentationCount,
11302     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
11303 #endif
11304 
11305 
11306 // VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
11307 #define VK_KHR_map_memory2 1
11308 #define VK_KHR_MAP_MEMORY_2_SPEC_VERSION  1
11309 #define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
11310 typedef VkMemoryUnmapFlagBits VkMemoryUnmapFlagBitsKHR;
11311 
11312 typedef VkMemoryUnmapFlags VkMemoryUnmapFlagsKHR;
11313 
11314 typedef VkMemoryMapInfo VkMemoryMapInfoKHR;
11315 
11316 typedef VkMemoryUnmapInfo VkMemoryUnmapInfoKHR;
11317 
11318 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
11319 typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
11320 
11321 #ifndef VK_NO_PROTOTYPES
11322 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
11323     VkDevice                                    device,
11324     const VkMemoryMapInfo*                      pMemoryMapInfo,
11325     void**                                      ppData);
11326 
11327 VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
11328     VkDevice                                    device,
11329     const VkMemoryUnmapInfo*                    pMemoryUnmapInfo);
11330 #endif
11331 
11332 
11333 // VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
11334 #define VK_KHR_shader_integer_dot_product 1
11335 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
11336 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
11337 typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
11338 
11339 typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
11340 
11341 
11342 
11343 // VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
11344 #define VK_KHR_pipeline_library 1
11345 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
11346 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
11347 typedef struct VkPipelineLibraryCreateInfoKHR {
11348     VkStructureType      sType;
11349     const void*          pNext;
11350     uint32_t             libraryCount;
11351     const VkPipeline*    pLibraries;
11352 } VkPipelineLibraryCreateInfoKHR;
11353 
11354 
11355 
11356 // VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
11357 #define VK_KHR_shader_non_semantic_info 1
11358 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
11359 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
11360 
11361 
11362 // VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
11363 #define VK_KHR_present_id 1
11364 #define VK_KHR_PRESENT_ID_SPEC_VERSION    1
11365 #define VK_KHR_PRESENT_ID_EXTENSION_NAME  "VK_KHR_present_id"
11366 typedef struct VkPresentIdKHR {
11367     VkStructureType    sType;
11368     const void*        pNext;
11369     uint32_t           swapchainCount;
11370     const uint64_t*    pPresentIds;
11371 } VkPresentIdKHR;
11372 
11373 typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
11374     VkStructureType    sType;
11375     void*              pNext;
11376     VkBool32           presentId;
11377 } VkPhysicalDevicePresentIdFeaturesKHR;
11378 
11379 
11380 
11381 // VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
11382 #define VK_KHR_video_encode_queue 1
11383 #define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
11384 #define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
11385 
11386 typedef enum VkVideoEncodeTuningModeKHR {
11387     VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
11388     VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
11389     VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
11390     VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
11391     VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
11392     VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
11393 } VkVideoEncodeTuningModeKHR;
11394 typedef VkFlags VkVideoEncodeFlagsKHR;
11395 
11396 typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
11397     VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
11398     VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
11399     VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11400 } VkVideoEncodeCapabilityFlagBitsKHR;
11401 typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
11402 
11403 typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
11404     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
11405     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
11406     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
11407     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
11408     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11409 } VkVideoEncodeRateControlModeFlagBitsKHR;
11410 typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
11411 
11412 typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
11413     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
11414     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
11415     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
11416     VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11417 } VkVideoEncodeFeedbackFlagBitsKHR;
11418 typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
11419 
11420 typedef enum VkVideoEncodeUsageFlagBitsKHR {
11421     VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
11422     VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
11423     VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
11424     VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
11425     VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
11426     VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11427 } VkVideoEncodeUsageFlagBitsKHR;
11428 typedef VkFlags VkVideoEncodeUsageFlagsKHR;
11429 
11430 typedef enum VkVideoEncodeContentFlagBitsKHR {
11431     VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
11432     VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
11433     VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
11434     VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
11435     VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11436 } VkVideoEncodeContentFlagBitsKHR;
11437 typedef VkFlags VkVideoEncodeContentFlagsKHR;
11438 typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
11439 typedef struct VkVideoEncodeInfoKHR {
11440     VkStructureType                       sType;
11441     const void*                           pNext;
11442     VkVideoEncodeFlagsKHR                 flags;
11443     VkBuffer                              dstBuffer;
11444     VkDeviceSize                          dstBufferOffset;
11445     VkDeviceSize                          dstBufferRange;
11446     VkVideoPictureResourceInfoKHR         srcPictureResource;
11447     const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
11448     uint32_t                              referenceSlotCount;
11449     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
11450     uint32_t                              precedingExternallyEncodedBytes;
11451 } VkVideoEncodeInfoKHR;
11452 
11453 typedef struct VkVideoEncodeCapabilitiesKHR {
11454     VkStructureType                         sType;
11455     void*                                   pNext;
11456     VkVideoEncodeCapabilityFlagsKHR         flags;
11457     VkVideoEncodeRateControlModeFlagsKHR    rateControlModes;
11458     uint32_t                                maxRateControlLayers;
11459     uint64_t                                maxBitrate;
11460     uint32_t                                maxQualityLevels;
11461     VkExtent2D                              encodeInputPictureGranularity;
11462     VkVideoEncodeFeedbackFlagsKHR           supportedEncodeFeedbackFlags;
11463 } VkVideoEncodeCapabilitiesKHR;
11464 
11465 typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
11466     VkStructureType                  sType;
11467     const void*                      pNext;
11468     VkVideoEncodeFeedbackFlagsKHR    encodeFeedbackFlags;
11469 } VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
11470 
11471 typedef struct VkVideoEncodeUsageInfoKHR {
11472     VkStructureType                 sType;
11473     const void*                     pNext;
11474     VkVideoEncodeUsageFlagsKHR      videoUsageHints;
11475     VkVideoEncodeContentFlagsKHR    videoContentHints;
11476     VkVideoEncodeTuningModeKHR      tuningMode;
11477 } VkVideoEncodeUsageInfoKHR;
11478 
11479 typedef struct VkVideoEncodeRateControlLayerInfoKHR {
11480     VkStructureType    sType;
11481     const void*        pNext;
11482     uint64_t           averageBitrate;
11483     uint64_t           maxBitrate;
11484     uint32_t           frameRateNumerator;
11485     uint32_t           frameRateDenominator;
11486 } VkVideoEncodeRateControlLayerInfoKHR;
11487 
11488 typedef struct VkVideoEncodeRateControlInfoKHR {
11489     VkStructureType                                sType;
11490     const void*                                    pNext;
11491     VkVideoEncodeRateControlFlagsKHR               flags;
11492     VkVideoEncodeRateControlModeFlagBitsKHR        rateControlMode;
11493     uint32_t                                       layerCount;
11494     const VkVideoEncodeRateControlLayerInfoKHR*    pLayers;
11495     uint32_t                                       virtualBufferSizeInMs;
11496     uint32_t                                       initialVirtualBufferSizeInMs;
11497 } VkVideoEncodeRateControlInfoKHR;
11498 
11499 typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
11500     VkStructureType                 sType;
11501     const void*                     pNext;
11502     const VkVideoProfileInfoKHR*    pVideoProfile;
11503     uint32_t                        qualityLevel;
11504 } VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
11505 
11506 typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
11507     VkStructureType                            sType;
11508     void*                                      pNext;
11509     VkVideoEncodeRateControlModeFlagBitsKHR    preferredRateControlMode;
11510     uint32_t                                   preferredRateControlLayerCount;
11511 } VkVideoEncodeQualityLevelPropertiesKHR;
11512 
11513 typedef struct VkVideoEncodeQualityLevelInfoKHR {
11514     VkStructureType    sType;
11515     const void*        pNext;
11516     uint32_t           qualityLevel;
11517 } VkVideoEncodeQualityLevelInfoKHR;
11518 
11519 typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
11520     VkStructureType                sType;
11521     const void*                    pNext;
11522     VkVideoSessionParametersKHR    videoSessionParameters;
11523 } VkVideoEncodeSessionParametersGetInfoKHR;
11524 
11525 typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
11526     VkStructureType    sType;
11527     void*              pNext;
11528     VkBool32           hasOverrides;
11529 } VkVideoEncodeSessionParametersFeedbackInfoKHR;
11530 
11531 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
11532 typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
11533 typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
11534 
11535 #ifndef VK_NO_PROTOTYPES
11536 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
11537     VkPhysicalDevice                            physicalDevice,
11538     const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
11539     VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties);
11540 
11541 VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
11542     VkDevice                                    device,
11543     const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
11544     VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
11545     size_t*                                     pDataSize,
11546     void*                                       pData);
11547 
11548 VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
11549     VkCommandBuffer                             commandBuffer,
11550     const VkVideoEncodeInfoKHR*                 pEncodeInfo);
11551 #endif
11552 
11553 
11554 // VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
11555 #define VK_KHR_synchronization2 1
11556 #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
11557 #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
11558 typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
11559 
11560 typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
11561 
11562 typedef VkAccessFlags2 VkAccessFlags2KHR;
11563 
11564 typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
11565 
11566 typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
11567 
11568 typedef VkSubmitFlags VkSubmitFlagsKHR;
11569 
11570 typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
11571 
11572 typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
11573 
11574 typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
11575 
11576 typedef VkDependencyInfo VkDependencyInfoKHR;
11577 
11578 typedef VkSubmitInfo2 VkSubmitInfo2KHR;
11579 
11580 typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
11581 
11582 typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
11583 
11584 typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
11585 
11586 typedef struct VkQueueFamilyCheckpointProperties2NV {
11587     VkStructureType          sType;
11588     void*                    pNext;
11589     VkPipelineStageFlags2    checkpointExecutionStageMask;
11590 } VkQueueFamilyCheckpointProperties2NV;
11591 
11592 typedef struct VkCheckpointData2NV {
11593     VkStructureType          sType;
11594     void*                    pNext;
11595     VkPipelineStageFlags2    stage;
11596     void*                    pCheckpointMarker;
11597 } VkCheckpointData2NV;
11598 
11599 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
11600 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
11601 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
11602 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
11603 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
11604 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
11605 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkBuffer                                            dstBuffer, VkDeviceSize                                        dstOffset, uint32_t                                            marker);
11606 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
11607 
11608 #ifndef VK_NO_PROTOTYPES
11609 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
11610     VkCommandBuffer                             commandBuffer,
11611     VkEvent                                     event,
11612     const VkDependencyInfo*                     pDependencyInfo);
11613 
11614 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
11615     VkCommandBuffer                             commandBuffer,
11616     VkEvent                                     event,
11617     VkPipelineStageFlags2                       stageMask);
11618 
11619 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
11620     VkCommandBuffer                             commandBuffer,
11621     uint32_t                                    eventCount,
11622     const VkEvent*                              pEvents,
11623     const VkDependencyInfo*                     pDependencyInfos);
11624 
11625 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
11626     VkCommandBuffer                             commandBuffer,
11627     const VkDependencyInfo*                     pDependencyInfo);
11628 
11629 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
11630     VkCommandBuffer                             commandBuffer,
11631     VkPipelineStageFlags2                       stage,
11632     VkQueryPool                                 queryPool,
11633     uint32_t                                    query);
11634 
11635 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
11636     VkQueue                                     queue,
11637     uint32_t                                    submitCount,
11638     const VkSubmitInfo2*                        pSubmits,
11639     VkFence                                     fence);
11640 
11641 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
11642     VkCommandBuffer                             commandBuffer,
11643     VkPipelineStageFlags2                       stage,
11644     VkBuffer                                    dstBuffer,
11645     VkDeviceSize                                dstOffset,
11646     uint32_t                                    marker);
11647 
11648 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
11649     VkQueue                                     queue,
11650     uint32_t*                                   pCheckpointDataCount,
11651     VkCheckpointData2NV*                        pCheckpointData);
11652 #endif
11653 
11654 
11655 // VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
11656 #define VK_KHR_fragment_shader_barycentric 1
11657 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
11658 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
11659 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
11660     VkStructureType    sType;
11661     void*              pNext;
11662     VkBool32           fragmentShaderBarycentric;
11663 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
11664 
11665 typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
11666     VkStructureType    sType;
11667     void*              pNext;
11668     VkBool32           triStripVertexOrderIndependentOfProvokingVertex;
11669 } VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
11670 
11671 
11672 
11673 // VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
11674 #define VK_KHR_shader_subgroup_uniform_control_flow 1
11675 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
11676 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
11677 typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
11678     VkStructureType    sType;
11679     void*              pNext;
11680     VkBool32           shaderSubgroupUniformControlFlow;
11681 } VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
11682 
11683 
11684 
11685 // VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
11686 #define VK_KHR_zero_initialize_workgroup_memory 1
11687 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
11688 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
11689 typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
11690 
11691 
11692 
11693 // VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
11694 #define VK_KHR_workgroup_memory_explicit_layout 1
11695 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
11696 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
11697 typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
11698     VkStructureType    sType;
11699     void*              pNext;
11700     VkBool32           workgroupMemoryExplicitLayout;
11701     VkBool32           workgroupMemoryExplicitLayoutScalarBlockLayout;
11702     VkBool32           workgroupMemoryExplicitLayout8BitAccess;
11703     VkBool32           workgroupMemoryExplicitLayout16BitAccess;
11704 } VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
11705 
11706 
11707 
11708 // VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
11709 #define VK_KHR_copy_commands2 1
11710 #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
11711 #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
11712 typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
11713 
11714 typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
11715 
11716 typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
11717 
11718 typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
11719 
11720 typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
11721 
11722 typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
11723 
11724 typedef VkBufferCopy2 VkBufferCopy2KHR;
11725 
11726 typedef VkImageCopy2 VkImageCopy2KHR;
11727 
11728 typedef VkImageBlit2 VkImageBlit2KHR;
11729 
11730 typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
11731 
11732 typedef VkImageResolve2 VkImageResolve2KHR;
11733 
11734 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
11735 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
11736 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
11737 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
11738 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
11739 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
11740 
11741 #ifndef VK_NO_PROTOTYPES
11742 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
11743     VkCommandBuffer                             commandBuffer,
11744     const VkCopyBufferInfo2*                    pCopyBufferInfo);
11745 
11746 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
11747     VkCommandBuffer                             commandBuffer,
11748     const VkCopyImageInfo2*                     pCopyImageInfo);
11749 
11750 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
11751     VkCommandBuffer                             commandBuffer,
11752     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
11753 
11754 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
11755     VkCommandBuffer                             commandBuffer,
11756     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
11757 
11758 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
11759     VkCommandBuffer                             commandBuffer,
11760     const VkBlitImageInfo2*                     pBlitImageInfo);
11761 
11762 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
11763     VkCommandBuffer                             commandBuffer,
11764     const VkResolveImageInfo2*                  pResolveImageInfo);
11765 #endif
11766 
11767 
11768 // VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
11769 #define VK_KHR_format_feature_flags2 1
11770 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
11771 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
11772 typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
11773 
11774 typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
11775 
11776 typedef VkFormatProperties3 VkFormatProperties3KHR;
11777 
11778 
11779 
11780 // VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
11781 #define VK_KHR_ray_tracing_maintenance1 1
11782 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
11783 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
11784 typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
11785     VkStructureType    sType;
11786     void*              pNext;
11787     VkBool32           rayTracingMaintenance1;
11788     VkBool32           rayTracingPipelineTraceRaysIndirect2;
11789 } VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
11790 
11791 typedef struct VkTraceRaysIndirectCommand2KHR {
11792     VkDeviceAddress    raygenShaderRecordAddress;
11793     VkDeviceSize       raygenShaderRecordSize;
11794     VkDeviceAddress    missShaderBindingTableAddress;
11795     VkDeviceSize       missShaderBindingTableSize;
11796     VkDeviceSize       missShaderBindingTableStride;
11797     VkDeviceAddress    hitShaderBindingTableAddress;
11798     VkDeviceSize       hitShaderBindingTableSize;
11799     VkDeviceSize       hitShaderBindingTableStride;
11800     VkDeviceAddress    callableShaderBindingTableAddress;
11801     VkDeviceSize       callableShaderBindingTableSize;
11802     VkDeviceSize       callableShaderBindingTableStride;
11803     uint32_t           width;
11804     uint32_t           height;
11805     uint32_t           depth;
11806 } VkTraceRaysIndirectCommand2KHR;
11807 
11808 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
11809 
11810 #ifndef VK_NO_PROTOTYPES
11811 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
11812     VkCommandBuffer                             commandBuffer,
11813     VkDeviceAddress                             indirectDeviceAddress);
11814 #endif
11815 
11816 
11817 // VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
11818 #define VK_KHR_portability_enumeration 1
11819 #define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
11820 #define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
11821 
11822 
11823 // VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
11824 #define VK_KHR_maintenance4 1
11825 #define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
11826 #define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
11827 typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
11828 
11829 typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
11830 
11831 typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
11832 
11833 typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
11834 
11835 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11836 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11837 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11838 
11839 #ifndef VK_NO_PROTOTYPES
11840 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
11841     VkDevice                                    device,
11842     const VkDeviceBufferMemoryRequirements*     pInfo,
11843     VkMemoryRequirements2*                      pMemoryRequirements);
11844 
11845 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
11846     VkDevice                                    device,
11847     const VkDeviceImageMemoryRequirements*      pInfo,
11848     VkMemoryRequirements2*                      pMemoryRequirements);
11849 
11850 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
11851     VkDevice                                    device,
11852     const VkDeviceImageMemoryRequirements*      pInfo,
11853     uint32_t*                                   pSparseMemoryRequirementCount,
11854     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
11855 #endif
11856 
11857 
11858 // VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
11859 #define VK_KHR_shader_subgroup_rotate 1
11860 #define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
11861 #define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
11862 typedef VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
11863 
11864 
11865 
11866 // VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
11867 #define VK_KHR_shader_maximal_reconvergence 1
11868 #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
11869 #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
11870 typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
11871     VkStructureType    sType;
11872     void*              pNext;
11873     VkBool32           shaderMaximalReconvergence;
11874 } VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
11875 
11876 
11877 
11878 // VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
11879 #define VK_KHR_maintenance5 1
11880 #define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
11881 #define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
11882 typedef VkPipelineCreateFlags2 VkPipelineCreateFlags2KHR;
11883 
11884 typedef VkPipelineCreateFlagBits2 VkPipelineCreateFlagBits2KHR;
11885 
11886 typedef VkBufferUsageFlags2 VkBufferUsageFlags2KHR;
11887 
11888 typedef VkBufferUsageFlagBits2 VkBufferUsageFlagBits2KHR;
11889 
11890 typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR;
11891 
11892 typedef VkPhysicalDeviceMaintenance5Properties VkPhysicalDeviceMaintenance5PropertiesKHR;
11893 
11894 typedef VkRenderingAreaInfo VkRenderingAreaInfoKHR;
11895 
11896 typedef VkDeviceImageSubresourceInfo VkDeviceImageSubresourceInfoKHR;
11897 
11898 typedef VkImageSubresource2 VkImageSubresource2KHR;
11899 
11900 typedef VkSubresourceLayout2 VkSubresourceLayout2KHR;
11901 
11902 typedef VkPipelineCreateFlags2CreateInfo VkPipelineCreateFlags2CreateInfoKHR;
11903 
11904 typedef VkBufferUsageFlags2CreateInfo VkBufferUsageFlags2CreateInfoKHR;
11905 
11906 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
11907 typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
11908 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
11909 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
11910 
11911 #ifndef VK_NO_PROTOTYPES
11912 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
11913     VkCommandBuffer                             commandBuffer,
11914     VkBuffer                                    buffer,
11915     VkDeviceSize                                offset,
11916     VkDeviceSize                                size,
11917     VkIndexType                                 indexType);
11918 
11919 VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
11920     VkDevice                                    device,
11921     const VkRenderingAreaInfo*                  pRenderingAreaInfo,
11922     VkExtent2D*                                 pGranularity);
11923 
11924 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
11925     VkDevice                                    device,
11926     const VkDeviceImageSubresourceInfo*         pInfo,
11927     VkSubresourceLayout2*                       pLayout);
11928 
11929 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
11930     VkDevice                                    device,
11931     VkImage                                     image,
11932     const VkImageSubresource2*                  pSubresource,
11933     VkSubresourceLayout2*                       pLayout);
11934 #endif
11935 
11936 
11937 // VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
11938 #define VK_KHR_ray_tracing_position_fetch 1
11939 #define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
11940 #define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
11941 typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
11942     VkStructureType    sType;
11943     void*              pNext;
11944     VkBool32           rayTracingPositionFetch;
11945 } VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
11946 
11947 
11948 
11949 // VK_KHR_pipeline_binary is a preprocessor guard. Do not pass it to API calls.
11950 #define VK_KHR_pipeline_binary 1
11951 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineBinaryKHR)
11952 #define VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR 32U
11953 #define VK_KHR_PIPELINE_BINARY_SPEC_VERSION 1
11954 #define VK_KHR_PIPELINE_BINARY_EXTENSION_NAME "VK_KHR_pipeline_binary"
11955 typedef struct VkPhysicalDevicePipelineBinaryFeaturesKHR {
11956     VkStructureType    sType;
11957     void*              pNext;
11958     VkBool32           pipelineBinaries;
11959 } VkPhysicalDevicePipelineBinaryFeaturesKHR;
11960 
11961 typedef struct VkPhysicalDevicePipelineBinaryPropertiesKHR {
11962     VkStructureType    sType;
11963     void*              pNext;
11964     VkBool32           pipelineBinaryInternalCache;
11965     VkBool32           pipelineBinaryInternalCacheControl;
11966     VkBool32           pipelineBinaryPrefersInternalCache;
11967     VkBool32           pipelineBinaryPrecompiledInternalCache;
11968     VkBool32           pipelineBinaryCompressedData;
11969 } VkPhysicalDevicePipelineBinaryPropertiesKHR;
11970 
11971 typedef struct VkDevicePipelineBinaryInternalCacheControlKHR {
11972     VkStructureType    sType;
11973     const void*        pNext;
11974     VkBool32           disableInternalCache;
11975 } VkDevicePipelineBinaryInternalCacheControlKHR;
11976 
11977 typedef struct VkPipelineBinaryKeyKHR {
11978     VkStructureType    sType;
11979     void*              pNext;
11980     uint32_t           keySize;
11981     uint8_t            key[VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR];
11982 } VkPipelineBinaryKeyKHR;
11983 
11984 typedef struct VkPipelineBinaryDataKHR {
11985     size_t    dataSize;
11986     void*     pData;
11987 } VkPipelineBinaryDataKHR;
11988 
11989 typedef struct VkPipelineBinaryKeysAndDataKHR {
11990     uint32_t                          binaryCount;
11991     const VkPipelineBinaryKeyKHR*     pPipelineBinaryKeys;
11992     const VkPipelineBinaryDataKHR*    pPipelineBinaryData;
11993 } VkPipelineBinaryKeysAndDataKHR;
11994 
11995 typedef struct VkPipelineCreateInfoKHR {
11996     VkStructureType    sType;
11997     void*              pNext;
11998 } VkPipelineCreateInfoKHR;
11999 
12000 typedef struct VkPipelineBinaryCreateInfoKHR {
12001     VkStructureType                          sType;
12002     const void*                              pNext;
12003     const VkPipelineBinaryKeysAndDataKHR*    pKeysAndDataInfo;
12004     VkPipeline                               pipeline;
12005     const VkPipelineCreateInfoKHR*           pPipelineCreateInfo;
12006 } VkPipelineBinaryCreateInfoKHR;
12007 
12008 typedef struct VkPipelineBinaryInfoKHR {
12009     VkStructureType               sType;
12010     const void*                   pNext;
12011     uint32_t                      binaryCount;
12012     const VkPipelineBinaryKHR*    pPipelineBinaries;
12013 } VkPipelineBinaryInfoKHR;
12014 
12015 typedef struct VkReleaseCapturedPipelineDataInfoKHR {
12016     VkStructureType    sType;
12017     void*              pNext;
12018     VkPipeline         pipeline;
12019 } VkReleaseCapturedPipelineDataInfoKHR;
12020 
12021 typedef struct VkPipelineBinaryDataInfoKHR {
12022     VkStructureType        sType;
12023     void*                  pNext;
12024     VkPipelineBinaryKHR    pipelineBinary;
12025 } VkPipelineBinaryDataInfoKHR;
12026 
12027 typedef struct VkPipelineBinaryHandlesInfoKHR {
12028     VkStructureType         sType;
12029     const void*             pNext;
12030     uint32_t                pipelineBinaryCount;
12031     VkPipelineBinaryKHR*    pPipelineBinaries;
12032 } VkPipelineBinaryHandlesInfoKHR;
12033 
12034 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineBinariesKHR)(VkDevice device, const VkPipelineBinaryCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineBinaryHandlesInfoKHR* pBinaries);
12035 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineBinaryKHR)(VkDevice device, VkPipelineBinaryKHR pipelineBinary, const VkAllocationCallbacks* pAllocator);
12036 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineKeyKHR)(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey);
12037 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineBinaryDataKHR)(VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData);
12038 typedef VkResult (VKAPI_PTR *PFN_vkReleaseCapturedPipelineDataKHR)(VkDevice device, const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator);
12039 
12040 #ifndef VK_NO_PROTOTYPES
12041 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineBinariesKHR(
12042     VkDevice                                    device,
12043     const VkPipelineBinaryCreateInfoKHR*        pCreateInfo,
12044     const VkAllocationCallbacks*                pAllocator,
12045     VkPipelineBinaryHandlesInfoKHR*             pBinaries);
12046 
12047 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineBinaryKHR(
12048     VkDevice                                    device,
12049     VkPipelineBinaryKHR                         pipelineBinary,
12050     const VkAllocationCallbacks*                pAllocator);
12051 
12052 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineKeyKHR(
12053     VkDevice                                    device,
12054     const VkPipelineCreateInfoKHR*              pPipelineCreateInfo,
12055     VkPipelineBinaryKeyKHR*                     pPipelineKey);
12056 
12057 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineBinaryDataKHR(
12058     VkDevice                                    device,
12059     const VkPipelineBinaryDataInfoKHR*          pInfo,
12060     VkPipelineBinaryKeyKHR*                     pPipelineBinaryKey,
12061     size_t*                                     pPipelineBinaryDataSize,
12062     void*                                       pPipelineBinaryData);
12063 
12064 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseCapturedPipelineDataKHR(
12065     VkDevice                                    device,
12066     const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
12067     const VkAllocationCallbacks*                pAllocator);
12068 #endif
12069 
12070 
12071 // VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
12072 #define VK_KHR_cooperative_matrix 1
12073 #define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
12074 #define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
12075 
12076 typedef enum VkComponentTypeKHR {
12077     VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
12078     VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
12079     VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
12080     VK_COMPONENT_TYPE_SINT8_KHR = 3,
12081     VK_COMPONENT_TYPE_SINT16_KHR = 4,
12082     VK_COMPONENT_TYPE_SINT32_KHR = 5,
12083     VK_COMPONENT_TYPE_SINT64_KHR = 6,
12084     VK_COMPONENT_TYPE_UINT8_KHR = 7,
12085     VK_COMPONENT_TYPE_UINT16_KHR = 8,
12086     VK_COMPONENT_TYPE_UINT32_KHR = 9,
12087     VK_COMPONENT_TYPE_UINT64_KHR = 10,
12088     VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
12089     VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
12090     VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
12091     VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
12092     VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
12093     VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
12094     VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
12095     VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
12096     VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
12097     VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
12098     VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
12099     VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
12100 } VkComponentTypeKHR;
12101 
12102 typedef enum VkScopeKHR {
12103     VK_SCOPE_DEVICE_KHR = 1,
12104     VK_SCOPE_WORKGROUP_KHR = 2,
12105     VK_SCOPE_SUBGROUP_KHR = 3,
12106     VK_SCOPE_QUEUE_FAMILY_KHR = 5,
12107     VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
12108     VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
12109     VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
12110     VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
12111     VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
12112 } VkScopeKHR;
12113 typedef struct VkCooperativeMatrixPropertiesKHR {
12114     VkStructureType       sType;
12115     void*                 pNext;
12116     uint32_t              MSize;
12117     uint32_t              NSize;
12118     uint32_t              KSize;
12119     VkComponentTypeKHR    AType;
12120     VkComponentTypeKHR    BType;
12121     VkComponentTypeKHR    CType;
12122     VkComponentTypeKHR    ResultType;
12123     VkBool32              saturatingAccumulation;
12124     VkScopeKHR            scope;
12125 } VkCooperativeMatrixPropertiesKHR;
12126 
12127 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
12128     VkStructureType    sType;
12129     void*              pNext;
12130     VkBool32           cooperativeMatrix;
12131     VkBool32           cooperativeMatrixRobustBufferAccess;
12132 } VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
12133 
12134 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
12135     VkStructureType       sType;
12136     void*                 pNext;
12137     VkShaderStageFlags    cooperativeMatrixSupportedStages;
12138 } VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
12139 
12140 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
12141 
12142 #ifndef VK_NO_PROTOTYPES
12143 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
12144     VkPhysicalDevice                            physicalDevice,
12145     uint32_t*                                   pPropertyCount,
12146     VkCooperativeMatrixPropertiesKHR*           pProperties);
12147 #endif
12148 
12149 
12150 // VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
12151 #define VK_KHR_video_decode_av1 1
12152 #include "vk_video/vulkan_video_codec_av1std.h"
12153 #include "vk_video/vulkan_video_codec_av1std_decode.h"
12154 #define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
12155 #define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
12156 #define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
12157 typedef struct VkVideoDecodeAV1ProfileInfoKHR {
12158     VkStructureType       sType;
12159     const void*           pNext;
12160     StdVideoAV1Profile    stdProfile;
12161     VkBool32              filmGrainSupport;
12162 } VkVideoDecodeAV1ProfileInfoKHR;
12163 
12164 typedef struct VkVideoDecodeAV1CapabilitiesKHR {
12165     VkStructureType     sType;
12166     void*               pNext;
12167     StdVideoAV1Level    maxLevel;
12168 } VkVideoDecodeAV1CapabilitiesKHR;
12169 
12170 typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
12171     VkStructureType                     sType;
12172     const void*                         pNext;
12173     const StdVideoAV1SequenceHeader*    pStdSequenceHeader;
12174 } VkVideoDecodeAV1SessionParametersCreateInfoKHR;
12175 
12176 typedef struct VkVideoDecodeAV1PictureInfoKHR {
12177     VkStructureType                        sType;
12178     const void*                            pNext;
12179     const StdVideoDecodeAV1PictureInfo*    pStdPictureInfo;
12180     int32_t                                referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
12181     uint32_t                               frameHeaderOffset;
12182     uint32_t                               tileCount;
12183     const uint32_t*                        pTileOffsets;
12184     const uint32_t*                        pTileSizes;
12185 } VkVideoDecodeAV1PictureInfoKHR;
12186 
12187 typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
12188     VkStructureType                          sType;
12189     const void*                              pNext;
12190     const StdVideoDecodeAV1ReferenceInfo*    pStdReferenceInfo;
12191 } VkVideoDecodeAV1DpbSlotInfoKHR;
12192 
12193 
12194 
12195 // VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12196 #define VK_KHR_video_maintenance1 1
12197 #define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
12198 #define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
12199 typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
12200     VkStructureType    sType;
12201     void*              pNext;
12202     VkBool32           videoMaintenance1;
12203 } VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
12204 
12205 typedef struct VkVideoInlineQueryInfoKHR {
12206     VkStructureType    sType;
12207     const void*        pNext;
12208     VkQueryPool        queryPool;
12209     uint32_t           firstQuery;
12210     uint32_t           queryCount;
12211 } VkVideoInlineQueryInfoKHR;
12212 
12213 
12214 
12215 // VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
12216 #define VK_KHR_vertex_attribute_divisor 1
12217 #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
12218 #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
12219 typedef VkPhysicalDeviceVertexAttributeDivisorProperties VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
12220 
12221 typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionKHR;
12222 
12223 typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoKHR;
12224 
12225 typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
12226 
12227 
12228 
12229 // VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
12230 #define VK_KHR_load_store_op_none 1
12231 #define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
12232 #define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
12233 
12234 
12235 // VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
12236 #define VK_KHR_shader_float_controls2 1
12237 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
12238 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
12239 typedef VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
12240 
12241 
12242 
12243 // VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
12244 #define VK_KHR_index_type_uint8 1
12245 #define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
12246 #define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
12247 typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
12248 
12249 
12250 
12251 // VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
12252 #define VK_KHR_line_rasterization 1
12253 #define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
12254 #define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
12255 typedef VkLineRasterizationMode VkLineRasterizationModeKHR;
12256 
12257 typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesKHR;
12258 
12259 typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesKHR;
12260 
12261 typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoKHR;
12262 
12263 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
12264 
12265 #ifndef VK_NO_PROTOTYPES
12266 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
12267     VkCommandBuffer                             commandBuffer,
12268     uint32_t                                    lineStippleFactor,
12269     uint16_t                                    lineStipplePattern);
12270 #endif
12271 
12272 
12273 // VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
12274 #define VK_KHR_calibrated_timestamps 1
12275 #define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
12276 #define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
12277 
12278 typedef enum VkTimeDomainKHR {
12279     VK_TIME_DOMAIN_DEVICE_KHR = 0,
12280     VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
12281     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
12282     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
12283     VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
12284     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
12285     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
12286     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
12287     VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
12288 } VkTimeDomainKHR;
12289 typedef struct VkCalibratedTimestampInfoKHR {
12290     VkStructureType    sType;
12291     const void*        pNext;
12292     VkTimeDomainKHR    timeDomain;
12293 } VkCalibratedTimestampInfoKHR;
12294 
12295 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
12296 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
12297 
12298 #ifndef VK_NO_PROTOTYPES
12299 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
12300     VkPhysicalDevice                            physicalDevice,
12301     uint32_t*                                   pTimeDomainCount,
12302     VkTimeDomainKHR*                            pTimeDomains);
12303 
12304 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
12305     VkDevice                                    device,
12306     uint32_t                                    timestampCount,
12307     const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
12308     uint64_t*                                   pTimestamps,
12309     uint64_t*                                   pMaxDeviation);
12310 #endif
12311 
12312 
12313 // VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
12314 #define VK_KHR_shader_expect_assume 1
12315 #define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
12316 #define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
12317 typedef VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
12318 
12319 
12320 
12321 // VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
12322 #define VK_KHR_maintenance6 1
12323 #define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
12324 #define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
12325 typedef VkPhysicalDeviceMaintenance6Features VkPhysicalDeviceMaintenance6FeaturesKHR;
12326 
12327 typedef VkPhysicalDeviceMaintenance6Properties VkPhysicalDeviceMaintenance6PropertiesKHR;
12328 
12329 typedef VkBindMemoryStatus VkBindMemoryStatusKHR;
12330 
12331 typedef VkBindDescriptorSetsInfo VkBindDescriptorSetsInfoKHR;
12332 
12333 typedef VkPushConstantsInfo VkPushConstantsInfoKHR;
12334 
12335 typedef VkPushDescriptorSetInfo VkPushDescriptorSetInfoKHR;
12336 
12337 typedef VkPushDescriptorSetWithTemplateInfo VkPushDescriptorSetWithTemplateInfoKHR;
12338 
12339 typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
12340     VkStructureType        sType;
12341     const void*            pNext;
12342     VkShaderStageFlags     stageFlags;
12343     VkPipelineLayout       layout;
12344     uint32_t               firstSet;
12345     uint32_t               setCount;
12346     const uint32_t*        pBufferIndices;
12347     const VkDeviceSize*    pOffsets;
12348 } VkSetDescriptorBufferOffsetsInfoEXT;
12349 
12350 typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
12351     VkStructureType       sType;
12352     const void*           pNext;
12353     VkShaderStageFlags    stageFlags;
12354     VkPipelineLayout      layout;
12355     uint32_t              set;
12356 } VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
12357 
12358 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo*   pBindDescriptorSetsInfo);
12359 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo*        pPushConstantsInfo);
12360 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo*    pPushDescriptorSetInfo);
12361 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
12362 typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
12363 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
12364 
12365 #ifndef VK_NO_PROTOTYPES
12366 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
12367     VkCommandBuffer                             commandBuffer,
12368     const VkBindDescriptorSetsInfo*             pBindDescriptorSetsInfo);
12369 
12370 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
12371     VkCommandBuffer                             commandBuffer,
12372     const VkPushConstantsInfo*                  pPushConstantsInfo);
12373 
12374 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
12375     VkCommandBuffer                             commandBuffer,
12376     const VkPushDescriptorSetInfo*              pPushDescriptorSetInfo);
12377 
12378 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
12379     VkCommandBuffer                             commandBuffer,
12380     const VkPushDescriptorSetWithTemplateInfo*  pPushDescriptorSetWithTemplateInfo);
12381 
12382 VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
12383     VkCommandBuffer                             commandBuffer,
12384     const VkSetDescriptorBufferOffsetsInfoEXT*  pSetDescriptorBufferOffsetsInfo);
12385 
12386 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
12387     VkCommandBuffer                             commandBuffer,
12388     const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
12389 #endif
12390 
12391 
12392 // VK_KHR_shader_relaxed_extended_instruction is a preprocessor guard. Do not pass it to API calls.
12393 #define VK_KHR_shader_relaxed_extended_instruction 1
12394 #define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION 1
12395 #define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME "VK_KHR_shader_relaxed_extended_instruction"
12396 typedef struct VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
12397     VkStructureType    sType;
12398     void*              pNext;
12399     VkBool32           shaderRelaxedExtendedInstruction;
12400 } VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR;
12401 
12402 
12403 
12404 // VK_KHR_maintenance7 is a preprocessor guard. Do not pass it to API calls.
12405 #define VK_KHR_maintenance7 1
12406 #define VK_KHR_MAINTENANCE_7_SPEC_VERSION 1
12407 #define VK_KHR_MAINTENANCE_7_EXTENSION_NAME "VK_KHR_maintenance7"
12408 
12409 typedef enum VkPhysicalDeviceLayeredApiKHR {
12410     VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = 0,
12411     VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = 1,
12412     VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = 2,
12413     VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = 3,
12414     VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = 4,
12415     VK_PHYSICAL_DEVICE_LAYERED_API_MAX_ENUM_KHR = 0x7FFFFFFF
12416 } VkPhysicalDeviceLayeredApiKHR;
12417 typedef struct VkPhysicalDeviceMaintenance7FeaturesKHR {
12418     VkStructureType    sType;
12419     void*              pNext;
12420     VkBool32           maintenance7;
12421 } VkPhysicalDeviceMaintenance7FeaturesKHR;
12422 
12423 typedef struct VkPhysicalDeviceMaintenance7PropertiesKHR {
12424     VkStructureType    sType;
12425     void*              pNext;
12426     VkBool32           robustFragmentShadingRateAttachmentAccess;
12427     VkBool32           separateDepthStencilAttachmentAccess;
12428     uint32_t           maxDescriptorSetTotalUniformBuffersDynamic;
12429     uint32_t           maxDescriptorSetTotalStorageBuffersDynamic;
12430     uint32_t           maxDescriptorSetTotalBuffersDynamic;
12431     uint32_t           maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic;
12432     uint32_t           maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic;
12433     uint32_t           maxDescriptorSetUpdateAfterBindTotalBuffersDynamic;
12434 } VkPhysicalDeviceMaintenance7PropertiesKHR;
12435 
12436 typedef struct VkPhysicalDeviceLayeredApiPropertiesKHR {
12437     VkStructureType                  sType;
12438     void*                            pNext;
12439     uint32_t                         vendorID;
12440     uint32_t                         deviceID;
12441     VkPhysicalDeviceLayeredApiKHR    layeredAPI;
12442     char                             deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
12443 } VkPhysicalDeviceLayeredApiPropertiesKHR;
12444 
12445 typedef struct VkPhysicalDeviceLayeredApiPropertiesListKHR {
12446     VkStructureType                             sType;
12447     void*                                       pNext;
12448     uint32_t                                    layeredApiCount;
12449     VkPhysicalDeviceLayeredApiPropertiesKHR*    pLayeredApis;
12450 } VkPhysicalDeviceLayeredApiPropertiesListKHR;
12451 
12452 typedef struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR {
12453     VkStructureType                sType;
12454     void*                          pNext;
12455     VkPhysicalDeviceProperties2    properties;
12456 } VkPhysicalDeviceLayeredApiVulkanPropertiesKHR;
12457 
12458 
12459 
12460 // VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
12461 #define VK_EXT_debug_report 1
12462 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
12463 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  10
12464 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
12465 
12466 typedef enum VkDebugReportObjectTypeEXT {
12467     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
12468     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
12469     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
12470     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
12471     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
12472     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
12473     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
12474     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
12475     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
12476     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
12477     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
12478     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
12479     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
12480     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
12481     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
12482     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
12483     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
12484     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
12485     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
12486     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
12487     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
12488     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
12489     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
12490     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
12491     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
12492     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
12493     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
12494     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
12495     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
12496     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
12497     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
12498     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
12499     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
12500     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
12501     VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
12502     VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
12503     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
12504     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
12505     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
12506     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
12507     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
12508   // VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT is a deprecated alias
12509     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
12510   // VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT is a deprecated alias
12511     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
12512     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
12513     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
12514     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
12515 } VkDebugReportObjectTypeEXT;
12516 
12517 typedef enum VkDebugReportFlagBitsEXT {
12518     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
12519     VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
12520     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
12521     VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
12522     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
12523     VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12524 } VkDebugReportFlagBitsEXT;
12525 typedef VkFlags VkDebugReportFlagsEXT;
12526 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
12527     VkDebugReportFlagsEXT                       flags,
12528     VkDebugReportObjectTypeEXT                  objectType,
12529     uint64_t                                    object,
12530     size_t                                      location,
12531     int32_t                                     messageCode,
12532     const char*                                 pLayerPrefix,
12533     const char*                                 pMessage,
12534     void*                                       pUserData);
12535 
12536 typedef struct VkDebugReportCallbackCreateInfoEXT {
12537     VkStructureType                 sType;
12538     const void*                     pNext;
12539     VkDebugReportFlagsEXT           flags;
12540     PFN_vkDebugReportCallbackEXT    pfnCallback;
12541     void*                           pUserData;
12542 } VkDebugReportCallbackCreateInfoEXT;
12543 
12544 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
12545 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
12546 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);
12547 
12548 #ifndef VK_NO_PROTOTYPES
12549 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
12550     VkInstance                                  instance,
12551     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
12552     const VkAllocationCallbacks*                pAllocator,
12553     VkDebugReportCallbackEXT*                   pCallback);
12554 
12555 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
12556     VkInstance                                  instance,
12557     VkDebugReportCallbackEXT                    callback,
12558     const VkAllocationCallbacks*                pAllocator);
12559 
12560 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
12561     VkInstance                                  instance,
12562     VkDebugReportFlagsEXT                       flags,
12563     VkDebugReportObjectTypeEXT                  objectType,
12564     uint64_t                                    object,
12565     size_t                                      location,
12566     int32_t                                     messageCode,
12567     const char*                                 pLayerPrefix,
12568     const char*                                 pMessage);
12569 #endif
12570 
12571 
12572 // VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
12573 #define VK_NV_glsl_shader 1
12574 #define VK_NV_GLSL_SHADER_SPEC_VERSION    1
12575 #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
12576 
12577 
12578 // VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
12579 #define VK_EXT_depth_range_unrestricted 1
12580 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
12581 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
12582 
12583 
12584 // VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
12585 #define VK_IMG_filter_cubic 1
12586 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
12587 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
12588 
12589 
12590 // VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
12591 #define VK_AMD_rasterization_order 1
12592 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
12593 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
12594 
12595 typedef enum VkRasterizationOrderAMD {
12596     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
12597     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
12598     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
12599 } VkRasterizationOrderAMD;
12600 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
12601     VkStructureType            sType;
12602     const void*                pNext;
12603     VkRasterizationOrderAMD    rasterizationOrder;
12604 } VkPipelineRasterizationStateRasterizationOrderAMD;
12605 
12606 
12607 
12608 // VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
12609 #define VK_AMD_shader_trinary_minmax 1
12610 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
12611 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
12612 
12613 
12614 // VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
12615 #define VK_AMD_shader_explicit_vertex_parameter 1
12616 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
12617 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
12618 
12619 
12620 // VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
12621 #define VK_EXT_debug_marker 1
12622 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
12623 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
12624 typedef struct VkDebugMarkerObjectNameInfoEXT {
12625     VkStructureType               sType;
12626     const void*                   pNext;
12627     VkDebugReportObjectTypeEXT    objectType;
12628     uint64_t                      object;
12629     const char*                   pObjectName;
12630 } VkDebugMarkerObjectNameInfoEXT;
12631 
12632 typedef struct VkDebugMarkerObjectTagInfoEXT {
12633     VkStructureType               sType;
12634     const void*                   pNext;
12635     VkDebugReportObjectTypeEXT    objectType;
12636     uint64_t                      object;
12637     uint64_t                      tagName;
12638     size_t                        tagSize;
12639     const void*                   pTag;
12640 } VkDebugMarkerObjectTagInfoEXT;
12641 
12642 typedef struct VkDebugMarkerMarkerInfoEXT {
12643     VkStructureType    sType;
12644     const void*        pNext;
12645     const char*        pMarkerName;
12646     float              color[4];
12647 } VkDebugMarkerMarkerInfoEXT;
12648 
12649 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
12650 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
12651 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
12652 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
12653 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
12654 
12655 #ifndef VK_NO_PROTOTYPES
12656 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
12657     VkDevice                                    device,
12658     const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
12659 
12660 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
12661     VkDevice                                    device,
12662     const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
12663 
12664 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
12665     VkCommandBuffer                             commandBuffer,
12666     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
12667 
12668 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
12669     VkCommandBuffer                             commandBuffer);
12670 
12671 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
12672     VkCommandBuffer                             commandBuffer,
12673     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
12674 #endif
12675 
12676 
12677 // VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
12678 #define VK_AMD_gcn_shader 1
12679 #define VK_AMD_GCN_SHADER_SPEC_VERSION    1
12680 #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
12681 
12682 
12683 // VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
12684 #define VK_NV_dedicated_allocation 1
12685 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
12686 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
12687 typedef struct VkDedicatedAllocationImageCreateInfoNV {
12688     VkStructureType    sType;
12689     const void*        pNext;
12690     VkBool32           dedicatedAllocation;
12691 } VkDedicatedAllocationImageCreateInfoNV;
12692 
12693 typedef struct VkDedicatedAllocationBufferCreateInfoNV {
12694     VkStructureType    sType;
12695     const void*        pNext;
12696     VkBool32           dedicatedAllocation;
12697 } VkDedicatedAllocationBufferCreateInfoNV;
12698 
12699 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
12700     VkStructureType    sType;
12701     const void*        pNext;
12702     VkImage            image;
12703     VkBuffer           buffer;
12704 } VkDedicatedAllocationMemoryAllocateInfoNV;
12705 
12706 
12707 
12708 // VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
12709 #define VK_EXT_transform_feedback 1
12710 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
12711 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
12712 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
12713 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
12714     VkStructureType    sType;
12715     void*              pNext;
12716     VkBool32           transformFeedback;
12717     VkBool32           geometryStreams;
12718 } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
12719 
12720 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
12721     VkStructureType    sType;
12722     void*              pNext;
12723     uint32_t           maxTransformFeedbackStreams;
12724     uint32_t           maxTransformFeedbackBuffers;
12725     VkDeviceSize       maxTransformFeedbackBufferSize;
12726     uint32_t           maxTransformFeedbackStreamDataSize;
12727     uint32_t           maxTransformFeedbackBufferDataSize;
12728     uint32_t           maxTransformFeedbackBufferDataStride;
12729     VkBool32           transformFeedbackQueries;
12730     VkBool32           transformFeedbackStreamsLinesTriangles;
12731     VkBool32           transformFeedbackRasterizationStreamSelect;
12732     VkBool32           transformFeedbackDraw;
12733 } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
12734 
12735 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
12736     VkStructureType                                     sType;
12737     const void*                                         pNext;
12738     VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
12739     uint32_t                                            rasterizationStream;
12740 } VkPipelineRasterizationStateStreamCreateInfoEXT;
12741 
12742 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
12743 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
12744 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
12745 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
12746 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
12747 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
12748 
12749 #ifndef VK_NO_PROTOTYPES
12750 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
12751     VkCommandBuffer                             commandBuffer,
12752     uint32_t                                    firstBinding,
12753     uint32_t                                    bindingCount,
12754     const VkBuffer*                             pBuffers,
12755     const VkDeviceSize*                         pOffsets,
12756     const VkDeviceSize*                         pSizes);
12757 
12758 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
12759     VkCommandBuffer                             commandBuffer,
12760     uint32_t                                    firstCounterBuffer,
12761     uint32_t                                    counterBufferCount,
12762     const VkBuffer*                             pCounterBuffers,
12763     const VkDeviceSize*                         pCounterBufferOffsets);
12764 
12765 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
12766     VkCommandBuffer                             commandBuffer,
12767     uint32_t                                    firstCounterBuffer,
12768     uint32_t                                    counterBufferCount,
12769     const VkBuffer*                             pCounterBuffers,
12770     const VkDeviceSize*                         pCounterBufferOffsets);
12771 
12772 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
12773     VkCommandBuffer                             commandBuffer,
12774     VkQueryPool                                 queryPool,
12775     uint32_t                                    query,
12776     VkQueryControlFlags                         flags,
12777     uint32_t                                    index);
12778 
12779 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
12780     VkCommandBuffer                             commandBuffer,
12781     VkQueryPool                                 queryPool,
12782     uint32_t                                    query,
12783     uint32_t                                    index);
12784 
12785 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
12786     VkCommandBuffer                             commandBuffer,
12787     uint32_t                                    instanceCount,
12788     uint32_t                                    firstInstance,
12789     VkBuffer                                    counterBuffer,
12790     VkDeviceSize                                counterBufferOffset,
12791     uint32_t                                    counterOffset,
12792     uint32_t                                    vertexStride);
12793 #endif
12794 
12795 
12796 // VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
12797 #define VK_NVX_binary_import 1
12798 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
12799 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
12800 #define VK_NVX_BINARY_IMPORT_SPEC_VERSION 1
12801 #define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
12802 typedef struct VkCuModuleCreateInfoNVX {
12803     VkStructureType    sType;
12804     const void*        pNext;
12805     size_t             dataSize;
12806     const void*        pData;
12807 } VkCuModuleCreateInfoNVX;
12808 
12809 typedef struct VkCuFunctionCreateInfoNVX {
12810     VkStructureType    sType;
12811     const void*        pNext;
12812     VkCuModuleNVX      module;
12813     const char*        pName;
12814 } VkCuFunctionCreateInfoNVX;
12815 
12816 typedef struct VkCuLaunchInfoNVX {
12817     VkStructureType        sType;
12818     const void*            pNext;
12819     VkCuFunctionNVX        function;
12820     uint32_t               gridDimX;
12821     uint32_t               gridDimY;
12822     uint32_t               gridDimZ;
12823     uint32_t               blockDimX;
12824     uint32_t               blockDimY;
12825     uint32_t               blockDimZ;
12826     uint32_t               sharedMemBytes;
12827     size_t                 paramCount;
12828     const void* const *    pParams;
12829     size_t                 extraCount;
12830     const void* const *    pExtras;
12831 } VkCuLaunchInfoNVX;
12832 
12833 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
12834 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
12835 typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
12836 typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
12837 typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
12838 
12839 #ifndef VK_NO_PROTOTYPES
12840 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
12841     VkDevice                                    device,
12842     const VkCuModuleCreateInfoNVX*              pCreateInfo,
12843     const VkAllocationCallbacks*                pAllocator,
12844     VkCuModuleNVX*                              pModule);
12845 
12846 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
12847     VkDevice                                    device,
12848     const VkCuFunctionCreateInfoNVX*            pCreateInfo,
12849     const VkAllocationCallbacks*                pAllocator,
12850     VkCuFunctionNVX*                            pFunction);
12851 
12852 VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
12853     VkDevice                                    device,
12854     VkCuModuleNVX                               module,
12855     const VkAllocationCallbacks*                pAllocator);
12856 
12857 VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
12858     VkDevice                                    device,
12859     VkCuFunctionNVX                             function,
12860     const VkAllocationCallbacks*                pAllocator);
12861 
12862 VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
12863     VkCommandBuffer                             commandBuffer,
12864     const VkCuLaunchInfoNVX*                    pLaunchInfo);
12865 #endif
12866 
12867 
12868 // VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
12869 #define VK_NVX_image_view_handle 1
12870 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
12871 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
12872 typedef struct VkImageViewHandleInfoNVX {
12873     VkStructureType     sType;
12874     const void*         pNext;
12875     VkImageView         imageView;
12876     VkDescriptorType    descriptorType;
12877     VkSampler           sampler;
12878 } VkImageViewHandleInfoNVX;
12879 
12880 typedef struct VkImageViewAddressPropertiesNVX {
12881     VkStructureType    sType;
12882     void*              pNext;
12883     VkDeviceAddress    deviceAddress;
12884     VkDeviceSize       size;
12885 } VkImageViewAddressPropertiesNVX;
12886 
12887 typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
12888 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
12889 
12890 #ifndef VK_NO_PROTOTYPES
12891 VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
12892     VkDevice                                    device,
12893     const VkImageViewHandleInfoNVX*             pInfo);
12894 
12895 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
12896     VkDevice                                    device,
12897     VkImageView                                 imageView,
12898     VkImageViewAddressPropertiesNVX*            pProperties);
12899 #endif
12900 
12901 
12902 // VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
12903 #define VK_AMD_draw_indirect_count 1
12904 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
12905 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
12906 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
12907 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
12908 
12909 #ifndef VK_NO_PROTOTYPES
12910 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
12911     VkCommandBuffer                             commandBuffer,
12912     VkBuffer                                    buffer,
12913     VkDeviceSize                                offset,
12914     VkBuffer                                    countBuffer,
12915     VkDeviceSize                                countBufferOffset,
12916     uint32_t                                    maxDrawCount,
12917     uint32_t                                    stride);
12918 
12919 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
12920     VkCommandBuffer                             commandBuffer,
12921     VkBuffer                                    buffer,
12922     VkDeviceSize                                offset,
12923     VkBuffer                                    countBuffer,
12924     VkDeviceSize                                countBufferOffset,
12925     uint32_t                                    maxDrawCount,
12926     uint32_t                                    stride);
12927 #endif
12928 
12929 
12930 // VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
12931 #define VK_AMD_negative_viewport_height 1
12932 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
12933 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
12934 
12935 
12936 // VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
12937 #define VK_AMD_gpu_shader_half_float 1
12938 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
12939 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
12940 
12941 
12942 // VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
12943 #define VK_AMD_shader_ballot 1
12944 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
12945 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
12946 
12947 
12948 // VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
12949 #define VK_AMD_texture_gather_bias_lod 1
12950 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
12951 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
12952 typedef struct VkTextureLODGatherFormatPropertiesAMD {
12953     VkStructureType    sType;
12954     void*              pNext;
12955     VkBool32           supportsTextureGatherLODBiasAMD;
12956 } VkTextureLODGatherFormatPropertiesAMD;
12957 
12958 
12959 
12960 // VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
12961 #define VK_AMD_shader_info 1
12962 #define VK_AMD_SHADER_INFO_SPEC_VERSION   1
12963 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
12964 
12965 typedef enum VkShaderInfoTypeAMD {
12966     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
12967     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
12968     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
12969     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
12970 } VkShaderInfoTypeAMD;
12971 typedef struct VkShaderResourceUsageAMD {
12972     uint32_t    numUsedVgprs;
12973     uint32_t    numUsedSgprs;
12974     uint32_t    ldsSizePerLocalWorkGroup;
12975     size_t      ldsUsageSizeInBytes;
12976     size_t      scratchMemUsageInBytes;
12977 } VkShaderResourceUsageAMD;
12978 
12979 typedef struct VkShaderStatisticsInfoAMD {
12980     VkShaderStageFlags          shaderStageMask;
12981     VkShaderResourceUsageAMD    resourceUsage;
12982     uint32_t                    numPhysicalVgprs;
12983     uint32_t                    numPhysicalSgprs;
12984     uint32_t                    numAvailableVgprs;
12985     uint32_t                    numAvailableSgprs;
12986     uint32_t                    computeWorkGroupSize[3];
12987 } VkShaderStatisticsInfoAMD;
12988 
12989 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
12990 
12991 #ifndef VK_NO_PROTOTYPES
12992 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
12993     VkDevice                                    device,
12994     VkPipeline                                  pipeline,
12995     VkShaderStageFlagBits                       shaderStage,
12996     VkShaderInfoTypeAMD                         infoType,
12997     size_t*                                     pInfoSize,
12998     void*                                       pInfo);
12999 #endif
13000 
13001 
13002 // VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
13003 #define VK_AMD_shader_image_load_store_lod 1
13004 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
13005 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
13006 
13007 
13008 // VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
13009 #define VK_NV_corner_sampled_image 1
13010 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
13011 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
13012 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
13013     VkStructureType    sType;
13014     void*              pNext;
13015     VkBool32           cornerSampledImage;
13016 } VkPhysicalDeviceCornerSampledImageFeaturesNV;
13017 
13018 
13019 
13020 // VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
13021 #define VK_IMG_format_pvrtc 1
13022 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
13023 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
13024 
13025 
13026 // VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
13027 #define VK_NV_external_memory_capabilities 1
13028 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
13029 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
13030 
13031 typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
13032     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
13033     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
13034     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
13035     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
13036     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
13037 } VkExternalMemoryHandleTypeFlagBitsNV;
13038 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
13039 
13040 typedef enum VkExternalMemoryFeatureFlagBitsNV {
13041     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
13042     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
13043     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
13044     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
13045 } VkExternalMemoryFeatureFlagBitsNV;
13046 typedef VkFlags VkExternalMemoryFeatureFlagsNV;
13047 typedef struct VkExternalImageFormatPropertiesNV {
13048     VkImageFormatProperties              imageFormatProperties;
13049     VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
13050     VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
13051     VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
13052 } VkExternalImageFormatPropertiesNV;
13053 
13054 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
13055 
13056 #ifndef VK_NO_PROTOTYPES
13057 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
13058     VkPhysicalDevice                            physicalDevice,
13059     VkFormat                                    format,
13060     VkImageType                                 type,
13061     VkImageTiling                               tiling,
13062     VkImageUsageFlags                           usage,
13063     VkImageCreateFlags                          flags,
13064     VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
13065     VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
13066 #endif
13067 
13068 
13069 // VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
13070 #define VK_NV_external_memory 1
13071 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
13072 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
13073 typedef struct VkExternalMemoryImageCreateInfoNV {
13074     VkStructureType                      sType;
13075     const void*                          pNext;
13076     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
13077 } VkExternalMemoryImageCreateInfoNV;
13078 
13079 typedef struct VkExportMemoryAllocateInfoNV {
13080     VkStructureType                      sType;
13081     const void*                          pNext;
13082     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
13083 } VkExportMemoryAllocateInfoNV;
13084 
13085 
13086 
13087 // VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
13088 #define VK_EXT_validation_flags 1
13089 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
13090 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
13091 
13092 typedef enum VkValidationCheckEXT {
13093     VK_VALIDATION_CHECK_ALL_EXT = 0,
13094     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
13095     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
13096 } VkValidationCheckEXT;
13097 typedef struct VkValidationFlagsEXT {
13098     VkStructureType                sType;
13099     const void*                    pNext;
13100     uint32_t                       disabledValidationCheckCount;
13101     const VkValidationCheckEXT*    pDisabledValidationChecks;
13102 } VkValidationFlagsEXT;
13103 
13104 
13105 
13106 // VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
13107 #define VK_EXT_shader_subgroup_ballot 1
13108 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
13109 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
13110 
13111 
13112 // VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
13113 #define VK_EXT_shader_subgroup_vote 1
13114 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
13115 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
13116 
13117 
13118 // VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
13119 #define VK_EXT_texture_compression_astc_hdr 1
13120 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
13121 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
13122 typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
13123 
13124 
13125 
13126 // VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
13127 #define VK_EXT_astc_decode_mode 1
13128 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
13129 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
13130 typedef struct VkImageViewASTCDecodeModeEXT {
13131     VkStructureType    sType;
13132     const void*        pNext;
13133     VkFormat           decodeMode;
13134 } VkImageViewASTCDecodeModeEXT;
13135 
13136 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
13137     VkStructureType    sType;
13138     void*              pNext;
13139     VkBool32           decodeModeSharedExponent;
13140 } VkPhysicalDeviceASTCDecodeFeaturesEXT;
13141 
13142 
13143 
13144 // VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
13145 #define VK_EXT_pipeline_robustness 1
13146 #define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
13147 #define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
13148 typedef VkPipelineRobustnessBufferBehavior VkPipelineRobustnessBufferBehaviorEXT;
13149 
13150 typedef VkPipelineRobustnessImageBehavior VkPipelineRobustnessImageBehaviorEXT;
13151 
13152 typedef VkPhysicalDevicePipelineRobustnessFeatures VkPhysicalDevicePipelineRobustnessFeaturesEXT;
13153 
13154 typedef VkPhysicalDevicePipelineRobustnessProperties VkPhysicalDevicePipelineRobustnessPropertiesEXT;
13155 
13156 typedef VkPipelineRobustnessCreateInfo VkPipelineRobustnessCreateInfoEXT;
13157 
13158 
13159 
13160 // VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
13161 #define VK_EXT_conditional_rendering 1
13162 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
13163 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
13164 
13165 typedef enum VkConditionalRenderingFlagBitsEXT {
13166     VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
13167     VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13168 } VkConditionalRenderingFlagBitsEXT;
13169 typedef VkFlags VkConditionalRenderingFlagsEXT;
13170 typedef struct VkConditionalRenderingBeginInfoEXT {
13171     VkStructureType                   sType;
13172     const void*                       pNext;
13173     VkBuffer                          buffer;
13174     VkDeviceSize                      offset;
13175     VkConditionalRenderingFlagsEXT    flags;
13176 } VkConditionalRenderingBeginInfoEXT;
13177 
13178 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
13179     VkStructureType    sType;
13180     void*              pNext;
13181     VkBool32           conditionalRendering;
13182     VkBool32           inheritedConditionalRendering;
13183 } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
13184 
13185 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
13186     VkStructureType    sType;
13187     const void*        pNext;
13188     VkBool32           conditionalRenderingEnable;
13189 } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
13190 
13191 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
13192 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
13193 
13194 #ifndef VK_NO_PROTOTYPES
13195 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
13196     VkCommandBuffer                             commandBuffer,
13197     const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin);
13198 
13199 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
13200     VkCommandBuffer                             commandBuffer);
13201 #endif
13202 
13203 
13204 // VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
13205 #define VK_NV_clip_space_w_scaling 1
13206 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
13207 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
13208 typedef struct VkViewportWScalingNV {
13209     float    xcoeff;
13210     float    ycoeff;
13211 } VkViewportWScalingNV;
13212 
13213 typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
13214     VkStructureType                sType;
13215     const void*                    pNext;
13216     VkBool32                       viewportWScalingEnable;
13217     uint32_t                       viewportCount;
13218     const VkViewportWScalingNV*    pViewportWScalings;
13219 } VkPipelineViewportWScalingStateCreateInfoNV;
13220 
13221 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
13222 
13223 #ifndef VK_NO_PROTOTYPES
13224 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
13225     VkCommandBuffer                             commandBuffer,
13226     uint32_t                                    firstViewport,
13227     uint32_t                                    viewportCount,
13228     const VkViewportWScalingNV*                 pViewportWScalings);
13229 #endif
13230 
13231 
13232 // VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
13233 #define VK_EXT_direct_mode_display 1
13234 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
13235 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
13236 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
13237 
13238 #ifndef VK_NO_PROTOTYPES
13239 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
13240     VkPhysicalDevice                            physicalDevice,
13241     VkDisplayKHR                                display);
13242 #endif
13243 
13244 
13245 // VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
13246 #define VK_EXT_display_surface_counter 1
13247 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
13248 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
13249 
13250 typedef enum VkSurfaceCounterFlagBitsEXT {
13251     VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
13252   // VK_SURFACE_COUNTER_VBLANK_EXT is a deprecated alias
13253     VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
13254     VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13255 } VkSurfaceCounterFlagBitsEXT;
13256 typedef VkFlags VkSurfaceCounterFlagsEXT;
13257 typedef struct VkSurfaceCapabilities2EXT {
13258     VkStructureType                  sType;
13259     void*                            pNext;
13260     uint32_t                         minImageCount;
13261     uint32_t                         maxImageCount;
13262     VkExtent2D                       currentExtent;
13263     VkExtent2D                       minImageExtent;
13264     VkExtent2D                       maxImageExtent;
13265     uint32_t                         maxImageArrayLayers;
13266     VkSurfaceTransformFlagsKHR       supportedTransforms;
13267     VkSurfaceTransformFlagBitsKHR    currentTransform;
13268     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
13269     VkImageUsageFlags                supportedUsageFlags;
13270     VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
13271 } VkSurfaceCapabilities2EXT;
13272 
13273 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
13274 
13275 #ifndef VK_NO_PROTOTYPES
13276 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
13277     VkPhysicalDevice                            physicalDevice,
13278     VkSurfaceKHR                                surface,
13279     VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
13280 #endif
13281 
13282 
13283 // VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
13284 #define VK_EXT_display_control 1
13285 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
13286 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
13287 
13288 typedef enum VkDisplayPowerStateEXT {
13289     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
13290     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
13291     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
13292     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
13293 } VkDisplayPowerStateEXT;
13294 
13295 typedef enum VkDeviceEventTypeEXT {
13296     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
13297     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
13298 } VkDeviceEventTypeEXT;
13299 
13300 typedef enum VkDisplayEventTypeEXT {
13301     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
13302     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
13303 } VkDisplayEventTypeEXT;
13304 typedef struct VkDisplayPowerInfoEXT {
13305     VkStructureType           sType;
13306     const void*               pNext;
13307     VkDisplayPowerStateEXT    powerState;
13308 } VkDisplayPowerInfoEXT;
13309 
13310 typedef struct VkDeviceEventInfoEXT {
13311     VkStructureType         sType;
13312     const void*             pNext;
13313     VkDeviceEventTypeEXT    deviceEvent;
13314 } VkDeviceEventInfoEXT;
13315 
13316 typedef struct VkDisplayEventInfoEXT {
13317     VkStructureType          sType;
13318     const void*              pNext;
13319     VkDisplayEventTypeEXT    displayEvent;
13320 } VkDisplayEventInfoEXT;
13321 
13322 typedef struct VkSwapchainCounterCreateInfoEXT {
13323     VkStructureType             sType;
13324     const void*                 pNext;
13325     VkSurfaceCounterFlagsEXT    surfaceCounters;
13326 } VkSwapchainCounterCreateInfoEXT;
13327 
13328 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
13329 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
13330 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
13331 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
13332 
13333 #ifndef VK_NO_PROTOTYPES
13334 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
13335     VkDevice                                    device,
13336     VkDisplayKHR                                display,
13337     const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
13338 
13339 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
13340     VkDevice                                    device,
13341     const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
13342     const VkAllocationCallbacks*                pAllocator,
13343     VkFence*                                    pFence);
13344 
13345 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
13346     VkDevice                                    device,
13347     VkDisplayKHR                                display,
13348     const VkDisplayEventInfoEXT*                pDisplayEventInfo,
13349     const VkAllocationCallbacks*                pAllocator,
13350     VkFence*                                    pFence);
13351 
13352 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
13353     VkDevice                                    device,
13354     VkSwapchainKHR                              swapchain,
13355     VkSurfaceCounterFlagBitsEXT                 counter,
13356     uint64_t*                                   pCounterValue);
13357 #endif
13358 
13359 
13360 // VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
13361 #define VK_GOOGLE_display_timing 1
13362 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
13363 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
13364 typedef struct VkRefreshCycleDurationGOOGLE {
13365     uint64_t    refreshDuration;
13366 } VkRefreshCycleDurationGOOGLE;
13367 
13368 typedef struct VkPastPresentationTimingGOOGLE {
13369     uint32_t    presentID;
13370     uint64_t    desiredPresentTime;
13371     uint64_t    actualPresentTime;
13372     uint64_t    earliestPresentTime;
13373     uint64_t    presentMargin;
13374 } VkPastPresentationTimingGOOGLE;
13375 
13376 typedef struct VkPresentTimeGOOGLE {
13377     uint32_t    presentID;
13378     uint64_t    desiredPresentTime;
13379 } VkPresentTimeGOOGLE;
13380 
13381 typedef struct VkPresentTimesInfoGOOGLE {
13382     VkStructureType               sType;
13383     const void*                   pNext;
13384     uint32_t                      swapchainCount;
13385     const VkPresentTimeGOOGLE*    pTimes;
13386 } VkPresentTimesInfoGOOGLE;
13387 
13388 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
13389 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
13390 
13391 #ifndef VK_NO_PROTOTYPES
13392 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
13393     VkDevice                                    device,
13394     VkSwapchainKHR                              swapchain,
13395     VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
13396 
13397 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
13398     VkDevice                                    device,
13399     VkSwapchainKHR                              swapchain,
13400     uint32_t*                                   pPresentationTimingCount,
13401     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
13402 #endif
13403 
13404 
13405 // VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
13406 #define VK_NV_sample_mask_override_coverage 1
13407 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
13408 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
13409 
13410 
13411 // VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
13412 #define VK_NV_geometry_shader_passthrough 1
13413 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
13414 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
13415 
13416 
13417 // VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
13418 #define VK_NV_viewport_array2 1
13419 #define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
13420 #define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
13421 // VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION is a deprecated alias
13422 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
13423 // VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME is a deprecated alias
13424 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
13425 
13426 
13427 // VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
13428 #define VK_NVX_multiview_per_view_attributes 1
13429 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
13430 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
13431 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
13432     VkStructureType    sType;
13433     void*              pNext;
13434     VkBool32           perViewPositionAllComponents;
13435 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
13436 
13437 
13438 
13439 // VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
13440 #define VK_NV_viewport_swizzle 1
13441 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
13442 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
13443 
13444 typedef enum VkViewportCoordinateSwizzleNV {
13445     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
13446     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
13447     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
13448     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
13449     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
13450     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
13451     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
13452     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
13453     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
13454 } VkViewportCoordinateSwizzleNV;
13455 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
13456 typedef struct VkViewportSwizzleNV {
13457     VkViewportCoordinateSwizzleNV    x;
13458     VkViewportCoordinateSwizzleNV    y;
13459     VkViewportCoordinateSwizzleNV    z;
13460     VkViewportCoordinateSwizzleNV    w;
13461 } VkViewportSwizzleNV;
13462 
13463 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
13464     VkStructureType                                sType;
13465     const void*                                    pNext;
13466     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
13467     uint32_t                                       viewportCount;
13468     const VkViewportSwizzleNV*                     pViewportSwizzles;
13469 } VkPipelineViewportSwizzleStateCreateInfoNV;
13470 
13471 
13472 
13473 // VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
13474 #define VK_EXT_discard_rectangles 1
13475 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
13476 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
13477 
13478 typedef enum VkDiscardRectangleModeEXT {
13479     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
13480     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
13481     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
13482 } VkDiscardRectangleModeEXT;
13483 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
13484 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
13485     VkStructureType    sType;
13486     void*              pNext;
13487     uint32_t           maxDiscardRectangles;
13488 } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
13489 
13490 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
13491     VkStructureType                                  sType;
13492     const void*                                      pNext;
13493     VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
13494     VkDiscardRectangleModeEXT                        discardRectangleMode;
13495     uint32_t                                         discardRectangleCount;
13496     const VkRect2D*                                  pDiscardRectangles;
13497 } VkPipelineDiscardRectangleStateCreateInfoEXT;
13498 
13499 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
13500 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
13501 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
13502 
13503 #ifndef VK_NO_PROTOTYPES
13504 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
13505     VkCommandBuffer                             commandBuffer,
13506     uint32_t                                    firstDiscardRectangle,
13507     uint32_t                                    discardRectangleCount,
13508     const VkRect2D*                             pDiscardRectangles);
13509 
13510 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
13511     VkCommandBuffer                             commandBuffer,
13512     VkBool32                                    discardRectangleEnable);
13513 
13514 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
13515     VkCommandBuffer                             commandBuffer,
13516     VkDiscardRectangleModeEXT                   discardRectangleMode);
13517 #endif
13518 
13519 
13520 // VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
13521 #define VK_EXT_conservative_rasterization 1
13522 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
13523 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
13524 
13525 typedef enum VkConservativeRasterizationModeEXT {
13526     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
13527     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
13528     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
13529     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
13530 } VkConservativeRasterizationModeEXT;
13531 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
13532 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
13533     VkStructureType    sType;
13534     void*              pNext;
13535     float              primitiveOverestimationSize;
13536     float              maxExtraPrimitiveOverestimationSize;
13537     float              extraPrimitiveOverestimationSizeGranularity;
13538     VkBool32           primitiveUnderestimation;
13539     VkBool32           conservativePointAndLineRasterization;
13540     VkBool32           degenerateTrianglesRasterized;
13541     VkBool32           degenerateLinesRasterized;
13542     VkBool32           fullyCoveredFragmentShaderInputVariable;
13543     VkBool32           conservativeRasterizationPostDepthCoverage;
13544 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
13545 
13546 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
13547     VkStructureType                                           sType;
13548     const void*                                               pNext;
13549     VkPipelineRasterizationConservativeStateCreateFlagsEXT    flags;
13550     VkConservativeRasterizationModeEXT                        conservativeRasterizationMode;
13551     float                                                     extraPrimitiveOverestimationSize;
13552 } VkPipelineRasterizationConservativeStateCreateInfoEXT;
13553 
13554 
13555 
13556 // VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
13557 #define VK_EXT_depth_clip_enable 1
13558 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
13559 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
13560 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
13561 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
13562     VkStructureType    sType;
13563     void*              pNext;
13564     VkBool32           depthClipEnable;
13565 } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
13566 
13567 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
13568     VkStructureType                                        sType;
13569     const void*                                            pNext;
13570     VkPipelineRasterizationDepthClipStateCreateFlagsEXT    flags;
13571     VkBool32                                               depthClipEnable;
13572 } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
13573 
13574 
13575 
13576 // VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
13577 #define VK_EXT_swapchain_colorspace 1
13578 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 5
13579 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
13580 
13581 
13582 // VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
13583 #define VK_EXT_hdr_metadata 1
13584 #define VK_EXT_HDR_METADATA_SPEC_VERSION  3
13585 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
13586 typedef struct VkXYColorEXT {
13587     float    x;
13588     float    y;
13589 } VkXYColorEXT;
13590 
13591 typedef struct VkHdrMetadataEXT {
13592     VkStructureType    sType;
13593     const void*        pNext;
13594     VkXYColorEXT       displayPrimaryRed;
13595     VkXYColorEXT       displayPrimaryGreen;
13596     VkXYColorEXT       displayPrimaryBlue;
13597     VkXYColorEXT       whitePoint;
13598     float              maxLuminance;
13599     float              minLuminance;
13600     float              maxContentLightLevel;
13601     float              maxFrameAverageLightLevel;
13602 } VkHdrMetadataEXT;
13603 
13604 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
13605 
13606 #ifndef VK_NO_PROTOTYPES
13607 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
13608     VkDevice                                    device,
13609     uint32_t                                    swapchainCount,
13610     const VkSwapchainKHR*                       pSwapchains,
13611     const VkHdrMetadataEXT*                     pMetadata);
13612 #endif
13613 
13614 
13615 // VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
13616 #define VK_IMG_relaxed_line_rasterization 1
13617 #define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
13618 #define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
13619 typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
13620     VkStructureType    sType;
13621     void*              pNext;
13622     VkBool32           relaxedLineRasterization;
13623 } VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
13624 
13625 
13626 
13627 // VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
13628 #define VK_EXT_external_memory_dma_buf 1
13629 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
13630 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
13631 
13632 
13633 // VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
13634 #define VK_EXT_queue_family_foreign 1
13635 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
13636 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
13637 #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~2U)
13638 
13639 
13640 // VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
13641 #define VK_EXT_debug_utils 1
13642 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
13643 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   2
13644 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
13645 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
13646 
13647 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
13648     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
13649     VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
13650     VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
13651     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
13652     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13653 } VkDebugUtilsMessageSeverityFlagBitsEXT;
13654 
13655 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
13656     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
13657     VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
13658     VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
13659     VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
13660     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13661 } VkDebugUtilsMessageTypeFlagBitsEXT;
13662 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
13663 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
13664 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
13665 typedef struct VkDebugUtilsLabelEXT {
13666     VkStructureType    sType;
13667     const void*        pNext;
13668     const char*        pLabelName;
13669     float              color[4];
13670 } VkDebugUtilsLabelEXT;
13671 
13672 typedef struct VkDebugUtilsObjectNameInfoEXT {
13673     VkStructureType    sType;
13674     const void*        pNext;
13675     VkObjectType       objectType;
13676     uint64_t           objectHandle;
13677     const char*        pObjectName;
13678 } VkDebugUtilsObjectNameInfoEXT;
13679 
13680 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
13681     VkStructureType                              sType;
13682     const void*                                  pNext;
13683     VkDebugUtilsMessengerCallbackDataFlagsEXT    flags;
13684     const char*                                  pMessageIdName;
13685     int32_t                                      messageIdNumber;
13686     const char*                                  pMessage;
13687     uint32_t                                     queueLabelCount;
13688     const VkDebugUtilsLabelEXT*                  pQueueLabels;
13689     uint32_t                                     cmdBufLabelCount;
13690     const VkDebugUtilsLabelEXT*                  pCmdBufLabels;
13691     uint32_t                                     objectCount;
13692     const VkDebugUtilsObjectNameInfoEXT*         pObjects;
13693 } VkDebugUtilsMessengerCallbackDataEXT;
13694 
13695 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
13696     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
13697     VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,
13698     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
13699     void*                                            pUserData);
13700 
13701 typedef struct VkDebugUtilsMessengerCreateInfoEXT {
13702     VkStructureType                         sType;
13703     const void*                             pNext;
13704     VkDebugUtilsMessengerCreateFlagsEXT     flags;
13705     VkDebugUtilsMessageSeverityFlagsEXT     messageSeverity;
13706     VkDebugUtilsMessageTypeFlagsEXT         messageType;
13707     PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
13708     void*                                   pUserData;
13709 } VkDebugUtilsMessengerCreateInfoEXT;
13710 
13711 typedef struct VkDebugUtilsObjectTagInfoEXT {
13712     VkStructureType    sType;
13713     const void*        pNext;
13714     VkObjectType       objectType;
13715     uint64_t           objectHandle;
13716     uint64_t           tagName;
13717     size_t             tagSize;
13718     const void*        pTag;
13719 } VkDebugUtilsObjectTagInfoEXT;
13720 
13721 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
13722 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
13723 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
13724 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
13725 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
13726 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
13727 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
13728 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
13729 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
13730 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
13731 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
13732 
13733 #ifndef VK_NO_PROTOTYPES
13734 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
13735     VkDevice                                    device,
13736     const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
13737 
13738 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
13739     VkDevice                                    device,
13740     const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
13741 
13742 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
13743     VkQueue                                     queue,
13744     const VkDebugUtilsLabelEXT*                 pLabelInfo);
13745 
13746 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
13747     VkQueue                                     queue);
13748 
13749 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
13750     VkQueue                                     queue,
13751     const VkDebugUtilsLabelEXT*                 pLabelInfo);
13752 
13753 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
13754     VkCommandBuffer                             commandBuffer,
13755     const VkDebugUtilsLabelEXT*                 pLabelInfo);
13756 
13757 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
13758     VkCommandBuffer                             commandBuffer);
13759 
13760 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
13761     VkCommandBuffer                             commandBuffer,
13762     const VkDebugUtilsLabelEXT*                 pLabelInfo);
13763 
13764 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
13765     VkInstance                                  instance,
13766     const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo,
13767     const VkAllocationCallbacks*                pAllocator,
13768     VkDebugUtilsMessengerEXT*                   pMessenger);
13769 
13770 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
13771     VkInstance                                  instance,
13772     VkDebugUtilsMessengerEXT                    messenger,
13773     const VkAllocationCallbacks*                pAllocator);
13774 
13775 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
13776     VkInstance                                  instance,
13777     VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
13778     VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
13779     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
13780 #endif
13781 
13782 
13783 // VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
13784 #define VK_EXT_sampler_filter_minmax 1
13785 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
13786 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
13787 typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
13788 
13789 typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
13790 
13791 typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
13792 
13793 
13794 
13795 // VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
13796 #define VK_AMD_gpu_shader_int16 1
13797 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
13798 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
13799 
13800 
13801 // VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
13802 #define VK_AMD_mixed_attachment_samples 1
13803 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
13804 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
13805 
13806 
13807 // VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
13808 #define VK_AMD_shader_fragment_mask 1
13809 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
13810 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
13811 
13812 
13813 // VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
13814 #define VK_EXT_inline_uniform_block 1
13815 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
13816 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
13817 typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
13818 
13819 typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
13820 
13821 typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
13822 
13823 typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
13824 
13825 
13826 
13827 // VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
13828 #define VK_EXT_shader_stencil_export 1
13829 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
13830 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
13831 
13832 
13833 // VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
13834 #define VK_EXT_sample_locations 1
13835 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
13836 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
13837 typedef struct VkSampleLocationEXT {
13838     float    x;
13839     float    y;
13840 } VkSampleLocationEXT;
13841 
13842 typedef struct VkSampleLocationsInfoEXT {
13843     VkStructureType               sType;
13844     const void*                   pNext;
13845     VkSampleCountFlagBits         sampleLocationsPerPixel;
13846     VkExtent2D                    sampleLocationGridSize;
13847     uint32_t                      sampleLocationsCount;
13848     const VkSampleLocationEXT*    pSampleLocations;
13849 } VkSampleLocationsInfoEXT;
13850 
13851 typedef struct VkAttachmentSampleLocationsEXT {
13852     uint32_t                    attachmentIndex;
13853     VkSampleLocationsInfoEXT    sampleLocationsInfo;
13854 } VkAttachmentSampleLocationsEXT;
13855 
13856 typedef struct VkSubpassSampleLocationsEXT {
13857     uint32_t                    subpassIndex;
13858     VkSampleLocationsInfoEXT    sampleLocationsInfo;
13859 } VkSubpassSampleLocationsEXT;
13860 
13861 typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
13862     VkStructureType                          sType;
13863     const void*                              pNext;
13864     uint32_t                                 attachmentInitialSampleLocationsCount;
13865     const VkAttachmentSampleLocationsEXT*    pAttachmentInitialSampleLocations;
13866     uint32_t                                 postSubpassSampleLocationsCount;
13867     const VkSubpassSampleLocationsEXT*       pPostSubpassSampleLocations;
13868 } VkRenderPassSampleLocationsBeginInfoEXT;
13869 
13870 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
13871     VkStructureType             sType;
13872     const void*                 pNext;
13873     VkBool32                    sampleLocationsEnable;
13874     VkSampleLocationsInfoEXT    sampleLocationsInfo;
13875 } VkPipelineSampleLocationsStateCreateInfoEXT;
13876 
13877 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
13878     VkStructureType       sType;
13879     void*                 pNext;
13880     VkSampleCountFlags    sampleLocationSampleCounts;
13881     VkExtent2D            maxSampleLocationGridSize;
13882     float                 sampleLocationCoordinateRange[2];
13883     uint32_t              sampleLocationSubPixelBits;
13884     VkBool32              variableSampleLocations;
13885 } VkPhysicalDeviceSampleLocationsPropertiesEXT;
13886 
13887 typedef struct VkMultisamplePropertiesEXT {
13888     VkStructureType    sType;
13889     void*              pNext;
13890     VkExtent2D         maxSampleLocationGridSize;
13891 } VkMultisamplePropertiesEXT;
13892 
13893 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
13894 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
13895 
13896 #ifndef VK_NO_PROTOTYPES
13897 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
13898     VkCommandBuffer                             commandBuffer,
13899     const VkSampleLocationsInfoEXT*             pSampleLocationsInfo);
13900 
13901 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
13902     VkPhysicalDevice                            physicalDevice,
13903     VkSampleCountFlagBits                       samples,
13904     VkMultisamplePropertiesEXT*                 pMultisampleProperties);
13905 #endif
13906 
13907 
13908 // VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
13909 #define VK_EXT_blend_operation_advanced 1
13910 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
13911 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
13912 
13913 typedef enum VkBlendOverlapEXT {
13914     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
13915     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
13916     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
13917     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
13918 } VkBlendOverlapEXT;
13919 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
13920     VkStructureType    sType;
13921     void*              pNext;
13922     VkBool32           advancedBlendCoherentOperations;
13923 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
13924 
13925 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
13926     VkStructureType    sType;
13927     void*              pNext;
13928     uint32_t           advancedBlendMaxColorAttachments;
13929     VkBool32           advancedBlendIndependentBlend;
13930     VkBool32           advancedBlendNonPremultipliedSrcColor;
13931     VkBool32           advancedBlendNonPremultipliedDstColor;
13932     VkBool32           advancedBlendCorrelatedOverlap;
13933     VkBool32           advancedBlendAllOperations;
13934 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
13935 
13936 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
13937     VkStructureType      sType;
13938     const void*          pNext;
13939     VkBool32             srcPremultiplied;
13940     VkBool32             dstPremultiplied;
13941     VkBlendOverlapEXT    blendOverlap;
13942 } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
13943 
13944 
13945 
13946 // VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
13947 #define VK_NV_fragment_coverage_to_color 1
13948 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
13949 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
13950 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
13951 typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
13952     VkStructureType                                sType;
13953     const void*                                    pNext;
13954     VkPipelineCoverageToColorStateCreateFlagsNV    flags;
13955     VkBool32                                       coverageToColorEnable;
13956     uint32_t                                       coverageToColorLocation;
13957 } VkPipelineCoverageToColorStateCreateInfoNV;
13958 
13959 
13960 
13961 // VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
13962 #define VK_NV_framebuffer_mixed_samples 1
13963 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
13964 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
13965 
13966 typedef enum VkCoverageModulationModeNV {
13967     VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
13968     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
13969     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
13970     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
13971     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
13972 } VkCoverageModulationModeNV;
13973 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
13974 typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
13975     VkStructureType                                   sType;
13976     const void*                                       pNext;
13977     VkPipelineCoverageModulationStateCreateFlagsNV    flags;
13978     VkCoverageModulationModeNV                        coverageModulationMode;
13979     VkBool32                                          coverageModulationTableEnable;
13980     uint32_t                                          coverageModulationTableCount;
13981     const float*                                      pCoverageModulationTable;
13982 } VkPipelineCoverageModulationStateCreateInfoNV;
13983 
13984 
13985 
13986 // VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
13987 #define VK_NV_fill_rectangle 1
13988 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
13989 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
13990 
13991 
13992 // VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
13993 #define VK_NV_shader_sm_builtins 1
13994 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
13995 #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
13996 typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
13997     VkStructureType    sType;
13998     void*              pNext;
13999     uint32_t           shaderSMCount;
14000     uint32_t           shaderWarpsPerSM;
14001 } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
14002 
14003 typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
14004     VkStructureType    sType;
14005     void*              pNext;
14006     VkBool32           shaderSMBuiltins;
14007 } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
14008 
14009 
14010 
14011 // VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
14012 #define VK_EXT_post_depth_coverage 1
14013 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
14014 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
14015 
14016 
14017 // VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
14018 #define VK_EXT_image_drm_format_modifier 1
14019 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
14020 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
14021 typedef struct VkDrmFormatModifierPropertiesEXT {
14022     uint64_t                drmFormatModifier;
14023     uint32_t                drmFormatModifierPlaneCount;
14024     VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
14025 } VkDrmFormatModifierPropertiesEXT;
14026 
14027 typedef struct VkDrmFormatModifierPropertiesListEXT {
14028     VkStructureType                      sType;
14029     void*                                pNext;
14030     uint32_t                             drmFormatModifierCount;
14031     VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties;
14032 } VkDrmFormatModifierPropertiesListEXT;
14033 
14034 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
14035     VkStructureType    sType;
14036     const void*        pNext;
14037     uint64_t           drmFormatModifier;
14038     VkSharingMode      sharingMode;
14039     uint32_t           queueFamilyIndexCount;
14040     const uint32_t*    pQueueFamilyIndices;
14041 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
14042 
14043 typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
14044     VkStructureType    sType;
14045     const void*        pNext;
14046     uint32_t           drmFormatModifierCount;
14047     const uint64_t*    pDrmFormatModifiers;
14048 } VkImageDrmFormatModifierListCreateInfoEXT;
14049 
14050 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
14051     VkStructureType               sType;
14052     const void*                   pNext;
14053     uint64_t                      drmFormatModifier;
14054     uint32_t                      drmFormatModifierPlaneCount;
14055     const VkSubresourceLayout*    pPlaneLayouts;
14056 } VkImageDrmFormatModifierExplicitCreateInfoEXT;
14057 
14058 typedef struct VkImageDrmFormatModifierPropertiesEXT {
14059     VkStructureType    sType;
14060     void*              pNext;
14061     uint64_t           drmFormatModifier;
14062 } VkImageDrmFormatModifierPropertiesEXT;
14063 
14064 typedef struct VkDrmFormatModifierProperties2EXT {
14065     uint64_t                 drmFormatModifier;
14066     uint32_t                 drmFormatModifierPlaneCount;
14067     VkFormatFeatureFlags2    drmFormatModifierTilingFeatures;
14068 } VkDrmFormatModifierProperties2EXT;
14069 
14070 typedef struct VkDrmFormatModifierPropertiesList2EXT {
14071     VkStructureType                       sType;
14072     void*                                 pNext;
14073     uint32_t                              drmFormatModifierCount;
14074     VkDrmFormatModifierProperties2EXT*    pDrmFormatModifierProperties;
14075 } VkDrmFormatModifierPropertiesList2EXT;
14076 
14077 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
14078 
14079 #ifndef VK_NO_PROTOTYPES
14080 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
14081     VkDevice                                    device,
14082     VkImage                                     image,
14083     VkImageDrmFormatModifierPropertiesEXT*      pProperties);
14084 #endif
14085 
14086 
14087 // VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
14088 #define VK_EXT_validation_cache 1
14089 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
14090 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
14091 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
14092 
14093 typedef enum VkValidationCacheHeaderVersionEXT {
14094     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
14095     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
14096 } VkValidationCacheHeaderVersionEXT;
14097 typedef VkFlags VkValidationCacheCreateFlagsEXT;
14098 typedef struct VkValidationCacheCreateInfoEXT {
14099     VkStructureType                    sType;
14100     const void*                        pNext;
14101     VkValidationCacheCreateFlagsEXT    flags;
14102     size_t                             initialDataSize;
14103     const void*                        pInitialData;
14104 } VkValidationCacheCreateInfoEXT;
14105 
14106 typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
14107     VkStructureType         sType;
14108     const void*             pNext;
14109     VkValidationCacheEXT    validationCache;
14110 } VkShaderModuleValidationCacheCreateInfoEXT;
14111 
14112 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
14113 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
14114 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
14115 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
14116 
14117 #ifndef VK_NO_PROTOTYPES
14118 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
14119     VkDevice                                    device,
14120     const VkValidationCacheCreateInfoEXT*       pCreateInfo,
14121     const VkAllocationCallbacks*                pAllocator,
14122     VkValidationCacheEXT*                       pValidationCache);
14123 
14124 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
14125     VkDevice                                    device,
14126     VkValidationCacheEXT                        validationCache,
14127     const VkAllocationCallbacks*                pAllocator);
14128 
14129 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
14130     VkDevice                                    device,
14131     VkValidationCacheEXT                        dstCache,
14132     uint32_t                                    srcCacheCount,
14133     const VkValidationCacheEXT*                 pSrcCaches);
14134 
14135 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
14136     VkDevice                                    device,
14137     VkValidationCacheEXT                        validationCache,
14138     size_t*                                     pDataSize,
14139     void*                                       pData);
14140 #endif
14141 
14142 
14143 // VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
14144 #define VK_EXT_descriptor_indexing 1
14145 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
14146 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
14147 typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
14148 
14149 typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
14150 
14151 typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
14152 
14153 typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
14154 
14155 typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
14156 
14157 typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
14158 
14159 typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
14160 
14161 
14162 
14163 // VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
14164 #define VK_EXT_shader_viewport_index_layer 1
14165 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
14166 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
14167 
14168 
14169 // VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
14170 #define VK_NV_shading_rate_image 1
14171 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
14172 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
14173 
14174 typedef enum VkShadingRatePaletteEntryNV {
14175     VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
14176     VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
14177     VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
14178     VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
14179     VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
14180     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
14181     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
14182     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
14183     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
14184     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
14185     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
14186     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
14187     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
14188 } VkShadingRatePaletteEntryNV;
14189 
14190 typedef enum VkCoarseSampleOrderTypeNV {
14191     VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
14192     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
14193     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
14194     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
14195     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
14196 } VkCoarseSampleOrderTypeNV;
14197 typedef struct VkShadingRatePaletteNV {
14198     uint32_t                              shadingRatePaletteEntryCount;
14199     const VkShadingRatePaletteEntryNV*    pShadingRatePaletteEntries;
14200 } VkShadingRatePaletteNV;
14201 
14202 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
14203     VkStructureType                  sType;
14204     const void*                      pNext;
14205     VkBool32                         shadingRateImageEnable;
14206     uint32_t                         viewportCount;
14207     const VkShadingRatePaletteNV*    pShadingRatePalettes;
14208 } VkPipelineViewportShadingRateImageStateCreateInfoNV;
14209 
14210 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
14211     VkStructureType    sType;
14212     void*              pNext;
14213     VkBool32           shadingRateImage;
14214     VkBool32           shadingRateCoarseSampleOrder;
14215 } VkPhysicalDeviceShadingRateImageFeaturesNV;
14216 
14217 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
14218     VkStructureType    sType;
14219     void*              pNext;
14220     VkExtent2D         shadingRateTexelSize;
14221     uint32_t           shadingRatePaletteSize;
14222     uint32_t           shadingRateMaxCoarseSamples;
14223 } VkPhysicalDeviceShadingRateImagePropertiesNV;
14224 
14225 typedef struct VkCoarseSampleLocationNV {
14226     uint32_t    pixelX;
14227     uint32_t    pixelY;
14228     uint32_t    sample;
14229 } VkCoarseSampleLocationNV;
14230 
14231 typedef struct VkCoarseSampleOrderCustomNV {
14232     VkShadingRatePaletteEntryNV        shadingRate;
14233     uint32_t                           sampleCount;
14234     uint32_t                           sampleLocationCount;
14235     const VkCoarseSampleLocationNV*    pSampleLocations;
14236 } VkCoarseSampleOrderCustomNV;
14237 
14238 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
14239     VkStructureType                       sType;
14240     const void*                           pNext;
14241     VkCoarseSampleOrderTypeNV             sampleOrderType;
14242     uint32_t                              customSampleOrderCount;
14243     const VkCoarseSampleOrderCustomNV*    pCustomSampleOrders;
14244 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
14245 
14246 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
14247 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
14248 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
14249 
14250 #ifndef VK_NO_PROTOTYPES
14251 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
14252     VkCommandBuffer                             commandBuffer,
14253     VkImageView                                 imageView,
14254     VkImageLayout                               imageLayout);
14255 
14256 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
14257     VkCommandBuffer                             commandBuffer,
14258     uint32_t                                    firstViewport,
14259     uint32_t                                    viewportCount,
14260     const VkShadingRatePaletteNV*               pShadingRatePalettes);
14261 
14262 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
14263     VkCommandBuffer                             commandBuffer,
14264     VkCoarseSampleOrderTypeNV                   sampleOrderType,
14265     uint32_t                                    customSampleOrderCount,
14266     const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders);
14267 #endif
14268 
14269 
14270 // VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
14271 #define VK_NV_ray_tracing 1
14272 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
14273 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
14274 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
14275 #define VK_SHADER_UNUSED_KHR              (~0U)
14276 #define VK_SHADER_UNUSED_NV               VK_SHADER_UNUSED_KHR
14277 
14278 typedef enum VkRayTracingShaderGroupTypeKHR {
14279     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
14280     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
14281     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
14282     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
14283     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
14284     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
14285     VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14286 } VkRayTracingShaderGroupTypeKHR;
14287 typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
14288 
14289 
14290 typedef enum VkGeometryTypeKHR {
14291     VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
14292     VK_GEOMETRY_TYPE_AABBS_KHR = 1,
14293     VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
14294     VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
14295     VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
14296     VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14297 } VkGeometryTypeKHR;
14298 typedef VkGeometryTypeKHR VkGeometryTypeNV;
14299 
14300 
14301 typedef enum VkAccelerationStructureTypeKHR {
14302     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
14303     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
14304     VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
14305     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
14306     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
14307     VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14308 } VkAccelerationStructureTypeKHR;
14309 typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
14310 
14311 
14312 typedef enum VkCopyAccelerationStructureModeKHR {
14313     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
14314     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
14315     VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
14316     VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
14317     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
14318     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
14319     VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
14320 } VkCopyAccelerationStructureModeKHR;
14321 typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
14322 
14323 
14324 typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
14325     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
14326     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
14327     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
14328     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
14329 } VkAccelerationStructureMemoryRequirementsTypeNV;
14330 
14331 typedef enum VkGeometryFlagBitsKHR {
14332     VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
14333     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
14334     VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
14335     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
14336     VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14337 } VkGeometryFlagBitsKHR;
14338 typedef VkFlags VkGeometryFlagsKHR;
14339 typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
14340 
14341 typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
14342 
14343 
14344 typedef enum VkGeometryInstanceFlagBitsKHR {
14345     VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
14346     VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
14347     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
14348     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
14349     VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0x00000010,
14350     VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000020,
14351     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
14352     VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
14353     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
14354     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
14355     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
14356     VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14357 } VkGeometryInstanceFlagBitsKHR;
14358 typedef VkFlags VkGeometryInstanceFlagsKHR;
14359 typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
14360 
14361 typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
14362 
14363 
14364 typedef enum VkBuildAccelerationStructureFlagBitsKHR {
14365     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
14366     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
14367     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
14368     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
14369     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
14370     VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
14371     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x00000040,
14372     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000080,
14373     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x00000100,
14374 #ifdef VK_ENABLE_BETA_EXTENSIONS
14375     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = 0x00000200,
14376 #endif
14377     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = 0x00000800,
14378     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
14379     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
14380     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
14381     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
14382     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
14383     VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14384 } VkBuildAccelerationStructureFlagBitsKHR;
14385 typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
14386 typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
14387 
14388 typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
14389 
14390 typedef struct VkRayTracingShaderGroupCreateInfoNV {
14391     VkStructureType                   sType;
14392     const void*                       pNext;
14393     VkRayTracingShaderGroupTypeKHR    type;
14394     uint32_t                          generalShader;
14395     uint32_t                          closestHitShader;
14396     uint32_t                          anyHitShader;
14397     uint32_t                          intersectionShader;
14398 } VkRayTracingShaderGroupCreateInfoNV;
14399 
14400 typedef struct VkRayTracingPipelineCreateInfoNV {
14401     VkStructureType                               sType;
14402     const void*                                   pNext;
14403     VkPipelineCreateFlags                         flags;
14404     uint32_t                                      stageCount;
14405     const VkPipelineShaderStageCreateInfo*        pStages;
14406     uint32_t                                      groupCount;
14407     const VkRayTracingShaderGroupCreateInfoNV*    pGroups;
14408     uint32_t                                      maxRecursionDepth;
14409     VkPipelineLayout                              layout;
14410     VkPipeline                                    basePipelineHandle;
14411     int32_t                                       basePipelineIndex;
14412 } VkRayTracingPipelineCreateInfoNV;
14413 
14414 typedef struct VkGeometryTrianglesNV {
14415     VkStructureType    sType;
14416     const void*        pNext;
14417     VkBuffer           vertexData;
14418     VkDeviceSize       vertexOffset;
14419     uint32_t           vertexCount;
14420     VkDeviceSize       vertexStride;
14421     VkFormat           vertexFormat;
14422     VkBuffer           indexData;
14423     VkDeviceSize       indexOffset;
14424     uint32_t           indexCount;
14425     VkIndexType        indexType;
14426     VkBuffer           transformData;
14427     VkDeviceSize       transformOffset;
14428 } VkGeometryTrianglesNV;
14429 
14430 typedef struct VkGeometryAABBNV {
14431     VkStructureType    sType;
14432     const void*        pNext;
14433     VkBuffer           aabbData;
14434     uint32_t           numAABBs;
14435     uint32_t           stride;
14436     VkDeviceSize       offset;
14437 } VkGeometryAABBNV;
14438 
14439 typedef struct VkGeometryDataNV {
14440     VkGeometryTrianglesNV    triangles;
14441     VkGeometryAABBNV         aabbs;
14442 } VkGeometryDataNV;
14443 
14444 typedef struct VkGeometryNV {
14445     VkStructureType       sType;
14446     const void*           pNext;
14447     VkGeometryTypeKHR     geometryType;
14448     VkGeometryDataNV      geometry;
14449     VkGeometryFlagsKHR    flags;
14450 } VkGeometryNV;
14451 
14452 typedef struct VkAccelerationStructureInfoNV {
14453     VkStructureType                        sType;
14454     const void*                            pNext;
14455     VkAccelerationStructureTypeNV          type;
14456     VkBuildAccelerationStructureFlagsNV    flags;
14457     uint32_t                               instanceCount;
14458     uint32_t                               geometryCount;
14459     const VkGeometryNV*                    pGeometries;
14460 } VkAccelerationStructureInfoNV;
14461 
14462 typedef struct VkAccelerationStructureCreateInfoNV {
14463     VkStructureType                  sType;
14464     const void*                      pNext;
14465     VkDeviceSize                     compactedSize;
14466     VkAccelerationStructureInfoNV    info;
14467 } VkAccelerationStructureCreateInfoNV;
14468 
14469 typedef struct VkBindAccelerationStructureMemoryInfoNV {
14470     VkStructureType              sType;
14471     const void*                  pNext;
14472     VkAccelerationStructureNV    accelerationStructure;
14473     VkDeviceMemory               memory;
14474     VkDeviceSize                 memoryOffset;
14475     uint32_t                     deviceIndexCount;
14476     const uint32_t*              pDeviceIndices;
14477 } VkBindAccelerationStructureMemoryInfoNV;
14478 
14479 typedef struct VkWriteDescriptorSetAccelerationStructureNV {
14480     VkStructureType                     sType;
14481     const void*                         pNext;
14482     uint32_t                            accelerationStructureCount;
14483     const VkAccelerationStructureNV*    pAccelerationStructures;
14484 } VkWriteDescriptorSetAccelerationStructureNV;
14485 
14486 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
14487     VkStructureType                                    sType;
14488     const void*                                        pNext;
14489     VkAccelerationStructureMemoryRequirementsTypeNV    type;
14490     VkAccelerationStructureNV                          accelerationStructure;
14491 } VkAccelerationStructureMemoryRequirementsInfoNV;
14492 
14493 typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
14494     VkStructureType    sType;
14495     void*              pNext;
14496     uint32_t           shaderGroupHandleSize;
14497     uint32_t           maxRecursionDepth;
14498     uint32_t           maxShaderGroupStride;
14499     uint32_t           shaderGroupBaseAlignment;
14500     uint64_t           maxGeometryCount;
14501     uint64_t           maxInstanceCount;
14502     uint64_t           maxTriangleCount;
14503     uint32_t           maxDescriptorSetAccelerationStructures;
14504 } VkPhysicalDeviceRayTracingPropertiesNV;
14505 
14506 typedef struct VkTransformMatrixKHR {
14507     float    matrix[3][4];
14508 } VkTransformMatrixKHR;
14509 
14510 typedef VkTransformMatrixKHR VkTransformMatrixNV;
14511 
14512 typedef struct VkAabbPositionsKHR {
14513     float    minX;
14514     float    minY;
14515     float    minZ;
14516     float    maxX;
14517     float    maxY;
14518     float    maxZ;
14519 } VkAabbPositionsKHR;
14520 
14521 typedef VkAabbPositionsKHR VkAabbPositionsNV;
14522 
14523 typedef struct VkAccelerationStructureInstanceKHR {
14524     VkTransformMatrixKHR          transform;
14525     uint32_t                      instanceCustomIndex:24;
14526     uint32_t                      mask:8;
14527     uint32_t                      instanceShaderBindingTableRecordOffset:24;
14528     VkGeometryInstanceFlagsKHR    flags:8;
14529     uint64_t                      accelerationStructureReference;
14530 } VkAccelerationStructureInstanceKHR;
14531 
14532 typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
14533 
14534 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
14535 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
14536 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
14537 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
14538 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);
14539 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
14540 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);
14541 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
14542 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
14543 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
14544 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
14545 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
14546 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
14547 
14548 #ifndef VK_NO_PROTOTYPES
14549 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
14550     VkDevice                                    device,
14551     const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
14552     const VkAllocationCallbacks*                pAllocator,
14553     VkAccelerationStructureNV*                  pAccelerationStructure);
14554 
14555 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
14556     VkDevice                                    device,
14557     VkAccelerationStructureNV                   accelerationStructure,
14558     const VkAllocationCallbacks*                pAllocator);
14559 
14560 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
14561     VkDevice                                    device,
14562     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
14563     VkMemoryRequirements2KHR*                   pMemoryRequirements);
14564 
14565 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
14566     VkDevice                                    device,
14567     uint32_t                                    bindInfoCount,
14568     const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
14569 
14570 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
14571     VkCommandBuffer                             commandBuffer,
14572     const VkAccelerationStructureInfoNV*        pInfo,
14573     VkBuffer                                    instanceData,
14574     VkDeviceSize                                instanceOffset,
14575     VkBool32                                    update,
14576     VkAccelerationStructureNV                   dst,
14577     VkAccelerationStructureNV                   src,
14578     VkBuffer                                    scratch,
14579     VkDeviceSize                                scratchOffset);
14580 
14581 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
14582     VkCommandBuffer                             commandBuffer,
14583     VkAccelerationStructureNV                   dst,
14584     VkAccelerationStructureNV                   src,
14585     VkCopyAccelerationStructureModeKHR          mode);
14586 
14587 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
14588     VkCommandBuffer                             commandBuffer,
14589     VkBuffer                                    raygenShaderBindingTableBuffer,
14590     VkDeviceSize                                raygenShaderBindingOffset,
14591     VkBuffer                                    missShaderBindingTableBuffer,
14592     VkDeviceSize                                missShaderBindingOffset,
14593     VkDeviceSize                                missShaderBindingStride,
14594     VkBuffer                                    hitShaderBindingTableBuffer,
14595     VkDeviceSize                                hitShaderBindingOffset,
14596     VkDeviceSize                                hitShaderBindingStride,
14597     VkBuffer                                    callableShaderBindingTableBuffer,
14598     VkDeviceSize                                callableShaderBindingOffset,
14599     VkDeviceSize                                callableShaderBindingStride,
14600     uint32_t                                    width,
14601     uint32_t                                    height,
14602     uint32_t                                    depth);
14603 
14604 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
14605     VkDevice                                    device,
14606     VkPipelineCache                             pipelineCache,
14607     uint32_t                                    createInfoCount,
14608     const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
14609     const VkAllocationCallbacks*                pAllocator,
14610     VkPipeline*                                 pPipelines);
14611 
14612 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
14613     VkDevice                                    device,
14614     VkPipeline                                  pipeline,
14615     uint32_t                                    firstGroup,
14616     uint32_t                                    groupCount,
14617     size_t                                      dataSize,
14618     void*                                       pData);
14619 
14620 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
14621     VkDevice                                    device,
14622     VkPipeline                                  pipeline,
14623     uint32_t                                    firstGroup,
14624     uint32_t                                    groupCount,
14625     size_t                                      dataSize,
14626     void*                                       pData);
14627 
14628 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
14629     VkDevice                                    device,
14630     VkAccelerationStructureNV                   accelerationStructure,
14631     size_t                                      dataSize,
14632     void*                                       pData);
14633 
14634 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
14635     VkCommandBuffer                             commandBuffer,
14636     uint32_t                                    accelerationStructureCount,
14637     const VkAccelerationStructureNV*            pAccelerationStructures,
14638     VkQueryType                                 queryType,
14639     VkQueryPool                                 queryPool,
14640     uint32_t                                    firstQuery);
14641 
14642 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
14643     VkDevice                                    device,
14644     VkPipeline                                  pipeline,
14645     uint32_t                                    shader);
14646 #endif
14647 
14648 
14649 // VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
14650 #define VK_NV_representative_fragment_test 1
14651 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
14652 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
14653 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
14654     VkStructureType    sType;
14655     void*              pNext;
14656     VkBool32           representativeFragmentTest;
14657 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
14658 
14659 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
14660     VkStructureType    sType;
14661     const void*        pNext;
14662     VkBool32           representativeFragmentTestEnable;
14663 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
14664 
14665 
14666 
14667 // VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
14668 #define VK_EXT_filter_cubic 1
14669 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION  3
14670 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
14671 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
14672     VkStructureType    sType;
14673     void*              pNext;
14674     VkImageViewType    imageViewType;
14675 } VkPhysicalDeviceImageViewImageFormatInfoEXT;
14676 
14677 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
14678     VkStructureType    sType;
14679     void*              pNext;
14680     VkBool32           filterCubic;
14681     VkBool32           filterCubicMinmax;
14682 } VkFilterCubicImageViewImageFormatPropertiesEXT;
14683 
14684 
14685 
14686 // VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
14687 #define VK_QCOM_render_pass_shader_resolve 1
14688 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
14689 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
14690 
14691 
14692 // VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
14693 #define VK_EXT_global_priority 1
14694 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
14695 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
14696 typedef VkQueueGlobalPriority VkQueueGlobalPriorityEXT;
14697 
14698 typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoEXT;
14699 
14700 
14701 
14702 // VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
14703 #define VK_EXT_external_memory_host 1
14704 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
14705 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
14706 typedef struct VkImportMemoryHostPointerInfoEXT {
14707     VkStructureType                       sType;
14708     const void*                           pNext;
14709     VkExternalMemoryHandleTypeFlagBits    handleType;
14710     void*                                 pHostPointer;
14711 } VkImportMemoryHostPointerInfoEXT;
14712 
14713 typedef struct VkMemoryHostPointerPropertiesEXT {
14714     VkStructureType    sType;
14715     void*              pNext;
14716     uint32_t           memoryTypeBits;
14717 } VkMemoryHostPointerPropertiesEXT;
14718 
14719 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
14720     VkStructureType    sType;
14721     void*              pNext;
14722     VkDeviceSize       minImportedHostPointerAlignment;
14723 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
14724 
14725 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
14726 
14727 #ifndef VK_NO_PROTOTYPES
14728 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
14729     VkDevice                                    device,
14730     VkExternalMemoryHandleTypeFlagBits          handleType,
14731     const void*                                 pHostPointer,
14732     VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties);
14733 #endif
14734 
14735 
14736 // VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
14737 #define VK_AMD_buffer_marker 1
14738 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
14739 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
14740 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
14741 
14742 #ifndef VK_NO_PROTOTYPES
14743 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
14744     VkCommandBuffer                             commandBuffer,
14745     VkPipelineStageFlagBits                     pipelineStage,
14746     VkBuffer                                    dstBuffer,
14747     VkDeviceSize                                dstOffset,
14748     uint32_t                                    marker);
14749 #endif
14750 
14751 
14752 // VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
14753 #define VK_AMD_pipeline_compiler_control 1
14754 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
14755 #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
14756 
14757 typedef enum VkPipelineCompilerControlFlagBitsAMD {
14758     VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
14759 } VkPipelineCompilerControlFlagBitsAMD;
14760 typedef VkFlags VkPipelineCompilerControlFlagsAMD;
14761 typedef struct VkPipelineCompilerControlCreateInfoAMD {
14762     VkStructureType                      sType;
14763     const void*                          pNext;
14764     VkPipelineCompilerControlFlagsAMD    compilerControlFlags;
14765 } VkPipelineCompilerControlCreateInfoAMD;
14766 
14767 
14768 
14769 // VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
14770 #define VK_EXT_calibrated_timestamps 1
14771 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
14772 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
14773 typedef VkTimeDomainKHR VkTimeDomainEXT;
14774 
14775 typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
14776 
14777 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
14778 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
14779 
14780 #ifndef VK_NO_PROTOTYPES
14781 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
14782     VkPhysicalDevice                            physicalDevice,
14783     uint32_t*                                   pTimeDomainCount,
14784     VkTimeDomainKHR*                            pTimeDomains);
14785 
14786 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
14787     VkDevice                                    device,
14788     uint32_t                                    timestampCount,
14789     const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
14790     uint64_t*                                   pTimestamps,
14791     uint64_t*                                   pMaxDeviation);
14792 #endif
14793 
14794 
14795 // VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
14796 #define VK_AMD_shader_core_properties 1
14797 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
14798 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
14799 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
14800     VkStructureType    sType;
14801     void*              pNext;
14802     uint32_t           shaderEngineCount;
14803     uint32_t           shaderArraysPerEngineCount;
14804     uint32_t           computeUnitsPerShaderArray;
14805     uint32_t           simdPerComputeUnit;
14806     uint32_t           wavefrontsPerSimd;
14807     uint32_t           wavefrontSize;
14808     uint32_t           sgprsPerSimd;
14809     uint32_t           minSgprAllocation;
14810     uint32_t           maxSgprAllocation;
14811     uint32_t           sgprAllocationGranularity;
14812     uint32_t           vgprsPerSimd;
14813     uint32_t           minVgprAllocation;
14814     uint32_t           maxVgprAllocation;
14815     uint32_t           vgprAllocationGranularity;
14816 } VkPhysicalDeviceShaderCorePropertiesAMD;
14817 
14818 
14819 
14820 // VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
14821 #define VK_AMD_memory_overallocation_behavior 1
14822 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
14823 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
14824 
14825 typedef enum VkMemoryOverallocationBehaviorAMD {
14826     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
14827     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
14828     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
14829     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
14830 } VkMemoryOverallocationBehaviorAMD;
14831 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
14832     VkStructureType                      sType;
14833     const void*                          pNext;
14834     VkMemoryOverallocationBehaviorAMD    overallocationBehavior;
14835 } VkDeviceMemoryOverallocationCreateInfoAMD;
14836 
14837 
14838 
14839 // VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
14840 #define VK_EXT_vertex_attribute_divisor 1
14841 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
14842 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
14843 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
14844     VkStructureType    sType;
14845     void*              pNext;
14846     uint32_t           maxVertexAttribDivisor;
14847 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
14848 
14849 typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionEXT;
14850 
14851 typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoEXT;
14852 
14853 typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
14854 
14855 
14856 
14857 // VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
14858 #define VK_EXT_pipeline_creation_feedback 1
14859 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
14860 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
14861 typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
14862 
14863 typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
14864 
14865 typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
14866 
14867 typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
14868 
14869 
14870 
14871 // VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
14872 #define VK_NV_shader_subgroup_partitioned 1
14873 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
14874 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
14875 
14876 
14877 // VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
14878 #define VK_NV_compute_shader_derivatives 1
14879 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
14880 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
14881 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
14882     VkStructureType    sType;
14883     void*              pNext;
14884     VkBool32           computeDerivativeGroupQuads;
14885     VkBool32           computeDerivativeGroupLinear;
14886 } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
14887 
14888 
14889 
14890 // VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
14891 #define VK_NV_mesh_shader 1
14892 #define VK_NV_MESH_SHADER_SPEC_VERSION    1
14893 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
14894 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
14895     VkStructureType    sType;
14896     void*              pNext;
14897     VkBool32           taskShader;
14898     VkBool32           meshShader;
14899 } VkPhysicalDeviceMeshShaderFeaturesNV;
14900 
14901 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
14902     VkStructureType    sType;
14903     void*              pNext;
14904     uint32_t           maxDrawMeshTasksCount;
14905     uint32_t           maxTaskWorkGroupInvocations;
14906     uint32_t           maxTaskWorkGroupSize[3];
14907     uint32_t           maxTaskTotalMemorySize;
14908     uint32_t           maxTaskOutputCount;
14909     uint32_t           maxMeshWorkGroupInvocations;
14910     uint32_t           maxMeshWorkGroupSize[3];
14911     uint32_t           maxMeshTotalMemorySize;
14912     uint32_t           maxMeshOutputVertices;
14913     uint32_t           maxMeshOutputPrimitives;
14914     uint32_t           maxMeshMultiviewViewCount;
14915     uint32_t           meshOutputPerVertexGranularity;
14916     uint32_t           meshOutputPerPrimitiveGranularity;
14917 } VkPhysicalDeviceMeshShaderPropertiesNV;
14918 
14919 typedef struct VkDrawMeshTasksIndirectCommandNV {
14920     uint32_t    taskCount;
14921     uint32_t    firstTask;
14922 } VkDrawMeshTasksIndirectCommandNV;
14923 
14924 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
14925 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
14926 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
14927 
14928 #ifndef VK_NO_PROTOTYPES
14929 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
14930     VkCommandBuffer                             commandBuffer,
14931     uint32_t                                    taskCount,
14932     uint32_t                                    firstTask);
14933 
14934 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
14935     VkCommandBuffer                             commandBuffer,
14936     VkBuffer                                    buffer,
14937     VkDeviceSize                                offset,
14938     uint32_t                                    drawCount,
14939     uint32_t                                    stride);
14940 
14941 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
14942     VkCommandBuffer                             commandBuffer,
14943     VkBuffer                                    buffer,
14944     VkDeviceSize                                offset,
14945     VkBuffer                                    countBuffer,
14946     VkDeviceSize                                countBufferOffset,
14947     uint32_t                                    maxDrawCount,
14948     uint32_t                                    stride);
14949 #endif
14950 
14951 
14952 // VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
14953 #define VK_NV_fragment_shader_barycentric 1
14954 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
14955 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
14956 typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
14957 
14958 
14959 
14960 // VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
14961 #define VK_NV_shader_image_footprint 1
14962 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
14963 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
14964 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
14965     VkStructureType    sType;
14966     void*              pNext;
14967     VkBool32           imageFootprint;
14968 } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
14969 
14970 
14971 
14972 // VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
14973 #define VK_NV_scissor_exclusive 1
14974 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
14975 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
14976 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
14977     VkStructureType    sType;
14978     const void*        pNext;
14979     uint32_t           exclusiveScissorCount;
14980     const VkRect2D*    pExclusiveScissors;
14981 } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
14982 
14983 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
14984     VkStructureType    sType;
14985     void*              pNext;
14986     VkBool32           exclusiveScissor;
14987 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
14988 
14989 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
14990 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
14991 
14992 #ifndef VK_NO_PROTOTYPES
14993 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
14994     VkCommandBuffer                             commandBuffer,
14995     uint32_t                                    firstExclusiveScissor,
14996     uint32_t                                    exclusiveScissorCount,
14997     const VkBool32*                             pExclusiveScissorEnables);
14998 
14999 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
15000     VkCommandBuffer                             commandBuffer,
15001     uint32_t                                    firstExclusiveScissor,
15002     uint32_t                                    exclusiveScissorCount,
15003     const VkRect2D*                             pExclusiveScissors);
15004 #endif
15005 
15006 
15007 // VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
15008 #define VK_NV_device_diagnostic_checkpoints 1
15009 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
15010 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
15011 typedef struct VkQueueFamilyCheckpointPropertiesNV {
15012     VkStructureType         sType;
15013     void*                   pNext;
15014     VkPipelineStageFlags    checkpointExecutionStageMask;
15015 } VkQueueFamilyCheckpointPropertiesNV;
15016 
15017 typedef struct VkCheckpointDataNV {
15018     VkStructureType            sType;
15019     void*                      pNext;
15020     VkPipelineStageFlagBits    stage;
15021     void*                      pCheckpointMarker;
15022 } VkCheckpointDataNV;
15023 
15024 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
15025 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
15026 
15027 #ifndef VK_NO_PROTOTYPES
15028 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
15029     VkCommandBuffer                             commandBuffer,
15030     const void*                                 pCheckpointMarker);
15031 
15032 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
15033     VkQueue                                     queue,
15034     uint32_t*                                   pCheckpointDataCount,
15035     VkCheckpointDataNV*                         pCheckpointData);
15036 #endif
15037 
15038 
15039 // VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
15040 #define VK_INTEL_shader_integer_functions2 1
15041 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
15042 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
15043 typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
15044     VkStructureType    sType;
15045     void*              pNext;
15046     VkBool32           shaderIntegerFunctions2;
15047 } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
15048 
15049 
15050 
15051 // VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
15052 #define VK_INTEL_performance_query 1
15053 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
15054 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
15055 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
15056 
15057 typedef enum VkPerformanceConfigurationTypeINTEL {
15058     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
15059     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
15060 } VkPerformanceConfigurationTypeINTEL;
15061 
15062 typedef enum VkQueryPoolSamplingModeINTEL {
15063     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
15064     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
15065 } VkQueryPoolSamplingModeINTEL;
15066 
15067 typedef enum VkPerformanceOverrideTypeINTEL {
15068     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
15069     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
15070     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
15071 } VkPerformanceOverrideTypeINTEL;
15072 
15073 typedef enum VkPerformanceParameterTypeINTEL {
15074     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
15075     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
15076     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
15077 } VkPerformanceParameterTypeINTEL;
15078 
15079 typedef enum VkPerformanceValueTypeINTEL {
15080     VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
15081     VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
15082     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
15083     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
15084     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
15085     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
15086 } VkPerformanceValueTypeINTEL;
15087 typedef union VkPerformanceValueDataINTEL {
15088     uint32_t       value32;
15089     uint64_t       value64;
15090     float          valueFloat;
15091     VkBool32       valueBool;
15092     const char*    valueString;
15093 } VkPerformanceValueDataINTEL;
15094 
15095 typedef struct VkPerformanceValueINTEL {
15096     VkPerformanceValueTypeINTEL    type;
15097     VkPerformanceValueDataINTEL    data;
15098 } VkPerformanceValueINTEL;
15099 
15100 typedef struct VkInitializePerformanceApiInfoINTEL {
15101     VkStructureType    sType;
15102     const void*        pNext;
15103     void*              pUserData;
15104 } VkInitializePerformanceApiInfoINTEL;
15105 
15106 typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
15107     VkStructureType                 sType;
15108     const void*                     pNext;
15109     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
15110 } VkQueryPoolPerformanceQueryCreateInfoINTEL;
15111 
15112 typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
15113 
15114 typedef struct VkPerformanceMarkerInfoINTEL {
15115     VkStructureType    sType;
15116     const void*        pNext;
15117     uint64_t           marker;
15118 } VkPerformanceMarkerInfoINTEL;
15119 
15120 typedef struct VkPerformanceStreamMarkerInfoINTEL {
15121     VkStructureType    sType;
15122     const void*        pNext;
15123     uint32_t           marker;
15124 } VkPerformanceStreamMarkerInfoINTEL;
15125 
15126 typedef struct VkPerformanceOverrideInfoINTEL {
15127     VkStructureType                   sType;
15128     const void*                       pNext;
15129     VkPerformanceOverrideTypeINTEL    type;
15130     VkBool32                          enable;
15131     uint64_t                          parameter;
15132 } VkPerformanceOverrideInfoINTEL;
15133 
15134 typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
15135     VkStructureType                        sType;
15136     const void*                            pNext;
15137     VkPerformanceConfigurationTypeINTEL    type;
15138 } VkPerformanceConfigurationAcquireInfoINTEL;
15139 
15140 typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
15141 typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
15142 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
15143 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
15144 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
15145 typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
15146 typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
15147 typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
15148 typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
15149 
15150 #ifndef VK_NO_PROTOTYPES
15151 VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
15152     VkDevice                                    device,
15153     const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo);
15154 
15155 VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
15156     VkDevice                                    device);
15157 
15158 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
15159     VkCommandBuffer                             commandBuffer,
15160     const VkPerformanceMarkerInfoINTEL*         pMarkerInfo);
15161 
15162 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
15163     VkCommandBuffer                             commandBuffer,
15164     const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo);
15165 
15166 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
15167     VkCommandBuffer                             commandBuffer,
15168     const VkPerformanceOverrideInfoINTEL*       pOverrideInfo);
15169 
15170 VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
15171     VkDevice                                    device,
15172     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
15173     VkPerformanceConfigurationINTEL*            pConfiguration);
15174 
15175 VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
15176     VkDevice                                    device,
15177     VkPerformanceConfigurationINTEL             configuration);
15178 
15179 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
15180     VkQueue                                     queue,
15181     VkPerformanceConfigurationINTEL             configuration);
15182 
15183 VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
15184     VkDevice                                    device,
15185     VkPerformanceParameterTypeINTEL             parameter,
15186     VkPerformanceValueINTEL*                    pValue);
15187 #endif
15188 
15189 
15190 // VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
15191 #define VK_EXT_pci_bus_info 1
15192 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  2
15193 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
15194 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
15195     VkStructureType    sType;
15196     void*              pNext;
15197     uint32_t           pciDomain;
15198     uint32_t           pciBus;
15199     uint32_t           pciDevice;
15200     uint32_t           pciFunction;
15201 } VkPhysicalDevicePCIBusInfoPropertiesEXT;
15202 
15203 
15204 
15205 // VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
15206 #define VK_AMD_display_native_hdr 1
15207 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
15208 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
15209 typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
15210     VkStructureType    sType;
15211     void*              pNext;
15212     VkBool32           localDimmingSupport;
15213 } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
15214 
15215 typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
15216     VkStructureType    sType;
15217     const void*        pNext;
15218     VkBool32           localDimmingEnable;
15219 } VkSwapchainDisplayNativeHdrCreateInfoAMD;
15220 
15221 typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
15222 
15223 #ifndef VK_NO_PROTOTYPES
15224 VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
15225     VkDevice                                    device,
15226     VkSwapchainKHR                              swapChain,
15227     VkBool32                                    localDimmingEnable);
15228 #endif
15229 
15230 
15231 // VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
15232 #define VK_EXT_fragment_density_map 1
15233 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
15234 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
15235 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
15236     VkStructureType    sType;
15237     void*              pNext;
15238     VkBool32           fragmentDensityMap;
15239     VkBool32           fragmentDensityMapDynamic;
15240     VkBool32           fragmentDensityMapNonSubsampledImages;
15241 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
15242 
15243 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
15244     VkStructureType    sType;
15245     void*              pNext;
15246     VkExtent2D         minFragmentDensityTexelSize;
15247     VkExtent2D         maxFragmentDensityTexelSize;
15248     VkBool32           fragmentDensityInvocations;
15249 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
15250 
15251 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
15252     VkStructureType          sType;
15253     const void*              pNext;
15254     VkAttachmentReference    fragmentDensityMapAttachment;
15255 } VkRenderPassFragmentDensityMapCreateInfoEXT;
15256 
15257 
15258 
15259 // VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
15260 #define VK_EXT_scalar_block_layout 1
15261 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
15262 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
15263 typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
15264 
15265 
15266 
15267 // VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
15268 #define VK_GOOGLE_hlsl_functionality1 1
15269 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
15270 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
15271 // VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION is a deprecated alias
15272 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
15273 // VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME is a deprecated alias
15274 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
15275 
15276 
15277 // VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
15278 #define VK_GOOGLE_decorate_string 1
15279 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
15280 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
15281 
15282 
15283 // VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
15284 #define VK_EXT_subgroup_size_control 1
15285 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
15286 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
15287 typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
15288 
15289 typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
15290 
15291 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
15292 
15293 
15294 
15295 // VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
15296 #define VK_AMD_shader_core_properties2 1
15297 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
15298 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
15299 
15300 typedef enum VkShaderCorePropertiesFlagBitsAMD {
15301     VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
15302 } VkShaderCorePropertiesFlagBitsAMD;
15303 typedef VkFlags VkShaderCorePropertiesFlagsAMD;
15304 typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
15305     VkStructureType                   sType;
15306     void*                             pNext;
15307     VkShaderCorePropertiesFlagsAMD    shaderCoreFeatures;
15308     uint32_t                          activeComputeUnitCount;
15309 } VkPhysicalDeviceShaderCoreProperties2AMD;
15310 
15311 
15312 
15313 // VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
15314 #define VK_AMD_device_coherent_memory 1
15315 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
15316 #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
15317 typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
15318     VkStructureType    sType;
15319     void*              pNext;
15320     VkBool32           deviceCoherentMemory;
15321 } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
15322 
15323 
15324 
15325 // VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
15326 #define VK_EXT_shader_image_atomic_int64 1
15327 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
15328 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
15329 typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
15330     VkStructureType    sType;
15331     void*              pNext;
15332     VkBool32           shaderImageInt64Atomics;
15333     VkBool32           sparseImageInt64Atomics;
15334 } VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
15335 
15336 
15337 
15338 // VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
15339 #define VK_EXT_memory_budget 1
15340 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
15341 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
15342 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
15343     VkStructureType    sType;
15344     void*              pNext;
15345     VkDeviceSize       heapBudget[VK_MAX_MEMORY_HEAPS];
15346     VkDeviceSize       heapUsage[VK_MAX_MEMORY_HEAPS];
15347 } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
15348 
15349 
15350 
15351 // VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
15352 #define VK_EXT_memory_priority 1
15353 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
15354 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
15355 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
15356     VkStructureType    sType;
15357     void*              pNext;
15358     VkBool32           memoryPriority;
15359 } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
15360 
15361 typedef struct VkMemoryPriorityAllocateInfoEXT {
15362     VkStructureType    sType;
15363     const void*        pNext;
15364     float              priority;
15365 } VkMemoryPriorityAllocateInfoEXT;
15366 
15367 
15368 
15369 // VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
15370 #define VK_NV_dedicated_allocation_image_aliasing 1
15371 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
15372 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
15373 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
15374     VkStructureType    sType;
15375     void*              pNext;
15376     VkBool32           dedicatedAllocationImageAliasing;
15377 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
15378 
15379 
15380 
15381 // VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
15382 #define VK_EXT_buffer_device_address 1
15383 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
15384 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
15385 typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
15386     VkStructureType    sType;
15387     void*              pNext;
15388     VkBool32           bufferDeviceAddress;
15389     VkBool32           bufferDeviceAddressCaptureReplay;
15390     VkBool32           bufferDeviceAddressMultiDevice;
15391 } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
15392 
15393 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
15394 
15395 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
15396 
15397 typedef struct VkBufferDeviceAddressCreateInfoEXT {
15398     VkStructureType    sType;
15399     const void*        pNext;
15400     VkDeviceAddress    deviceAddress;
15401 } VkBufferDeviceAddressCreateInfoEXT;
15402 
15403 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
15404 
15405 #ifndef VK_NO_PROTOTYPES
15406 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
15407     VkDevice                                    device,
15408     const VkBufferDeviceAddressInfo*            pInfo);
15409 #endif
15410 
15411 
15412 // VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
15413 #define VK_EXT_tooling_info 1
15414 #define VK_EXT_TOOLING_INFO_SPEC_VERSION  1
15415 #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
15416 typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
15417 
15418 typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
15419 
15420 typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
15421 
15422 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
15423 
15424 #ifndef VK_NO_PROTOTYPES
15425 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
15426     VkPhysicalDevice                            physicalDevice,
15427     uint32_t*                                   pToolCount,
15428     VkPhysicalDeviceToolProperties*             pToolProperties);
15429 #endif
15430 
15431 
15432 // VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
15433 #define VK_EXT_separate_stencil_usage 1
15434 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
15435 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
15436 typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
15437 
15438 
15439 
15440 // VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
15441 #define VK_EXT_validation_features 1
15442 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
15443 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
15444 
15445 typedef enum VkValidationFeatureEnableEXT {
15446     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
15447     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
15448     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
15449     VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
15450     VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
15451     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
15452 } VkValidationFeatureEnableEXT;
15453 
15454 typedef enum VkValidationFeatureDisableEXT {
15455     VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
15456     VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
15457     VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
15458     VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
15459     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
15460     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
15461     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
15462     VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
15463     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
15464 } VkValidationFeatureDisableEXT;
15465 typedef struct VkValidationFeaturesEXT {
15466     VkStructureType                         sType;
15467     const void*                             pNext;
15468     uint32_t                                enabledValidationFeatureCount;
15469     const VkValidationFeatureEnableEXT*     pEnabledValidationFeatures;
15470     uint32_t                                disabledValidationFeatureCount;
15471     const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
15472 } VkValidationFeaturesEXT;
15473 
15474 
15475 
15476 // VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
15477 #define VK_NV_cooperative_matrix 1
15478 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
15479 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
15480 typedef VkComponentTypeKHR VkComponentTypeNV;
15481 
15482 typedef VkScopeKHR VkScopeNV;
15483 
15484 typedef struct VkCooperativeMatrixPropertiesNV {
15485     VkStructureType      sType;
15486     void*                pNext;
15487     uint32_t             MSize;
15488     uint32_t             NSize;
15489     uint32_t             KSize;
15490     VkComponentTypeNV    AType;
15491     VkComponentTypeNV    BType;
15492     VkComponentTypeNV    CType;
15493     VkComponentTypeNV    DType;
15494     VkScopeNV            scope;
15495 } VkCooperativeMatrixPropertiesNV;
15496 
15497 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
15498     VkStructureType    sType;
15499     void*              pNext;
15500     VkBool32           cooperativeMatrix;
15501     VkBool32           cooperativeMatrixRobustBufferAccess;
15502 } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
15503 
15504 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
15505     VkStructureType       sType;
15506     void*                 pNext;
15507     VkShaderStageFlags    cooperativeMatrixSupportedStages;
15508 } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
15509 
15510 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
15511 
15512 #ifndef VK_NO_PROTOTYPES
15513 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
15514     VkPhysicalDevice                            physicalDevice,
15515     uint32_t*                                   pPropertyCount,
15516     VkCooperativeMatrixPropertiesNV*            pProperties);
15517 #endif
15518 
15519 
15520 // VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
15521 #define VK_NV_coverage_reduction_mode 1
15522 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
15523 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
15524 
15525 typedef enum VkCoverageReductionModeNV {
15526     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
15527     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
15528     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
15529 } VkCoverageReductionModeNV;
15530 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
15531 typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
15532     VkStructureType    sType;
15533     void*              pNext;
15534     VkBool32           coverageReductionMode;
15535 } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
15536 
15537 typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
15538     VkStructureType                                  sType;
15539     const void*                                      pNext;
15540     VkPipelineCoverageReductionStateCreateFlagsNV    flags;
15541     VkCoverageReductionModeNV                        coverageReductionMode;
15542 } VkPipelineCoverageReductionStateCreateInfoNV;
15543 
15544 typedef struct VkFramebufferMixedSamplesCombinationNV {
15545     VkStructureType              sType;
15546     void*                        pNext;
15547     VkCoverageReductionModeNV    coverageReductionMode;
15548     VkSampleCountFlagBits        rasterizationSamples;
15549     VkSampleCountFlags           depthStencilSamples;
15550     VkSampleCountFlags           colorSamples;
15551 } VkFramebufferMixedSamplesCombinationNV;
15552 
15553 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
15554 
15555 #ifndef VK_NO_PROTOTYPES
15556 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
15557     VkPhysicalDevice                            physicalDevice,
15558     uint32_t*                                   pCombinationCount,
15559     VkFramebufferMixedSamplesCombinationNV*     pCombinations);
15560 #endif
15561 
15562 
15563 // VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
15564 #define VK_EXT_fragment_shader_interlock 1
15565 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
15566 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
15567 typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
15568     VkStructureType    sType;
15569     void*              pNext;
15570     VkBool32           fragmentShaderSampleInterlock;
15571     VkBool32           fragmentShaderPixelInterlock;
15572     VkBool32           fragmentShaderShadingRateInterlock;
15573 } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
15574 
15575 
15576 
15577 // VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
15578 #define VK_EXT_ycbcr_image_arrays 1
15579 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
15580 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
15581 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
15582     VkStructureType    sType;
15583     void*              pNext;
15584     VkBool32           ycbcrImageArrays;
15585 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
15586 
15587 
15588 
15589 // VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
15590 #define VK_EXT_provoking_vertex 1
15591 #define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
15592 #define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
15593 
15594 typedef enum VkProvokingVertexModeEXT {
15595     VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
15596     VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
15597     VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
15598 } VkProvokingVertexModeEXT;
15599 typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
15600     VkStructureType    sType;
15601     void*              pNext;
15602     VkBool32           provokingVertexLast;
15603     VkBool32           transformFeedbackPreservesProvokingVertex;
15604 } VkPhysicalDeviceProvokingVertexFeaturesEXT;
15605 
15606 typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
15607     VkStructureType    sType;
15608     void*              pNext;
15609     VkBool32           provokingVertexModePerPipeline;
15610     VkBool32           transformFeedbackPreservesTriangleFanProvokingVertex;
15611 } VkPhysicalDeviceProvokingVertexPropertiesEXT;
15612 
15613 typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
15614     VkStructureType             sType;
15615     const void*                 pNext;
15616     VkProvokingVertexModeEXT    provokingVertexMode;
15617 } VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
15618 
15619 
15620 
15621 // VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
15622 #define VK_EXT_headless_surface 1
15623 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
15624 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
15625 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
15626 typedef struct VkHeadlessSurfaceCreateInfoEXT {
15627     VkStructureType                    sType;
15628     const void*                        pNext;
15629     VkHeadlessSurfaceCreateFlagsEXT    flags;
15630 } VkHeadlessSurfaceCreateInfoEXT;
15631 
15632 typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
15633 
15634 #ifndef VK_NO_PROTOTYPES
15635 VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
15636     VkInstance                                  instance,
15637     const VkHeadlessSurfaceCreateInfoEXT*       pCreateInfo,
15638     const VkAllocationCallbacks*                pAllocator,
15639     VkSurfaceKHR*                               pSurface);
15640 #endif
15641 
15642 
15643 // VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
15644 #define VK_EXT_line_rasterization 1
15645 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
15646 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
15647 typedef VkLineRasterizationMode VkLineRasterizationModeEXT;
15648 
15649 typedef VkPhysicalDeviceLineRasterizationFeaturesKHR VkPhysicalDeviceLineRasterizationFeaturesEXT;
15650 
15651 typedef VkPhysicalDeviceLineRasterizationPropertiesKHR VkPhysicalDeviceLineRasterizationPropertiesEXT;
15652 
15653 typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoEXT;
15654 
15655 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
15656 
15657 #ifndef VK_NO_PROTOTYPES
15658 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
15659     VkCommandBuffer                             commandBuffer,
15660     uint32_t                                    lineStippleFactor,
15661     uint16_t                                    lineStipplePattern);
15662 #endif
15663 
15664 
15665 // VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
15666 #define VK_EXT_shader_atomic_float 1
15667 #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
15668 #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
15669 typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
15670     VkStructureType    sType;
15671     void*              pNext;
15672     VkBool32           shaderBufferFloat32Atomics;
15673     VkBool32           shaderBufferFloat32AtomicAdd;
15674     VkBool32           shaderBufferFloat64Atomics;
15675     VkBool32           shaderBufferFloat64AtomicAdd;
15676     VkBool32           shaderSharedFloat32Atomics;
15677     VkBool32           shaderSharedFloat32AtomicAdd;
15678     VkBool32           shaderSharedFloat64Atomics;
15679     VkBool32           shaderSharedFloat64AtomicAdd;
15680     VkBool32           shaderImageFloat32Atomics;
15681     VkBool32           shaderImageFloat32AtomicAdd;
15682     VkBool32           sparseImageFloat32Atomics;
15683     VkBool32           sparseImageFloat32AtomicAdd;
15684 } VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
15685 
15686 
15687 
15688 // VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
15689 #define VK_EXT_host_query_reset 1
15690 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
15691 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
15692 typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
15693 
15694 typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
15695 
15696 #ifndef VK_NO_PROTOTYPES
15697 VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
15698     VkDevice                                    device,
15699     VkQueryPool                                 queryPool,
15700     uint32_t                                    firstQuery,
15701     uint32_t                                    queryCount);
15702 #endif
15703 
15704 
15705 // VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
15706 #define VK_EXT_index_type_uint8 1
15707 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
15708 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
15709 typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
15710 
15711 
15712 
15713 // VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
15714 #define VK_EXT_extended_dynamic_state 1
15715 #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
15716 #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
15717 typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
15718     VkStructureType    sType;
15719     void*              pNext;
15720     VkBool32           extendedDynamicState;
15721 } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
15722 
15723 typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
15724 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
15725 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
15726 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
15727 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
15728 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);
15729 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
15730 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
15731 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
15732 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
15733 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
15734 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
15735 
15736 #ifndef VK_NO_PROTOTYPES
15737 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
15738     VkCommandBuffer                             commandBuffer,
15739     VkCullModeFlags                             cullMode);
15740 
15741 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
15742     VkCommandBuffer                             commandBuffer,
15743     VkFrontFace                                 frontFace);
15744 
15745 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
15746     VkCommandBuffer                             commandBuffer,
15747     VkPrimitiveTopology                         primitiveTopology);
15748 
15749 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
15750     VkCommandBuffer                             commandBuffer,
15751     uint32_t                                    viewportCount,
15752     const VkViewport*                           pViewports);
15753 
15754 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
15755     VkCommandBuffer                             commandBuffer,
15756     uint32_t                                    scissorCount,
15757     const VkRect2D*                             pScissors);
15758 
15759 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
15760     VkCommandBuffer                             commandBuffer,
15761     uint32_t                                    firstBinding,
15762     uint32_t                                    bindingCount,
15763     const VkBuffer*                             pBuffers,
15764     const VkDeviceSize*                         pOffsets,
15765     const VkDeviceSize*                         pSizes,
15766     const VkDeviceSize*                         pStrides);
15767 
15768 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
15769     VkCommandBuffer                             commandBuffer,
15770     VkBool32                                    depthTestEnable);
15771 
15772 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
15773     VkCommandBuffer                             commandBuffer,
15774     VkBool32                                    depthWriteEnable);
15775 
15776 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
15777     VkCommandBuffer                             commandBuffer,
15778     VkCompareOp                                 depthCompareOp);
15779 
15780 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
15781     VkCommandBuffer                             commandBuffer,
15782     VkBool32                                    depthBoundsTestEnable);
15783 
15784 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
15785     VkCommandBuffer                             commandBuffer,
15786     VkBool32                                    stencilTestEnable);
15787 
15788 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
15789     VkCommandBuffer                             commandBuffer,
15790     VkStencilFaceFlags                          faceMask,
15791     VkStencilOp                                 failOp,
15792     VkStencilOp                                 passOp,
15793     VkStencilOp                                 depthFailOp,
15794     VkCompareOp                                 compareOp);
15795 #endif
15796 
15797 
15798 // VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
15799 #define VK_EXT_host_image_copy 1
15800 #define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
15801 #define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
15802 typedef VkHostImageCopyFlagBits VkHostImageCopyFlagBitsEXT;
15803 
15804 typedef VkHostImageCopyFlags VkHostImageCopyFlagsEXT;
15805 
15806 typedef VkPhysicalDeviceHostImageCopyFeatures VkPhysicalDeviceHostImageCopyFeaturesEXT;
15807 
15808 typedef VkPhysicalDeviceHostImageCopyProperties VkPhysicalDeviceHostImageCopyPropertiesEXT;
15809 
15810 typedef VkMemoryToImageCopy VkMemoryToImageCopyEXT;
15811 
15812 typedef VkImageToMemoryCopy VkImageToMemoryCopyEXT;
15813 
15814 typedef VkCopyMemoryToImageInfo VkCopyMemoryToImageInfoEXT;
15815 
15816 typedef VkCopyImageToMemoryInfo VkCopyImageToMemoryInfoEXT;
15817 
15818 typedef VkCopyImageToImageInfo VkCopyImageToImageInfoEXT;
15819 
15820 typedef VkHostImageLayoutTransitionInfo VkHostImageLayoutTransitionInfoEXT;
15821 
15822 typedef VkSubresourceHostMemcpySize VkSubresourceHostMemcpySizeEXT;
15823 
15824 typedef VkHostImageCopyDevicePerformanceQuery VkHostImageCopyDevicePerformanceQueryEXT;
15825 
15826 typedef VkSubresourceLayout2 VkSubresourceLayout2EXT;
15827 
15828 typedef VkImageSubresource2 VkImageSubresource2EXT;
15829 
15830 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfo*    pCopyMemoryToImageInfo);
15831 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfo*    pCopyImageToMemoryInfo);
15832 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfo*    pCopyImageToImageInfo);
15833 typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo*    pTransitions);
15834 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
15835 
15836 #ifndef VK_NO_PROTOTYPES
15837 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
15838     VkDevice                                    device,
15839     const VkCopyMemoryToImageInfo*              pCopyMemoryToImageInfo);
15840 
15841 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
15842     VkDevice                                    device,
15843     const VkCopyImageToMemoryInfo*              pCopyImageToMemoryInfo);
15844 
15845 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
15846     VkDevice                                    device,
15847     const VkCopyImageToImageInfo*               pCopyImageToImageInfo);
15848 
15849 VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
15850     VkDevice                                    device,
15851     uint32_t                                    transitionCount,
15852     const VkHostImageLayoutTransitionInfo*      pTransitions);
15853 
15854 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
15855     VkDevice                                    device,
15856     VkImage                                     image,
15857     const VkImageSubresource2*                  pSubresource,
15858     VkSubresourceLayout2*                       pLayout);
15859 #endif
15860 
15861 
15862 // VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
15863 #define VK_EXT_map_memory_placed 1
15864 #define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
15865 #define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
15866 typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
15867     VkStructureType    sType;
15868     void*              pNext;
15869     VkBool32           memoryMapPlaced;
15870     VkBool32           memoryMapRangePlaced;
15871     VkBool32           memoryUnmapReserve;
15872 } VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
15873 
15874 typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
15875     VkStructureType    sType;
15876     void*              pNext;
15877     VkDeviceSize       minPlacedMemoryMapAlignment;
15878 } VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
15879 
15880 typedef struct VkMemoryMapPlacedInfoEXT {
15881     VkStructureType    sType;
15882     const void*        pNext;
15883     void*              pPlacedAddress;
15884 } VkMemoryMapPlacedInfoEXT;
15885 
15886 
15887 
15888 // VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
15889 #define VK_EXT_shader_atomic_float2 1
15890 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
15891 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
15892 typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
15893     VkStructureType    sType;
15894     void*              pNext;
15895     VkBool32           shaderBufferFloat16Atomics;
15896     VkBool32           shaderBufferFloat16AtomicAdd;
15897     VkBool32           shaderBufferFloat16AtomicMinMax;
15898     VkBool32           shaderBufferFloat32AtomicMinMax;
15899     VkBool32           shaderBufferFloat64AtomicMinMax;
15900     VkBool32           shaderSharedFloat16Atomics;
15901     VkBool32           shaderSharedFloat16AtomicAdd;
15902     VkBool32           shaderSharedFloat16AtomicMinMax;
15903     VkBool32           shaderSharedFloat32AtomicMinMax;
15904     VkBool32           shaderSharedFloat64AtomicMinMax;
15905     VkBool32           shaderImageFloat32AtomicMinMax;
15906     VkBool32           sparseImageFloat32AtomicMinMax;
15907 } VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
15908 
15909 
15910 
15911 // VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
15912 #define VK_EXT_surface_maintenance1 1
15913 #define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
15914 #define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
15915 
15916 typedef enum VkPresentScalingFlagBitsEXT {
15917     VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 0x00000001,
15918     VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 0x00000002,
15919     VK_PRESENT_SCALING_STRETCH_BIT_EXT = 0x00000004,
15920     VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15921 } VkPresentScalingFlagBitsEXT;
15922 typedef VkFlags VkPresentScalingFlagsEXT;
15923 
15924 typedef enum VkPresentGravityFlagBitsEXT {
15925     VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0x00000001,
15926     VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0x00000002,
15927     VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0x00000004,
15928     VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15929 } VkPresentGravityFlagBitsEXT;
15930 typedef VkFlags VkPresentGravityFlagsEXT;
15931 typedef struct VkSurfacePresentModeEXT {
15932     VkStructureType     sType;
15933     void*               pNext;
15934     VkPresentModeKHR    presentMode;
15935 } VkSurfacePresentModeEXT;
15936 
15937 typedef struct VkSurfacePresentScalingCapabilitiesEXT {
15938     VkStructureType             sType;
15939     void*                       pNext;
15940     VkPresentScalingFlagsEXT    supportedPresentScaling;
15941     VkPresentGravityFlagsEXT    supportedPresentGravityX;
15942     VkPresentGravityFlagsEXT    supportedPresentGravityY;
15943     VkExtent2D                  minScaledImageExtent;
15944     VkExtent2D                  maxScaledImageExtent;
15945 } VkSurfacePresentScalingCapabilitiesEXT;
15946 
15947 typedef struct VkSurfacePresentModeCompatibilityEXT {
15948     VkStructureType      sType;
15949     void*                pNext;
15950     uint32_t             presentModeCount;
15951     VkPresentModeKHR*    pPresentModes;
15952 } VkSurfacePresentModeCompatibilityEXT;
15953 
15954 
15955 
15956 // VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
15957 #define VK_EXT_swapchain_maintenance1 1
15958 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
15959 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
15960 typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT {
15961     VkStructureType    sType;
15962     void*              pNext;
15963     VkBool32           swapchainMaintenance1;
15964 } VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
15965 
15966 typedef struct VkSwapchainPresentFenceInfoEXT {
15967     VkStructureType    sType;
15968     const void*        pNext;
15969     uint32_t           swapchainCount;
15970     const VkFence*     pFences;
15971 } VkSwapchainPresentFenceInfoEXT;
15972 
15973 typedef struct VkSwapchainPresentModesCreateInfoEXT {
15974     VkStructureType            sType;
15975     const void*                pNext;
15976     uint32_t                   presentModeCount;
15977     const VkPresentModeKHR*    pPresentModes;
15978 } VkSwapchainPresentModesCreateInfoEXT;
15979 
15980 typedef struct VkSwapchainPresentModeInfoEXT {
15981     VkStructureType            sType;
15982     const void*                pNext;
15983     uint32_t                   swapchainCount;
15984     const VkPresentModeKHR*    pPresentModes;
15985 } VkSwapchainPresentModeInfoEXT;
15986 
15987 typedef struct VkSwapchainPresentScalingCreateInfoEXT {
15988     VkStructureType             sType;
15989     const void*                 pNext;
15990     VkPresentScalingFlagsEXT    scalingBehavior;
15991     VkPresentGravityFlagsEXT    presentGravityX;
15992     VkPresentGravityFlagsEXT    presentGravityY;
15993 } VkSwapchainPresentScalingCreateInfoEXT;
15994 
15995 typedef struct VkReleaseSwapchainImagesInfoEXT {
15996     VkStructureType    sType;
15997     const void*        pNext;
15998     VkSwapchainKHR     swapchain;
15999     uint32_t           imageIndexCount;
16000     const uint32_t*    pImageIndices;
16001 } VkReleaseSwapchainImagesInfoEXT;
16002 
16003 typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo);
16004 
16005 #ifndef VK_NO_PROTOTYPES
16006 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
16007     VkDevice                                    device,
16008     const VkReleaseSwapchainImagesInfoEXT*      pReleaseInfo);
16009 #endif
16010 
16011 
16012 // VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
16013 #define VK_EXT_shader_demote_to_helper_invocation 1
16014 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
16015 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
16016 typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
16017 
16018 
16019 
16020 // VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
16021 #define VK_NV_device_generated_commands 1
16022 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
16023 #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
16024 #define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
16025 
16026 typedef enum VkIndirectCommandsTokenTypeNV {
16027     VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
16028     VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
16029     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
16030     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
16031     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
16032     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
16033     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
16034     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
16035     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
16036     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
16037     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
16038     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16039 } VkIndirectCommandsTokenTypeNV;
16040 
16041 typedef enum VkIndirectStateFlagBitsNV {
16042     VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
16043     VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
16044 } VkIndirectStateFlagBitsNV;
16045 typedef VkFlags VkIndirectStateFlagsNV;
16046 
16047 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
16048     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
16049     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
16050     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
16051     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
16052 } VkIndirectCommandsLayoutUsageFlagBitsNV;
16053 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
16054 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
16055     VkStructureType    sType;
16056     void*              pNext;
16057     uint32_t           maxGraphicsShaderGroupCount;
16058     uint32_t           maxIndirectSequenceCount;
16059     uint32_t           maxIndirectCommandsTokenCount;
16060     uint32_t           maxIndirectCommandsStreamCount;
16061     uint32_t           maxIndirectCommandsTokenOffset;
16062     uint32_t           maxIndirectCommandsStreamStride;
16063     uint32_t           minSequencesCountBufferOffsetAlignment;
16064     uint32_t           minSequencesIndexBufferOffsetAlignment;
16065     uint32_t           minIndirectCommandsBufferOffsetAlignment;
16066 } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
16067 
16068 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
16069     VkStructureType    sType;
16070     void*              pNext;
16071     VkBool32           deviceGeneratedCommands;
16072 } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
16073 
16074 typedef struct VkGraphicsShaderGroupCreateInfoNV {
16075     VkStructureType                                 sType;
16076     const void*                                     pNext;
16077     uint32_t                                        stageCount;
16078     const VkPipelineShaderStageCreateInfo*          pStages;
16079     const VkPipelineVertexInputStateCreateInfo*     pVertexInputState;
16080     const VkPipelineTessellationStateCreateInfo*    pTessellationState;
16081 } VkGraphicsShaderGroupCreateInfoNV;
16082 
16083 typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
16084     VkStructureType                             sType;
16085     const void*                                 pNext;
16086     uint32_t                                    groupCount;
16087     const VkGraphicsShaderGroupCreateInfoNV*    pGroups;
16088     uint32_t                                    pipelineCount;
16089     const VkPipeline*                           pPipelines;
16090 } VkGraphicsPipelineShaderGroupsCreateInfoNV;
16091 
16092 typedef struct VkBindShaderGroupIndirectCommandNV {
16093     uint32_t    groupIndex;
16094 } VkBindShaderGroupIndirectCommandNV;
16095 
16096 typedef struct VkBindIndexBufferIndirectCommandNV {
16097     VkDeviceAddress    bufferAddress;
16098     uint32_t           size;
16099     VkIndexType        indexType;
16100 } VkBindIndexBufferIndirectCommandNV;
16101 
16102 typedef struct VkBindVertexBufferIndirectCommandNV {
16103     VkDeviceAddress    bufferAddress;
16104     uint32_t           size;
16105     uint32_t           stride;
16106 } VkBindVertexBufferIndirectCommandNV;
16107 
16108 typedef struct VkSetStateFlagsIndirectCommandNV {
16109     uint32_t    data;
16110 } VkSetStateFlagsIndirectCommandNV;
16111 
16112 typedef struct VkIndirectCommandsStreamNV {
16113     VkBuffer        buffer;
16114     VkDeviceSize    offset;
16115 } VkIndirectCommandsStreamNV;
16116 
16117 typedef struct VkIndirectCommandsLayoutTokenNV {
16118     VkStructureType                  sType;
16119     const void*                      pNext;
16120     VkIndirectCommandsTokenTypeNV    tokenType;
16121     uint32_t                         stream;
16122     uint32_t                         offset;
16123     uint32_t                         vertexBindingUnit;
16124     VkBool32                         vertexDynamicStride;
16125     VkPipelineLayout                 pushconstantPipelineLayout;
16126     VkShaderStageFlags               pushconstantShaderStageFlags;
16127     uint32_t                         pushconstantOffset;
16128     uint32_t                         pushconstantSize;
16129     VkIndirectStateFlagsNV           indirectStateFlags;
16130     uint32_t                         indexTypeCount;
16131     const VkIndexType*               pIndexTypes;
16132     const uint32_t*                  pIndexTypeValues;
16133 } VkIndirectCommandsLayoutTokenNV;
16134 
16135 typedef struct VkIndirectCommandsLayoutCreateInfoNV {
16136     VkStructureType                           sType;
16137     const void*                               pNext;
16138     VkIndirectCommandsLayoutUsageFlagsNV      flags;
16139     VkPipelineBindPoint                       pipelineBindPoint;
16140     uint32_t                                  tokenCount;
16141     const VkIndirectCommandsLayoutTokenNV*    pTokens;
16142     uint32_t                                  streamCount;
16143     const uint32_t*                           pStreamStrides;
16144 } VkIndirectCommandsLayoutCreateInfoNV;
16145 
16146 typedef struct VkGeneratedCommandsInfoNV {
16147     VkStructureType                      sType;
16148     const void*                          pNext;
16149     VkPipelineBindPoint                  pipelineBindPoint;
16150     VkPipeline                           pipeline;
16151     VkIndirectCommandsLayoutNV           indirectCommandsLayout;
16152     uint32_t                             streamCount;
16153     const VkIndirectCommandsStreamNV*    pStreams;
16154     uint32_t                             sequencesCount;
16155     VkBuffer                             preprocessBuffer;
16156     VkDeviceSize                         preprocessOffset;
16157     VkDeviceSize                         preprocessSize;
16158     VkBuffer                             sequencesCountBuffer;
16159     VkDeviceSize                         sequencesCountOffset;
16160     VkBuffer                             sequencesIndexBuffer;
16161     VkDeviceSize                         sequencesIndexOffset;
16162 } VkGeneratedCommandsInfoNV;
16163 
16164 typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
16165     VkStructureType               sType;
16166     const void*                   pNext;
16167     VkPipelineBindPoint           pipelineBindPoint;
16168     VkPipeline                    pipeline;
16169     VkIndirectCommandsLayoutNV    indirectCommandsLayout;
16170     uint32_t                      maxSequencesCount;
16171 } VkGeneratedCommandsMemoryRequirementsInfoNV;
16172 
16173 typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
16174 typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
16175 typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
16176 typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
16177 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
16178 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
16179 
16180 #ifndef VK_NO_PROTOTYPES
16181 VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
16182     VkDevice                                    device,
16183     const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
16184     VkMemoryRequirements2*                      pMemoryRequirements);
16185 
16186 VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
16187     VkCommandBuffer                             commandBuffer,
16188     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
16189 
16190 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
16191     VkCommandBuffer                             commandBuffer,
16192     VkBool32                                    isPreprocessed,
16193     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
16194 
16195 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
16196     VkCommandBuffer                             commandBuffer,
16197     VkPipelineBindPoint                         pipelineBindPoint,
16198     VkPipeline                                  pipeline,
16199     uint32_t                                    groupIndex);
16200 
16201 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
16202     VkDevice                                    device,
16203     const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
16204     const VkAllocationCallbacks*                pAllocator,
16205     VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout);
16206 
16207 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
16208     VkDevice                                    device,
16209     VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
16210     const VkAllocationCallbacks*                pAllocator);
16211 #endif
16212 
16213 
16214 // VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
16215 #define VK_NV_inherited_viewport_scissor 1
16216 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
16217 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
16218 typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
16219     VkStructureType    sType;
16220     void*              pNext;
16221     VkBool32           inheritedViewportScissor2D;
16222 } VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
16223 
16224 typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
16225     VkStructureType      sType;
16226     const void*          pNext;
16227     VkBool32             viewportScissor2D;
16228     uint32_t             viewportDepthCount;
16229     const VkViewport*    pViewportDepths;
16230 } VkCommandBufferInheritanceViewportScissorInfoNV;
16231 
16232 
16233 
16234 // VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
16235 #define VK_EXT_texel_buffer_alignment 1
16236 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
16237 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
16238 typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
16239     VkStructureType    sType;
16240     void*              pNext;
16241     VkBool32           texelBufferAlignment;
16242 } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
16243 
16244 typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
16245 
16246 
16247 
16248 // VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
16249 #define VK_QCOM_render_pass_transform 1
16250 #define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 4
16251 #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
16252 typedef struct VkRenderPassTransformBeginInfoQCOM {
16253     VkStructureType                  sType;
16254     void*                            pNext;
16255     VkSurfaceTransformFlagBitsKHR    transform;
16256 } VkRenderPassTransformBeginInfoQCOM;
16257 
16258 typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
16259     VkStructureType                  sType;
16260     void*                            pNext;
16261     VkSurfaceTransformFlagBitsKHR    transform;
16262     VkRect2D                         renderArea;
16263 } VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
16264 
16265 
16266 
16267 // VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
16268 #define VK_EXT_depth_bias_control 1
16269 #define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
16270 #define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
16271 
16272 typedef enum VkDepthBiasRepresentationEXT {
16273     VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
16274     VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
16275     VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
16276     VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
16277 } VkDepthBiasRepresentationEXT;
16278 typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
16279     VkStructureType    sType;
16280     void*              pNext;
16281     VkBool32           depthBiasControl;
16282     VkBool32           leastRepresentableValueForceUnormRepresentation;
16283     VkBool32           floatRepresentation;
16284     VkBool32           depthBiasExact;
16285 } VkPhysicalDeviceDepthBiasControlFeaturesEXT;
16286 
16287 typedef struct VkDepthBiasInfoEXT {
16288     VkStructureType    sType;
16289     const void*        pNext;
16290     float              depthBiasConstantFactor;
16291     float              depthBiasClamp;
16292     float              depthBiasSlopeFactor;
16293 } VkDepthBiasInfoEXT;
16294 
16295 typedef struct VkDepthBiasRepresentationInfoEXT {
16296     VkStructureType                 sType;
16297     const void*                     pNext;
16298     VkDepthBiasRepresentationEXT    depthBiasRepresentation;
16299     VkBool32                        depthBiasExact;
16300 } VkDepthBiasRepresentationInfoEXT;
16301 
16302 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT*         pDepthBiasInfo);
16303 
16304 #ifndef VK_NO_PROTOTYPES
16305 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
16306     VkCommandBuffer                             commandBuffer,
16307     const VkDepthBiasInfoEXT*                   pDepthBiasInfo);
16308 #endif
16309 
16310 
16311 // VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
16312 #define VK_EXT_device_memory_report 1
16313 #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
16314 #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
16315 
16316 typedef enum VkDeviceMemoryReportEventTypeEXT {
16317     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
16318     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
16319     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
16320     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
16321     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
16322     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
16323 } VkDeviceMemoryReportEventTypeEXT;
16324 typedef VkFlags VkDeviceMemoryReportFlagsEXT;
16325 typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
16326     VkStructureType    sType;
16327     void*              pNext;
16328     VkBool32           deviceMemoryReport;
16329 } VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
16330 
16331 typedef struct VkDeviceMemoryReportCallbackDataEXT {
16332     VkStructureType                     sType;
16333     void*                               pNext;
16334     VkDeviceMemoryReportFlagsEXT        flags;
16335     VkDeviceMemoryReportEventTypeEXT    type;
16336     uint64_t                            memoryObjectId;
16337     VkDeviceSize                        size;
16338     VkObjectType                        objectType;
16339     uint64_t                            objectHandle;
16340     uint32_t                            heapIndex;
16341 } VkDeviceMemoryReportCallbackDataEXT;
16342 
16343 typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
16344     const VkDeviceMemoryReportCallbackDataEXT*  pCallbackData,
16345     void*                                       pUserData);
16346 
16347 typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
16348     VkStructureType                        sType;
16349     const void*                            pNext;
16350     VkDeviceMemoryReportFlagsEXT           flags;
16351     PFN_vkDeviceMemoryReportCallbackEXT    pfnUserCallback;
16352     void*                                  pUserData;
16353 } VkDeviceDeviceMemoryReportCreateInfoEXT;
16354 
16355 
16356 
16357 // VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
16358 #define VK_EXT_acquire_drm_display 1
16359 #define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
16360 #define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
16361 typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
16362 typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
16363 
16364 #ifndef VK_NO_PROTOTYPES
16365 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
16366     VkPhysicalDevice                            physicalDevice,
16367     int32_t                                     drmFd,
16368     VkDisplayKHR                                display);
16369 
16370 VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
16371     VkPhysicalDevice                            physicalDevice,
16372     int32_t                                     drmFd,
16373     uint32_t                                    connectorId,
16374     VkDisplayKHR*                               display);
16375 #endif
16376 
16377 
16378 // VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
16379 #define VK_EXT_robustness2 1
16380 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION  1
16381 #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
16382 typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
16383     VkStructureType    sType;
16384     void*              pNext;
16385     VkBool32           robustBufferAccess2;
16386     VkBool32           robustImageAccess2;
16387     VkBool32           nullDescriptor;
16388 } VkPhysicalDeviceRobustness2FeaturesEXT;
16389 
16390 typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
16391     VkStructureType    sType;
16392     void*              pNext;
16393     VkDeviceSize       robustStorageBufferAccessSizeAlignment;
16394     VkDeviceSize       robustUniformBufferAccessSizeAlignment;
16395 } VkPhysicalDeviceRobustness2PropertiesEXT;
16396 
16397 
16398 
16399 // VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
16400 #define VK_EXT_custom_border_color 1
16401 #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
16402 #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
16403 typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
16404     VkStructureType      sType;
16405     const void*          pNext;
16406     VkClearColorValue    customBorderColor;
16407     VkFormat             format;
16408 } VkSamplerCustomBorderColorCreateInfoEXT;
16409 
16410 typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
16411     VkStructureType    sType;
16412     void*              pNext;
16413     uint32_t           maxCustomBorderColorSamplers;
16414 } VkPhysicalDeviceCustomBorderColorPropertiesEXT;
16415 
16416 typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
16417     VkStructureType    sType;
16418     void*              pNext;
16419     VkBool32           customBorderColors;
16420     VkBool32           customBorderColorWithoutFormat;
16421 } VkPhysicalDeviceCustomBorderColorFeaturesEXT;
16422 
16423 
16424 
16425 // VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
16426 #define VK_GOOGLE_user_type 1
16427 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
16428 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
16429 
16430 
16431 // VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
16432 #define VK_NV_present_barrier 1
16433 #define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
16434 #define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
16435 typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
16436     VkStructureType    sType;
16437     void*              pNext;
16438     VkBool32           presentBarrier;
16439 } VkPhysicalDevicePresentBarrierFeaturesNV;
16440 
16441 typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
16442     VkStructureType    sType;
16443     void*              pNext;
16444     VkBool32           presentBarrierSupported;
16445 } VkSurfaceCapabilitiesPresentBarrierNV;
16446 
16447 typedef struct VkSwapchainPresentBarrierCreateInfoNV {
16448     VkStructureType    sType;
16449     void*              pNext;
16450     VkBool32           presentBarrierEnable;
16451 } VkSwapchainPresentBarrierCreateInfoNV;
16452 
16453 
16454 
16455 // VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
16456 #define VK_EXT_private_data 1
16457 typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
16458 
16459 #define VK_EXT_PRIVATE_DATA_SPEC_VERSION  1
16460 #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
16461 typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
16462 
16463 typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
16464 
16465 typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
16466 
16467 typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
16468 
16469 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
16470 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
16471 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
16472 typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
16473 
16474 #ifndef VK_NO_PROTOTYPES
16475 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
16476     VkDevice                                    device,
16477     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
16478     const VkAllocationCallbacks*                pAllocator,
16479     VkPrivateDataSlot*                          pPrivateDataSlot);
16480 
16481 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
16482     VkDevice                                    device,
16483     VkPrivateDataSlot                           privateDataSlot,
16484     const VkAllocationCallbacks*                pAllocator);
16485 
16486 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
16487     VkDevice                                    device,
16488     VkObjectType                                objectType,
16489     uint64_t                                    objectHandle,
16490     VkPrivateDataSlot                           privateDataSlot,
16491     uint64_t                                    data);
16492 
16493 VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
16494     VkDevice                                    device,
16495     VkObjectType                                objectType,
16496     uint64_t                                    objectHandle,
16497     VkPrivateDataSlot                           privateDataSlot,
16498     uint64_t*                                   pData);
16499 #endif
16500 
16501 
16502 // VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
16503 #define VK_EXT_pipeline_creation_cache_control 1
16504 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
16505 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
16506 typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
16507 
16508 
16509 
16510 // VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
16511 #define VK_NV_device_diagnostics_config 1
16512 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
16513 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
16514 
16515 typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
16516     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
16517     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
16518     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
16519     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
16520     VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
16521 } VkDeviceDiagnosticsConfigFlagBitsNV;
16522 typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
16523 typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
16524     VkStructureType    sType;
16525     void*              pNext;
16526     VkBool32           diagnosticsConfig;
16527 } VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
16528 
16529 typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
16530     VkStructureType                     sType;
16531     const void*                         pNext;
16532     VkDeviceDiagnosticsConfigFlagsNV    flags;
16533 } VkDeviceDiagnosticsConfigCreateInfoNV;
16534 
16535 
16536 
16537 // VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
16538 #define VK_QCOM_render_pass_store_ops 1
16539 #define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
16540 #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
16541 
16542 
16543 // VK_NV_cuda_kernel_launch is a preprocessor guard. Do not pass it to API calls.
16544 #define VK_NV_cuda_kernel_launch 1
16545 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaModuleNV)
16546 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaFunctionNV)
16547 #define VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION 2
16548 #define VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME "VK_NV_cuda_kernel_launch"
16549 typedef struct VkCudaModuleCreateInfoNV {
16550     VkStructureType    sType;
16551     const void*        pNext;
16552     size_t             dataSize;
16553     const void*        pData;
16554 } VkCudaModuleCreateInfoNV;
16555 
16556 typedef struct VkCudaFunctionCreateInfoNV {
16557     VkStructureType    sType;
16558     const void*        pNext;
16559     VkCudaModuleNV     module;
16560     const char*        pName;
16561 } VkCudaFunctionCreateInfoNV;
16562 
16563 typedef struct VkCudaLaunchInfoNV {
16564     VkStructureType        sType;
16565     const void*            pNext;
16566     VkCudaFunctionNV       function;
16567     uint32_t               gridDimX;
16568     uint32_t               gridDimY;
16569     uint32_t               gridDimZ;
16570     uint32_t               blockDimX;
16571     uint32_t               blockDimY;
16572     uint32_t               blockDimZ;
16573     uint32_t               sharedMemBytes;
16574     size_t                 paramCount;
16575     const void* const *    pParams;
16576     size_t                 extraCount;
16577     const void* const *    pExtras;
16578 } VkCudaLaunchInfoNV;
16579 
16580 typedef struct VkPhysicalDeviceCudaKernelLaunchFeaturesNV {
16581     VkStructureType    sType;
16582     void*              pNext;
16583     VkBool32           cudaKernelLaunchFeatures;
16584 } VkPhysicalDeviceCudaKernelLaunchFeaturesNV;
16585 
16586 typedef struct VkPhysicalDeviceCudaKernelLaunchPropertiesNV {
16587     VkStructureType    sType;
16588     void*              pNext;
16589     uint32_t           computeCapabilityMinor;
16590     uint32_t           computeCapabilityMajor;
16591 } VkPhysicalDeviceCudaKernelLaunchPropertiesNV;
16592 
16593 typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaModuleNV)(VkDevice device, const VkCudaModuleCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaModuleNV* pModule);
16594 typedef VkResult (VKAPI_PTR *PFN_vkGetCudaModuleCacheNV)(VkDevice device, VkCudaModuleNV module, size_t* pCacheSize, void* pCacheData);
16595 typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaFunctionNV)(VkDevice device, const VkCudaFunctionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaFunctionNV* pFunction);
16596 typedef void (VKAPI_PTR *PFN_vkDestroyCudaModuleNV)(VkDevice device, VkCudaModuleNV module, const VkAllocationCallbacks* pAllocator);
16597 typedef void (VKAPI_PTR *PFN_vkDestroyCudaFunctionNV)(VkDevice device, VkCudaFunctionNV function, const VkAllocationCallbacks* pAllocator);
16598 typedef void (VKAPI_PTR *PFN_vkCmdCudaLaunchKernelNV)(VkCommandBuffer commandBuffer, const VkCudaLaunchInfoNV* pLaunchInfo);
16599 
16600 #ifndef VK_NO_PROTOTYPES
16601 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaModuleNV(
16602     VkDevice                                    device,
16603     const VkCudaModuleCreateInfoNV*             pCreateInfo,
16604     const VkAllocationCallbacks*                pAllocator,
16605     VkCudaModuleNV*                             pModule);
16606 
16607 VKAPI_ATTR VkResult VKAPI_CALL vkGetCudaModuleCacheNV(
16608     VkDevice                                    device,
16609     VkCudaModuleNV                              module,
16610     size_t*                                     pCacheSize,
16611     void*                                       pCacheData);
16612 
16613 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaFunctionNV(
16614     VkDevice                                    device,
16615     const VkCudaFunctionCreateInfoNV*           pCreateInfo,
16616     const VkAllocationCallbacks*                pAllocator,
16617     VkCudaFunctionNV*                           pFunction);
16618 
16619 VKAPI_ATTR void VKAPI_CALL vkDestroyCudaModuleNV(
16620     VkDevice                                    device,
16621     VkCudaModuleNV                              module,
16622     const VkAllocationCallbacks*                pAllocator);
16623 
16624 VKAPI_ATTR void VKAPI_CALL vkDestroyCudaFunctionNV(
16625     VkDevice                                    device,
16626     VkCudaFunctionNV                            function,
16627     const VkAllocationCallbacks*                pAllocator);
16628 
16629 VKAPI_ATTR void VKAPI_CALL vkCmdCudaLaunchKernelNV(
16630     VkCommandBuffer                             commandBuffer,
16631     const VkCudaLaunchInfoNV*                   pLaunchInfo);
16632 #endif
16633 
16634 
16635 // VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
16636 #define VK_NV_low_latency 1
16637 #define VK_NV_LOW_LATENCY_SPEC_VERSION    1
16638 #define VK_NV_LOW_LATENCY_EXTENSION_NAME  "VK_NV_low_latency"
16639 typedef struct VkQueryLowLatencySupportNV {
16640     VkStructureType    sType;
16641     const void*        pNext;
16642     void*              pQueriedLowLatencyData;
16643 } VkQueryLowLatencySupportNV;
16644 
16645 
16646 
16647 // VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
16648 #define VK_EXT_descriptor_buffer 1
16649 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
16650 #define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
16651 #define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
16652 typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
16653     VkStructureType    sType;
16654     void*              pNext;
16655     VkBool32           combinedImageSamplerDescriptorSingleArray;
16656     VkBool32           bufferlessPushDescriptors;
16657     VkBool32           allowSamplerImageViewPostSubmitCreation;
16658     VkDeviceSize       descriptorBufferOffsetAlignment;
16659     uint32_t           maxDescriptorBufferBindings;
16660     uint32_t           maxResourceDescriptorBufferBindings;
16661     uint32_t           maxSamplerDescriptorBufferBindings;
16662     uint32_t           maxEmbeddedImmutableSamplerBindings;
16663     uint32_t           maxEmbeddedImmutableSamplers;
16664     size_t             bufferCaptureReplayDescriptorDataSize;
16665     size_t             imageCaptureReplayDescriptorDataSize;
16666     size_t             imageViewCaptureReplayDescriptorDataSize;
16667     size_t             samplerCaptureReplayDescriptorDataSize;
16668     size_t             accelerationStructureCaptureReplayDescriptorDataSize;
16669     size_t             samplerDescriptorSize;
16670     size_t             combinedImageSamplerDescriptorSize;
16671     size_t             sampledImageDescriptorSize;
16672     size_t             storageImageDescriptorSize;
16673     size_t             uniformTexelBufferDescriptorSize;
16674     size_t             robustUniformTexelBufferDescriptorSize;
16675     size_t             storageTexelBufferDescriptorSize;
16676     size_t             robustStorageTexelBufferDescriptorSize;
16677     size_t             uniformBufferDescriptorSize;
16678     size_t             robustUniformBufferDescriptorSize;
16679     size_t             storageBufferDescriptorSize;
16680     size_t             robustStorageBufferDescriptorSize;
16681     size_t             inputAttachmentDescriptorSize;
16682     size_t             accelerationStructureDescriptorSize;
16683     VkDeviceSize       maxSamplerDescriptorBufferRange;
16684     VkDeviceSize       maxResourceDescriptorBufferRange;
16685     VkDeviceSize       samplerDescriptorBufferAddressSpaceSize;
16686     VkDeviceSize       resourceDescriptorBufferAddressSpaceSize;
16687     VkDeviceSize       descriptorBufferAddressSpaceSize;
16688 } VkPhysicalDeviceDescriptorBufferPropertiesEXT;
16689 
16690 typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
16691     VkStructureType    sType;
16692     void*              pNext;
16693     size_t             combinedImageSamplerDensityMapDescriptorSize;
16694 } VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
16695 
16696 typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
16697     VkStructureType    sType;
16698     void*              pNext;
16699     VkBool32           descriptorBuffer;
16700     VkBool32           descriptorBufferCaptureReplay;
16701     VkBool32           descriptorBufferImageLayoutIgnored;
16702     VkBool32           descriptorBufferPushDescriptors;
16703 } VkPhysicalDeviceDescriptorBufferFeaturesEXT;
16704 
16705 typedef struct VkDescriptorAddressInfoEXT {
16706     VkStructureType    sType;
16707     void*              pNext;
16708     VkDeviceAddress    address;
16709     VkDeviceSize       range;
16710     VkFormat           format;
16711 } VkDescriptorAddressInfoEXT;
16712 
16713 typedef struct VkDescriptorBufferBindingInfoEXT {
16714     VkStructureType       sType;
16715     const void*           pNext;
16716     VkDeviceAddress       address;
16717     VkBufferUsageFlags    usage;
16718 } VkDescriptorBufferBindingInfoEXT;
16719 
16720 typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
16721     VkStructureType    sType;
16722     const void*        pNext;
16723     VkBuffer           buffer;
16724 } VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
16725 
16726 typedef union VkDescriptorDataEXT {
16727     const VkSampler*                     pSampler;
16728     const VkDescriptorImageInfo*         pCombinedImageSampler;
16729     const VkDescriptorImageInfo*         pInputAttachmentImage;
16730     const VkDescriptorImageInfo*         pSampledImage;
16731     const VkDescriptorImageInfo*         pStorageImage;
16732     const VkDescriptorAddressInfoEXT*    pUniformTexelBuffer;
16733     const VkDescriptorAddressInfoEXT*    pStorageTexelBuffer;
16734     const VkDescriptorAddressInfoEXT*    pUniformBuffer;
16735     const VkDescriptorAddressInfoEXT*    pStorageBuffer;
16736     VkDeviceAddress                      accelerationStructure;
16737 } VkDescriptorDataEXT;
16738 
16739 typedef struct VkDescriptorGetInfoEXT {
16740     VkStructureType        sType;
16741     const void*            pNext;
16742     VkDescriptorType       type;
16743     VkDescriptorDataEXT    data;
16744 } VkDescriptorGetInfoEXT;
16745 
16746 typedef struct VkBufferCaptureDescriptorDataInfoEXT {
16747     VkStructureType    sType;
16748     const void*        pNext;
16749     VkBuffer           buffer;
16750 } VkBufferCaptureDescriptorDataInfoEXT;
16751 
16752 typedef struct VkImageCaptureDescriptorDataInfoEXT {
16753     VkStructureType    sType;
16754     const void*        pNext;
16755     VkImage            image;
16756 } VkImageCaptureDescriptorDataInfoEXT;
16757 
16758 typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
16759     VkStructureType    sType;
16760     const void*        pNext;
16761     VkImageView        imageView;
16762 } VkImageViewCaptureDescriptorDataInfoEXT;
16763 
16764 typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
16765     VkStructureType    sType;
16766     const void*        pNext;
16767     VkSampler          sampler;
16768 } VkSamplerCaptureDescriptorDataInfoEXT;
16769 
16770 typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
16771     VkStructureType    sType;
16772     const void*        pNext;
16773     const void*        opaqueCaptureDescriptorData;
16774 } VkOpaqueCaptureDescriptorDataCreateInfoEXT;
16775 
16776 typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
16777     VkStructureType               sType;
16778     const void*                   pNext;
16779     VkAccelerationStructureKHR    accelerationStructure;
16780     VkAccelerationStructureNV     accelerationStructureNV;
16781 } VkAccelerationStructureCaptureDescriptorDataInfoEXT;
16782 
16783 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
16784 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
16785 typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
16786 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
16787 typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets);
16788 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
16789 typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16790 typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16791 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16792 typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16793 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16794 
16795 #ifndef VK_NO_PROTOTYPES
16796 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
16797     VkDevice                                    device,
16798     VkDescriptorSetLayout                       layout,
16799     VkDeviceSize*                               pLayoutSizeInBytes);
16800 
16801 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
16802     VkDevice                                    device,
16803     VkDescriptorSetLayout                       layout,
16804     uint32_t                                    binding,
16805     VkDeviceSize*                               pOffset);
16806 
16807 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
16808     VkDevice                                    device,
16809     const VkDescriptorGetInfoEXT*               pDescriptorInfo,
16810     size_t                                      dataSize,
16811     void*                                       pDescriptor);
16812 
16813 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
16814     VkCommandBuffer                             commandBuffer,
16815     uint32_t                                    bufferCount,
16816     const VkDescriptorBufferBindingInfoEXT*     pBindingInfos);
16817 
16818 VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
16819     VkCommandBuffer                             commandBuffer,
16820     VkPipelineBindPoint                         pipelineBindPoint,
16821     VkPipelineLayout                            layout,
16822     uint32_t                                    firstSet,
16823     uint32_t                                    setCount,
16824     const uint32_t*                             pBufferIndices,
16825     const VkDeviceSize*                         pOffsets);
16826 
16827 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
16828     VkCommandBuffer                             commandBuffer,
16829     VkPipelineBindPoint                         pipelineBindPoint,
16830     VkPipelineLayout                            layout,
16831     uint32_t                                    set);
16832 
16833 VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
16834     VkDevice                                    device,
16835     const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
16836     void*                                       pData);
16837 
16838 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
16839     VkDevice                                    device,
16840     const VkImageCaptureDescriptorDataInfoEXT*  pInfo,
16841     void*                                       pData);
16842 
16843 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
16844     VkDevice                                    device,
16845     const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
16846     void*                                       pData);
16847 
16848 VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
16849     VkDevice                                    device,
16850     const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
16851     void*                                       pData);
16852 
16853 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
16854     VkDevice                                    device,
16855     const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
16856     void*                                       pData);
16857 #endif
16858 
16859 
16860 // VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
16861 #define VK_EXT_graphics_pipeline_library 1
16862 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
16863 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
16864 
16865 typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
16866     VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
16867     VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
16868     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
16869     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
16870     VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16871 } VkGraphicsPipelineLibraryFlagBitsEXT;
16872 typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
16873 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
16874     VkStructureType    sType;
16875     void*              pNext;
16876     VkBool32           graphicsPipelineLibrary;
16877 } VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
16878 
16879 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
16880     VkStructureType    sType;
16881     void*              pNext;
16882     VkBool32           graphicsPipelineLibraryFastLinking;
16883     VkBool32           graphicsPipelineLibraryIndependentInterpolationDecoration;
16884 } VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
16885 
16886 typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
16887     VkStructureType                      sType;
16888     const void*                          pNext;
16889     VkGraphicsPipelineLibraryFlagsEXT    flags;
16890 } VkGraphicsPipelineLibraryCreateInfoEXT;
16891 
16892 
16893 
16894 // VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
16895 #define VK_AMD_shader_early_and_late_fragment_tests 1
16896 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
16897 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
16898 typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
16899     VkStructureType    sType;
16900     void*              pNext;
16901     VkBool32           shaderEarlyAndLateFragmentTests;
16902 } VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
16903 
16904 
16905 
16906 // VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
16907 #define VK_NV_fragment_shading_rate_enums 1
16908 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
16909 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
16910 
16911 typedef enum VkFragmentShadingRateTypeNV {
16912     VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
16913     VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
16914     VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16915 } VkFragmentShadingRateTypeNV;
16916 
16917 typedef enum VkFragmentShadingRateNV {
16918     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
16919     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
16920     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
16921     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
16922     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
16923     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
16924     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
16925     VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
16926     VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
16927     VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
16928     VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
16929     VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
16930     VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
16931 } VkFragmentShadingRateNV;
16932 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
16933     VkStructureType    sType;
16934     void*              pNext;
16935     VkBool32           fragmentShadingRateEnums;
16936     VkBool32           supersampleFragmentShadingRates;
16937     VkBool32           noInvocationFragmentShadingRates;
16938 } VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
16939 
16940 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
16941     VkStructureType          sType;
16942     void*                    pNext;
16943     VkSampleCountFlagBits    maxFragmentShadingRateInvocationCount;
16944 } VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
16945 
16946 typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
16947     VkStructureType                       sType;
16948     const void*                           pNext;
16949     VkFragmentShadingRateTypeNV           shadingRateType;
16950     VkFragmentShadingRateNV               shadingRate;
16951     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
16952 } VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
16953 
16954 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer           commandBuffer, VkFragmentShadingRateNV                     shadingRate, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
16955 
16956 #ifndef VK_NO_PROTOTYPES
16957 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
16958     VkCommandBuffer                             commandBuffer,
16959     VkFragmentShadingRateNV                     shadingRate,
16960     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
16961 #endif
16962 
16963 
16964 // VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
16965 #define VK_NV_ray_tracing_motion_blur 1
16966 #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
16967 #define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
16968 
16969 typedef enum VkAccelerationStructureMotionInstanceTypeNV {
16970     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
16971     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
16972     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
16973     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16974 } VkAccelerationStructureMotionInstanceTypeNV;
16975 typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
16976 typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
16977 typedef union VkDeviceOrHostAddressConstKHR {
16978     VkDeviceAddress    deviceAddress;
16979     const void*        hostAddress;
16980 } VkDeviceOrHostAddressConstKHR;
16981 
16982 typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
16983     VkStructureType                  sType;
16984     const void*                      pNext;
16985     VkDeviceOrHostAddressConstKHR    vertexData;
16986 } VkAccelerationStructureGeometryMotionTrianglesDataNV;
16987 
16988 typedef struct VkAccelerationStructureMotionInfoNV {
16989     VkStructureType                             sType;
16990     const void*                                 pNext;
16991     uint32_t                                    maxInstances;
16992     VkAccelerationStructureMotionInfoFlagsNV    flags;
16993 } VkAccelerationStructureMotionInfoNV;
16994 
16995 typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
16996     VkTransformMatrixKHR          transformT0;
16997     VkTransformMatrixKHR          transformT1;
16998     uint32_t                      instanceCustomIndex:24;
16999     uint32_t                      mask:8;
17000     uint32_t                      instanceShaderBindingTableRecordOffset:24;
17001     VkGeometryInstanceFlagsKHR    flags:8;
17002     uint64_t                      accelerationStructureReference;
17003 } VkAccelerationStructureMatrixMotionInstanceNV;
17004 
17005 typedef struct VkSRTDataNV {
17006     float    sx;
17007     float    a;
17008     float    b;
17009     float    pvx;
17010     float    sy;
17011     float    c;
17012     float    pvy;
17013     float    sz;
17014     float    pvz;
17015     float    qx;
17016     float    qy;
17017     float    qz;
17018     float    qw;
17019     float    tx;
17020     float    ty;
17021     float    tz;
17022 } VkSRTDataNV;
17023 
17024 typedef struct VkAccelerationStructureSRTMotionInstanceNV {
17025     VkSRTDataNV                   transformT0;
17026     VkSRTDataNV                   transformT1;
17027     uint32_t                      instanceCustomIndex:24;
17028     uint32_t                      mask:8;
17029     uint32_t                      instanceShaderBindingTableRecordOffset:24;
17030     VkGeometryInstanceFlagsKHR    flags:8;
17031     uint64_t                      accelerationStructureReference;
17032 } VkAccelerationStructureSRTMotionInstanceNV;
17033 
17034 typedef union VkAccelerationStructureMotionInstanceDataNV {
17035     VkAccelerationStructureInstanceKHR               staticInstance;
17036     VkAccelerationStructureMatrixMotionInstanceNV    matrixMotionInstance;
17037     VkAccelerationStructureSRTMotionInstanceNV       srtMotionInstance;
17038 } VkAccelerationStructureMotionInstanceDataNV;
17039 
17040 typedef struct VkAccelerationStructureMotionInstanceNV {
17041     VkAccelerationStructureMotionInstanceTypeNV     type;
17042     VkAccelerationStructureMotionInstanceFlagsNV    flags;
17043     VkAccelerationStructureMotionInstanceDataNV     data;
17044 } VkAccelerationStructureMotionInstanceNV;
17045 
17046 typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
17047     VkStructureType    sType;
17048     void*              pNext;
17049     VkBool32           rayTracingMotionBlur;
17050     VkBool32           rayTracingMotionBlurPipelineTraceRaysIndirect;
17051 } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
17052 
17053 
17054 
17055 // VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
17056 #define VK_EXT_ycbcr_2plane_444_formats 1
17057 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
17058 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
17059 typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
17060     VkStructureType    sType;
17061     void*              pNext;
17062     VkBool32           ycbcr2plane444Formats;
17063 } VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
17064 
17065 
17066 
17067 // VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
17068 #define VK_EXT_fragment_density_map2 1
17069 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
17070 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
17071 typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
17072     VkStructureType    sType;
17073     void*              pNext;
17074     VkBool32           fragmentDensityMapDeferred;
17075 } VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
17076 
17077 typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
17078     VkStructureType    sType;
17079     void*              pNext;
17080     VkBool32           subsampledLoads;
17081     VkBool32           subsampledCoarseReconstructionEarlyAccess;
17082     uint32_t           maxSubsampledArrayLayers;
17083     uint32_t           maxDescriptorSetSubsampledSamplers;
17084 } VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
17085 
17086 
17087 
17088 // VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
17089 #define VK_QCOM_rotated_copy_commands 1
17090 #define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
17091 #define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
17092 typedef struct VkCopyCommandTransformInfoQCOM {
17093     VkStructureType                  sType;
17094     const void*                      pNext;
17095     VkSurfaceTransformFlagBitsKHR    transform;
17096 } VkCopyCommandTransformInfoQCOM;
17097 
17098 
17099 
17100 // VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
17101 #define VK_EXT_image_robustness 1
17102 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
17103 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
17104 typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
17105 
17106 
17107 
17108 // VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
17109 #define VK_EXT_image_compression_control 1
17110 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
17111 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
17112 
17113 typedef enum VkImageCompressionFlagBitsEXT {
17114     VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
17115     VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
17116     VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
17117     VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
17118     VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17119 } VkImageCompressionFlagBitsEXT;
17120 typedef VkFlags VkImageCompressionFlagsEXT;
17121 
17122 typedef enum VkImageCompressionFixedRateFlagBitsEXT {
17123     VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
17124     VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
17125     VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
17126     VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
17127     VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
17128     VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
17129     VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
17130     VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
17131     VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
17132     VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
17133     VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
17134     VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
17135     VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
17136     VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
17137     VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
17138     VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
17139     VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
17140     VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
17141     VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
17142     VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
17143     VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
17144     VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
17145     VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
17146     VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
17147     VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
17148     VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17149 } VkImageCompressionFixedRateFlagBitsEXT;
17150 typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
17151 typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
17152     VkStructureType    sType;
17153     void*              pNext;
17154     VkBool32           imageCompressionControl;
17155 } VkPhysicalDeviceImageCompressionControlFeaturesEXT;
17156 
17157 typedef struct VkImageCompressionControlEXT {
17158     VkStructureType                         sType;
17159     const void*                             pNext;
17160     VkImageCompressionFlagsEXT              flags;
17161     uint32_t                                compressionControlPlaneCount;
17162     VkImageCompressionFixedRateFlagsEXT*    pFixedRateFlags;
17163 } VkImageCompressionControlEXT;
17164 
17165 typedef struct VkImageCompressionPropertiesEXT {
17166     VkStructureType                        sType;
17167     void*                                  pNext;
17168     VkImageCompressionFlagsEXT             imageCompressionFlags;
17169     VkImageCompressionFixedRateFlagsEXT    imageCompressionFixedRateFlags;
17170 } VkImageCompressionPropertiesEXT;
17171 
17172 
17173 
17174 // VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
17175 #define VK_EXT_attachment_feedback_loop_layout 1
17176 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
17177 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
17178 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
17179     VkStructureType    sType;
17180     void*              pNext;
17181     VkBool32           attachmentFeedbackLoopLayout;
17182 } VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
17183 
17184 
17185 
17186 // VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
17187 #define VK_EXT_4444_formats 1
17188 #define VK_EXT_4444_FORMATS_SPEC_VERSION  1
17189 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
17190 typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
17191     VkStructureType    sType;
17192     void*              pNext;
17193     VkBool32           formatA4R4G4B4;
17194     VkBool32           formatA4B4G4R4;
17195 } VkPhysicalDevice4444FormatsFeaturesEXT;
17196 
17197 
17198 
17199 // VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
17200 #define VK_EXT_device_fault 1
17201 #define VK_EXT_DEVICE_FAULT_SPEC_VERSION  2
17202 #define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
17203 
17204 typedef enum VkDeviceFaultAddressTypeEXT {
17205     VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
17206     VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
17207     VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
17208     VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
17209     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
17210     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
17211     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
17212     VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
17213 } VkDeviceFaultAddressTypeEXT;
17214 
17215 typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
17216     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
17217     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
17218 } VkDeviceFaultVendorBinaryHeaderVersionEXT;
17219 typedef struct VkPhysicalDeviceFaultFeaturesEXT {
17220     VkStructureType    sType;
17221     void*              pNext;
17222     VkBool32           deviceFault;
17223     VkBool32           deviceFaultVendorBinary;
17224 } VkPhysicalDeviceFaultFeaturesEXT;
17225 
17226 typedef struct VkDeviceFaultCountsEXT {
17227     VkStructureType    sType;
17228     void*              pNext;
17229     uint32_t           addressInfoCount;
17230     uint32_t           vendorInfoCount;
17231     VkDeviceSize       vendorBinarySize;
17232 } VkDeviceFaultCountsEXT;
17233 
17234 typedef struct VkDeviceFaultAddressInfoEXT {
17235     VkDeviceFaultAddressTypeEXT    addressType;
17236     VkDeviceAddress                reportedAddress;
17237     VkDeviceSize                   addressPrecision;
17238 } VkDeviceFaultAddressInfoEXT;
17239 
17240 typedef struct VkDeviceFaultVendorInfoEXT {
17241     char        description[VK_MAX_DESCRIPTION_SIZE];
17242     uint64_t    vendorFaultCode;
17243     uint64_t    vendorFaultData;
17244 } VkDeviceFaultVendorInfoEXT;
17245 
17246 typedef struct VkDeviceFaultInfoEXT {
17247     VkStructureType                 sType;
17248     void*                           pNext;
17249     char                            description[VK_MAX_DESCRIPTION_SIZE];
17250     VkDeviceFaultAddressInfoEXT*    pAddressInfos;
17251     VkDeviceFaultVendorInfoEXT*     pVendorInfos;
17252     void*                           pVendorBinaryData;
17253 } VkDeviceFaultInfoEXT;
17254 
17255 typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
17256     uint32_t                                     headerSize;
17257     VkDeviceFaultVendorBinaryHeaderVersionEXT    headerVersion;
17258     uint32_t                                     vendorID;
17259     uint32_t                                     deviceID;
17260     uint32_t                                     driverVersion;
17261     uint8_t                                      pipelineCacheUUID[VK_UUID_SIZE];
17262     uint32_t                                     applicationNameOffset;
17263     uint32_t                                     applicationVersion;
17264     uint32_t                                     engineNameOffset;
17265     uint32_t                                     engineVersion;
17266     uint32_t                                     apiVersion;
17267 } VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
17268 
17269 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
17270 
17271 #ifndef VK_NO_PROTOTYPES
17272 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
17273     VkDevice                                    device,
17274     VkDeviceFaultCountsEXT*                     pFaultCounts,
17275     VkDeviceFaultInfoEXT*                       pFaultInfo);
17276 #endif
17277 
17278 
17279 // VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
17280 #define VK_ARM_rasterization_order_attachment_access 1
17281 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
17282 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
17283 typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
17284     VkStructureType    sType;
17285     void*              pNext;
17286     VkBool32           rasterizationOrderColorAttachmentAccess;
17287     VkBool32           rasterizationOrderDepthAttachmentAccess;
17288     VkBool32           rasterizationOrderStencilAttachmentAccess;
17289 } VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
17290 
17291 typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
17292 
17293 
17294 
17295 // VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
17296 #define VK_EXT_rgba10x6_formats 1
17297 #define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
17298 #define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
17299 typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
17300     VkStructureType    sType;
17301     void*              pNext;
17302     VkBool32           formatRgba10x6WithoutYCbCrSampler;
17303 } VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
17304 
17305 
17306 
17307 // VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
17308 #define VK_VALVE_mutable_descriptor_type 1
17309 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
17310 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
17311 typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
17312     VkStructureType    sType;
17313     void*              pNext;
17314     VkBool32           mutableDescriptorType;
17315 } VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
17316 
17317 typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
17318 
17319 typedef struct VkMutableDescriptorTypeListEXT {
17320     uint32_t                   descriptorTypeCount;
17321     const VkDescriptorType*    pDescriptorTypes;
17322 } VkMutableDescriptorTypeListEXT;
17323 
17324 typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
17325 
17326 typedef struct VkMutableDescriptorTypeCreateInfoEXT {
17327     VkStructureType                          sType;
17328     const void*                              pNext;
17329     uint32_t                                 mutableDescriptorTypeListCount;
17330     const VkMutableDescriptorTypeListEXT*    pMutableDescriptorTypeLists;
17331 } VkMutableDescriptorTypeCreateInfoEXT;
17332 
17333 typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
17334 
17335 
17336 
17337 // VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
17338 #define VK_EXT_vertex_input_dynamic_state 1
17339 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
17340 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
17341 typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
17342     VkStructureType    sType;
17343     void*              pNext;
17344     VkBool32           vertexInputDynamicState;
17345 } VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
17346 
17347 typedef struct VkVertexInputBindingDescription2EXT {
17348     VkStructureType      sType;
17349     void*                pNext;
17350     uint32_t             binding;
17351     uint32_t             stride;
17352     VkVertexInputRate    inputRate;
17353     uint32_t             divisor;
17354 } VkVertexInputBindingDescription2EXT;
17355 
17356 typedef struct VkVertexInputAttributeDescription2EXT {
17357     VkStructureType    sType;
17358     void*              pNext;
17359     uint32_t           location;
17360     uint32_t           binding;
17361     VkFormat           format;
17362     uint32_t           offset;
17363 } VkVertexInputAttributeDescription2EXT;
17364 
17365 typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
17366 
17367 #ifndef VK_NO_PROTOTYPES
17368 VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
17369     VkCommandBuffer                             commandBuffer,
17370     uint32_t                                    vertexBindingDescriptionCount,
17371     const VkVertexInputBindingDescription2EXT*  pVertexBindingDescriptions,
17372     uint32_t                                    vertexAttributeDescriptionCount,
17373     const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
17374 #endif
17375 
17376 
17377 // VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
17378 #define VK_EXT_physical_device_drm 1
17379 #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
17380 #define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
17381 typedef struct VkPhysicalDeviceDrmPropertiesEXT {
17382     VkStructureType    sType;
17383     void*              pNext;
17384     VkBool32           hasPrimary;
17385     VkBool32           hasRender;
17386     int64_t            primaryMajor;
17387     int64_t            primaryMinor;
17388     int64_t            renderMajor;
17389     int64_t            renderMinor;
17390 } VkPhysicalDeviceDrmPropertiesEXT;
17391 
17392 
17393 
17394 // VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
17395 #define VK_EXT_device_address_binding_report 1
17396 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
17397 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
17398 
17399 typedef enum VkDeviceAddressBindingTypeEXT {
17400     VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
17401     VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
17402     VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
17403 } VkDeviceAddressBindingTypeEXT;
17404 
17405 typedef enum VkDeviceAddressBindingFlagBitsEXT {
17406     VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
17407     VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17408 } VkDeviceAddressBindingFlagBitsEXT;
17409 typedef VkFlags VkDeviceAddressBindingFlagsEXT;
17410 typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
17411     VkStructureType    sType;
17412     void*              pNext;
17413     VkBool32           reportAddressBinding;
17414 } VkPhysicalDeviceAddressBindingReportFeaturesEXT;
17415 
17416 typedef struct VkDeviceAddressBindingCallbackDataEXT {
17417     VkStructureType                   sType;
17418     void*                             pNext;
17419     VkDeviceAddressBindingFlagsEXT    flags;
17420     VkDeviceAddress                   baseAddress;
17421     VkDeviceSize                      size;
17422     VkDeviceAddressBindingTypeEXT     bindingType;
17423 } VkDeviceAddressBindingCallbackDataEXT;
17424 
17425 
17426 
17427 // VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
17428 #define VK_EXT_depth_clip_control 1
17429 #define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
17430 #define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
17431 typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
17432     VkStructureType    sType;
17433     void*              pNext;
17434     VkBool32           depthClipControl;
17435 } VkPhysicalDeviceDepthClipControlFeaturesEXT;
17436 
17437 typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
17438     VkStructureType    sType;
17439     const void*        pNext;
17440     VkBool32           negativeOneToOne;
17441 } VkPipelineViewportDepthClipControlCreateInfoEXT;
17442 
17443 
17444 
17445 // VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
17446 #define VK_EXT_primitive_topology_list_restart 1
17447 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
17448 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
17449 typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
17450     VkStructureType    sType;
17451     void*              pNext;
17452     VkBool32           primitiveTopologyListRestart;
17453     VkBool32           primitiveTopologyPatchListRestart;
17454 } VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
17455 
17456 
17457 
17458 // VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
17459 #define VK_HUAWEI_subpass_shading 1
17460 #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
17461 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
17462 typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
17463     VkStructureType    sType;
17464     void*              pNext;
17465     VkRenderPass       renderPass;
17466     uint32_t           subpass;
17467 } VkSubpassShadingPipelineCreateInfoHUAWEI;
17468 
17469 typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
17470     VkStructureType    sType;
17471     void*              pNext;
17472     VkBool32           subpassShading;
17473 } VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
17474 
17475 typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
17476     VkStructureType    sType;
17477     void*              pNext;
17478     uint32_t           maxSubpassShadingWorkgroupSizeAspectRatio;
17479 } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
17480 
17481 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
17482 typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
17483 
17484 #ifndef VK_NO_PROTOTYPES
17485 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
17486     VkDevice                                    device,
17487     VkRenderPass                                renderpass,
17488     VkExtent2D*                                 pMaxWorkgroupSize);
17489 
17490 VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
17491     VkCommandBuffer                             commandBuffer);
17492 #endif
17493 
17494 
17495 // VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
17496 #define VK_HUAWEI_invocation_mask 1
17497 #define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
17498 #define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
17499 typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
17500     VkStructureType    sType;
17501     void*              pNext;
17502     VkBool32           invocationMask;
17503 } VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
17504 
17505 typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
17506 
17507 #ifndef VK_NO_PROTOTYPES
17508 VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
17509     VkCommandBuffer                             commandBuffer,
17510     VkImageView                                 imageView,
17511     VkImageLayout                               imageLayout);
17512 #endif
17513 
17514 
17515 // VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
17516 #define VK_NV_external_memory_rdma 1
17517 typedef void* VkRemoteAddressNV;
17518 #define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
17519 #define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
17520 typedef struct VkMemoryGetRemoteAddressInfoNV {
17521     VkStructureType                       sType;
17522     const void*                           pNext;
17523     VkDeviceMemory                        memory;
17524     VkExternalMemoryHandleTypeFlagBits    handleType;
17525 } VkMemoryGetRemoteAddressInfoNV;
17526 
17527 typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
17528     VkStructureType    sType;
17529     void*              pNext;
17530     VkBool32           externalMemoryRDMA;
17531 } VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
17532 
17533 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
17534 
17535 #ifndef VK_NO_PROTOTYPES
17536 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
17537     VkDevice                                    device,
17538     const VkMemoryGetRemoteAddressInfoNV*       pMemoryGetRemoteAddressInfo,
17539     VkRemoteAddressNV*                          pAddress);
17540 #endif
17541 
17542 
17543 // VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
17544 #define VK_EXT_pipeline_properties 1
17545 #define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
17546 #define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
17547 typedef VkPipelineInfoKHR VkPipelineInfoEXT;
17548 
17549 typedef struct VkPipelinePropertiesIdentifierEXT {
17550     VkStructureType    sType;
17551     void*              pNext;
17552     uint8_t            pipelineIdentifier[VK_UUID_SIZE];
17553 } VkPipelinePropertiesIdentifierEXT;
17554 
17555 typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
17556     VkStructureType    sType;
17557     void*              pNext;
17558     VkBool32           pipelinePropertiesIdentifier;
17559 } VkPhysicalDevicePipelinePropertiesFeaturesEXT;
17560 
17561 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
17562 
17563 #ifndef VK_NO_PROTOTYPES
17564 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
17565     VkDevice                                    device,
17566     const VkPipelineInfoEXT*                    pPipelineInfo,
17567     VkBaseOutStructure*                         pPipelineProperties);
17568 #endif
17569 
17570 
17571 // VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
17572 #define VK_EXT_frame_boundary 1
17573 #define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
17574 #define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
17575 
17576 typedef enum VkFrameBoundaryFlagBitsEXT {
17577     VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
17578     VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17579 } VkFrameBoundaryFlagBitsEXT;
17580 typedef VkFlags VkFrameBoundaryFlagsEXT;
17581 typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
17582     VkStructureType    sType;
17583     void*              pNext;
17584     VkBool32           frameBoundary;
17585 } VkPhysicalDeviceFrameBoundaryFeaturesEXT;
17586 
17587 typedef struct VkFrameBoundaryEXT {
17588     VkStructureType            sType;
17589     const void*                pNext;
17590     VkFrameBoundaryFlagsEXT    flags;
17591     uint64_t                   frameID;
17592     uint32_t                   imageCount;
17593     const VkImage*             pImages;
17594     uint32_t                   bufferCount;
17595     const VkBuffer*            pBuffers;
17596     uint64_t                   tagName;
17597     size_t                     tagSize;
17598     const void*                pTag;
17599 } VkFrameBoundaryEXT;
17600 
17601 
17602 
17603 // VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
17604 #define VK_EXT_multisampled_render_to_single_sampled 1
17605 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
17606 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
17607 typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
17608     VkStructureType    sType;
17609     void*              pNext;
17610     VkBool32           multisampledRenderToSingleSampled;
17611 } VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
17612 
17613 typedef struct VkSubpassResolvePerformanceQueryEXT {
17614     VkStructureType    sType;
17615     void*              pNext;
17616     VkBool32           optimal;
17617 } VkSubpassResolvePerformanceQueryEXT;
17618 
17619 typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
17620     VkStructureType          sType;
17621     const void*              pNext;
17622     VkBool32                 multisampledRenderToSingleSampledEnable;
17623     VkSampleCountFlagBits    rasterizationSamples;
17624 } VkMultisampledRenderToSingleSampledInfoEXT;
17625 
17626 
17627 
17628 // VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
17629 #define VK_EXT_extended_dynamic_state2 1
17630 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
17631 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
17632 typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
17633     VkStructureType    sType;
17634     void*              pNext;
17635     VkBool32           extendedDynamicState2;
17636     VkBool32           extendedDynamicState2LogicOp;
17637     VkBool32           extendedDynamicState2PatchControlPoints;
17638 } VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
17639 
17640 typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
17641 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
17642 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
17643 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
17644 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
17645 
17646 #ifndef VK_NO_PROTOTYPES
17647 VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
17648     VkCommandBuffer                             commandBuffer,
17649     uint32_t                                    patchControlPoints);
17650 
17651 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
17652     VkCommandBuffer                             commandBuffer,
17653     VkBool32                                    rasterizerDiscardEnable);
17654 
17655 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
17656     VkCommandBuffer                             commandBuffer,
17657     VkBool32                                    depthBiasEnable);
17658 
17659 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
17660     VkCommandBuffer                             commandBuffer,
17661     VkLogicOp                                   logicOp);
17662 
17663 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
17664     VkCommandBuffer                             commandBuffer,
17665     VkBool32                                    primitiveRestartEnable);
17666 #endif
17667 
17668 
17669 // VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
17670 #define VK_EXT_color_write_enable 1
17671 #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
17672 #define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
17673 typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
17674     VkStructureType    sType;
17675     void*              pNext;
17676     VkBool32           colorWriteEnable;
17677 } VkPhysicalDeviceColorWriteEnableFeaturesEXT;
17678 
17679 typedef struct VkPipelineColorWriteCreateInfoEXT {
17680     VkStructureType    sType;
17681     const void*        pNext;
17682     uint32_t           attachmentCount;
17683     const VkBool32*    pColorWriteEnables;
17684 } VkPipelineColorWriteCreateInfoEXT;
17685 
17686 typedef void                                    (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer       commandBuffer, uint32_t                                attachmentCount, const VkBool32*   pColorWriteEnables);
17687 
17688 #ifndef VK_NO_PROTOTYPES
17689 VKAPI_ATTR void                                    VKAPI_CALL vkCmdSetColorWriteEnableEXT(
17690     VkCommandBuffer                             commandBuffer,
17691     uint32_t                                    attachmentCount,
17692     const VkBool32*                             pColorWriteEnables);
17693 #endif
17694 
17695 
17696 // VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
17697 #define VK_EXT_primitives_generated_query 1
17698 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
17699 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
17700 typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
17701     VkStructureType    sType;
17702     void*              pNext;
17703     VkBool32           primitivesGeneratedQuery;
17704     VkBool32           primitivesGeneratedQueryWithRasterizerDiscard;
17705     VkBool32           primitivesGeneratedQueryWithNonZeroStreams;
17706 } VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
17707 
17708 
17709 
17710 // VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
17711 #define VK_EXT_global_priority_query 1
17712 #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
17713 #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
17714 #define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT   VK_MAX_GLOBAL_PRIORITY_SIZE
17715 typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
17716 
17717 typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesEXT;
17718 
17719 
17720 
17721 // VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
17722 #define VK_EXT_image_view_min_lod 1
17723 #define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
17724 #define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
17725 typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
17726     VkStructureType    sType;
17727     void*              pNext;
17728     VkBool32           minLod;
17729 } VkPhysicalDeviceImageViewMinLodFeaturesEXT;
17730 
17731 typedef struct VkImageViewMinLodCreateInfoEXT {
17732     VkStructureType    sType;
17733     const void*        pNext;
17734     float              minLod;
17735 } VkImageViewMinLodCreateInfoEXT;
17736 
17737 
17738 
17739 // VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
17740 #define VK_EXT_multi_draw 1
17741 #define VK_EXT_MULTI_DRAW_SPEC_VERSION    1
17742 #define VK_EXT_MULTI_DRAW_EXTENSION_NAME  "VK_EXT_multi_draw"
17743 typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
17744     VkStructureType    sType;
17745     void*              pNext;
17746     VkBool32           multiDraw;
17747 } VkPhysicalDeviceMultiDrawFeaturesEXT;
17748 
17749 typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
17750     VkStructureType    sType;
17751     void*              pNext;
17752     uint32_t           maxMultiDrawCount;
17753 } VkPhysicalDeviceMultiDrawPropertiesEXT;
17754 
17755 typedef struct VkMultiDrawInfoEXT {
17756     uint32_t    firstVertex;
17757     uint32_t    vertexCount;
17758 } VkMultiDrawInfoEXT;
17759 
17760 typedef struct VkMultiDrawIndexedInfoEXT {
17761     uint32_t    firstIndex;
17762     uint32_t    indexCount;
17763     int32_t     vertexOffset;
17764 } VkMultiDrawIndexedInfoEXT;
17765 
17766 typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
17767 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);
17768 
17769 #ifndef VK_NO_PROTOTYPES
17770 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
17771     VkCommandBuffer                             commandBuffer,
17772     uint32_t                                    drawCount,
17773     const VkMultiDrawInfoEXT*                   pVertexInfo,
17774     uint32_t                                    instanceCount,
17775     uint32_t                                    firstInstance,
17776     uint32_t                                    stride);
17777 
17778 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
17779     VkCommandBuffer                             commandBuffer,
17780     uint32_t                                    drawCount,
17781     const VkMultiDrawIndexedInfoEXT*            pIndexInfo,
17782     uint32_t                                    instanceCount,
17783     uint32_t                                    firstInstance,
17784     uint32_t                                    stride,
17785     const int32_t*                              pVertexOffset);
17786 #endif
17787 
17788 
17789 // VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
17790 #define VK_EXT_image_2d_view_of_3d 1
17791 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
17792 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
17793 typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
17794     VkStructureType    sType;
17795     void*              pNext;
17796     VkBool32           image2DViewOf3D;
17797     VkBool32           sampler2DViewOf3D;
17798 } VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
17799 
17800 
17801 
17802 // VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
17803 #define VK_EXT_shader_tile_image 1
17804 #define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
17805 #define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
17806 typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
17807     VkStructureType    sType;
17808     void*              pNext;
17809     VkBool32           shaderTileImageColorReadAccess;
17810     VkBool32           shaderTileImageDepthReadAccess;
17811     VkBool32           shaderTileImageStencilReadAccess;
17812 } VkPhysicalDeviceShaderTileImageFeaturesEXT;
17813 
17814 typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
17815     VkStructureType    sType;
17816     void*              pNext;
17817     VkBool32           shaderTileImageCoherentReadAccelerated;
17818     VkBool32           shaderTileImageReadSampleFromPixelRateInvocation;
17819     VkBool32           shaderTileImageReadFromHelperInvocation;
17820 } VkPhysicalDeviceShaderTileImagePropertiesEXT;
17821 
17822 
17823 
17824 // VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
17825 #define VK_EXT_opacity_micromap 1
17826 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
17827 #define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
17828 #define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
17829 
17830 typedef enum VkMicromapTypeEXT {
17831     VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
17832 #ifdef VK_ENABLE_BETA_EXTENSIONS
17833     VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
17834 #endif
17835     VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
17836 } VkMicromapTypeEXT;
17837 
17838 typedef enum VkBuildMicromapModeEXT {
17839     VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
17840     VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
17841 } VkBuildMicromapModeEXT;
17842 
17843 typedef enum VkCopyMicromapModeEXT {
17844     VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
17845     VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
17846     VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
17847     VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
17848     VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
17849 } VkCopyMicromapModeEXT;
17850 
17851 typedef enum VkOpacityMicromapFormatEXT {
17852     VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
17853     VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
17854     VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
17855 } VkOpacityMicromapFormatEXT;
17856 
17857 typedef enum VkOpacityMicromapSpecialIndexEXT {
17858     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
17859     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
17860     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
17861     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
17862     VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
17863 } VkOpacityMicromapSpecialIndexEXT;
17864 
17865 typedef enum VkAccelerationStructureCompatibilityKHR {
17866     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
17867     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
17868     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
17869 } VkAccelerationStructureCompatibilityKHR;
17870 
17871 typedef enum VkAccelerationStructureBuildTypeKHR {
17872     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
17873     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
17874     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
17875     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
17876 } VkAccelerationStructureBuildTypeKHR;
17877 
17878 typedef enum VkBuildMicromapFlagBitsEXT {
17879     VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
17880     VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
17881     VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
17882     VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17883 } VkBuildMicromapFlagBitsEXT;
17884 typedef VkFlags VkBuildMicromapFlagsEXT;
17885 
17886 typedef enum VkMicromapCreateFlagBitsEXT {
17887     VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
17888     VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17889 } VkMicromapCreateFlagBitsEXT;
17890 typedef VkFlags VkMicromapCreateFlagsEXT;
17891 typedef struct VkMicromapUsageEXT {
17892     uint32_t    count;
17893     uint32_t    subdivisionLevel;
17894     uint32_t    format;
17895 } VkMicromapUsageEXT;
17896 
17897 typedef union VkDeviceOrHostAddressKHR {
17898     VkDeviceAddress    deviceAddress;
17899     void*              hostAddress;
17900 } VkDeviceOrHostAddressKHR;
17901 
17902 typedef struct VkMicromapBuildInfoEXT {
17903     VkStructureType                     sType;
17904     const void*                         pNext;
17905     VkMicromapTypeEXT                   type;
17906     VkBuildMicromapFlagsEXT             flags;
17907     VkBuildMicromapModeEXT              mode;
17908     VkMicromapEXT                       dstMicromap;
17909     uint32_t                            usageCountsCount;
17910     const VkMicromapUsageEXT*           pUsageCounts;
17911     const VkMicromapUsageEXT* const*    ppUsageCounts;
17912     VkDeviceOrHostAddressConstKHR       data;
17913     VkDeviceOrHostAddressKHR            scratchData;
17914     VkDeviceOrHostAddressConstKHR       triangleArray;
17915     VkDeviceSize                        triangleArrayStride;
17916 } VkMicromapBuildInfoEXT;
17917 
17918 typedef struct VkMicromapCreateInfoEXT {
17919     VkStructureType             sType;
17920     const void*                 pNext;
17921     VkMicromapCreateFlagsEXT    createFlags;
17922     VkBuffer                    buffer;
17923     VkDeviceSize                offset;
17924     VkDeviceSize                size;
17925     VkMicromapTypeEXT           type;
17926     VkDeviceAddress             deviceAddress;
17927 } VkMicromapCreateInfoEXT;
17928 
17929 typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
17930     VkStructureType    sType;
17931     void*              pNext;
17932     VkBool32           micromap;
17933     VkBool32           micromapCaptureReplay;
17934     VkBool32           micromapHostCommands;
17935 } VkPhysicalDeviceOpacityMicromapFeaturesEXT;
17936 
17937 typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
17938     VkStructureType    sType;
17939     void*              pNext;
17940     uint32_t           maxOpacity2StateSubdivisionLevel;
17941     uint32_t           maxOpacity4StateSubdivisionLevel;
17942 } VkPhysicalDeviceOpacityMicromapPropertiesEXT;
17943 
17944 typedef struct VkMicromapVersionInfoEXT {
17945     VkStructureType    sType;
17946     const void*        pNext;
17947     const uint8_t*     pVersionData;
17948 } VkMicromapVersionInfoEXT;
17949 
17950 typedef struct VkCopyMicromapToMemoryInfoEXT {
17951     VkStructureType             sType;
17952     const void*                 pNext;
17953     VkMicromapEXT               src;
17954     VkDeviceOrHostAddressKHR    dst;
17955     VkCopyMicromapModeEXT       mode;
17956 } VkCopyMicromapToMemoryInfoEXT;
17957 
17958 typedef struct VkCopyMemoryToMicromapInfoEXT {
17959     VkStructureType                  sType;
17960     const void*                      pNext;
17961     VkDeviceOrHostAddressConstKHR    src;
17962     VkMicromapEXT                    dst;
17963     VkCopyMicromapModeEXT            mode;
17964 } VkCopyMemoryToMicromapInfoEXT;
17965 
17966 typedef struct VkCopyMicromapInfoEXT {
17967     VkStructureType          sType;
17968     const void*              pNext;
17969     VkMicromapEXT            src;
17970     VkMicromapEXT            dst;
17971     VkCopyMicromapModeEXT    mode;
17972 } VkCopyMicromapInfoEXT;
17973 
17974 typedef struct VkMicromapBuildSizesInfoEXT {
17975     VkStructureType    sType;
17976     const void*        pNext;
17977     VkDeviceSize       micromapSize;
17978     VkDeviceSize       buildScratchSize;
17979     VkBool32           discardable;
17980 } VkMicromapBuildSizesInfoEXT;
17981 
17982 typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
17983     VkStructureType                     sType;
17984     void*                               pNext;
17985     VkIndexType                         indexType;
17986     VkDeviceOrHostAddressConstKHR       indexBuffer;
17987     VkDeviceSize                        indexStride;
17988     uint32_t                            baseTriangle;
17989     uint32_t                            usageCountsCount;
17990     const VkMicromapUsageEXT*           pUsageCounts;
17991     const VkMicromapUsageEXT* const*    ppUsageCounts;
17992     VkMicromapEXT                       micromap;
17993 } VkAccelerationStructureTrianglesOpacityMicromapEXT;
17994 
17995 typedef struct VkMicromapTriangleEXT {
17996     uint32_t    dataOffset;
17997     uint16_t    subdivisionLevel;
17998     uint16_t    format;
17999 } VkMicromapTriangleEXT;
18000 
18001 typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice                                           device, const VkMicromapCreateInfoEXT*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkMicromapEXT*                        pMicromap);
18002 typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
18003 typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
18004 typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
18005 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
18006 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
18007 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
18008 typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
18009 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
18010 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
18011 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
18012 typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
18013 typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
18014 typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkMicromapBuildInfoEXT*  pBuildInfo, VkMicromapBuildSizesInfoEXT*           pSizeInfo);
18015 
18016 #ifndef VK_NO_PROTOTYPES
18017 VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
18018     VkDevice                                    device,
18019     const VkMicromapCreateInfoEXT*              pCreateInfo,
18020     const VkAllocationCallbacks*                pAllocator,
18021     VkMicromapEXT*                              pMicromap);
18022 
18023 VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
18024     VkDevice                                    device,
18025     VkMicromapEXT                               micromap,
18026     const VkAllocationCallbacks*                pAllocator);
18027 
18028 VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
18029     VkCommandBuffer                             commandBuffer,
18030     uint32_t                                    infoCount,
18031     const VkMicromapBuildInfoEXT*               pInfos);
18032 
18033 VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
18034     VkDevice                                    device,
18035     VkDeferredOperationKHR                      deferredOperation,
18036     uint32_t                                    infoCount,
18037     const VkMicromapBuildInfoEXT*               pInfos);
18038 
18039 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
18040     VkDevice                                    device,
18041     VkDeferredOperationKHR                      deferredOperation,
18042     const VkCopyMicromapInfoEXT*                pInfo);
18043 
18044 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
18045     VkDevice                                    device,
18046     VkDeferredOperationKHR                      deferredOperation,
18047     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
18048 
18049 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
18050     VkDevice                                    device,
18051     VkDeferredOperationKHR                      deferredOperation,
18052     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
18053 
18054 VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
18055     VkDevice                                    device,
18056     uint32_t                                    micromapCount,
18057     const VkMicromapEXT*                        pMicromaps,
18058     VkQueryType                                 queryType,
18059     size_t                                      dataSize,
18060     void*                                       pData,
18061     size_t                                      stride);
18062 
18063 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
18064     VkCommandBuffer                             commandBuffer,
18065     const VkCopyMicromapInfoEXT*                pInfo);
18066 
18067 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
18068     VkCommandBuffer                             commandBuffer,
18069     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
18070 
18071 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
18072     VkCommandBuffer                             commandBuffer,
18073     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
18074 
18075 VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
18076     VkCommandBuffer                             commandBuffer,
18077     uint32_t                                    micromapCount,
18078     const VkMicromapEXT*                        pMicromaps,
18079     VkQueryType                                 queryType,
18080     VkQueryPool                                 queryPool,
18081     uint32_t                                    firstQuery);
18082 
18083 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
18084     VkDevice                                    device,
18085     const VkMicromapVersionInfoEXT*             pVersionInfo,
18086     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
18087 
18088 VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
18089     VkDevice                                    device,
18090     VkAccelerationStructureBuildTypeKHR         buildType,
18091     const VkMicromapBuildInfoEXT*               pBuildInfo,
18092     VkMicromapBuildSizesInfoEXT*                pSizeInfo);
18093 #endif
18094 
18095 
18096 // VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
18097 #define VK_EXT_load_store_op_none 1
18098 #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
18099 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
18100 
18101 
18102 // VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
18103 #define VK_HUAWEI_cluster_culling_shader 1
18104 #define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
18105 #define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
18106 typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
18107     VkStructureType    sType;
18108     void*              pNext;
18109     VkBool32           clustercullingShader;
18110     VkBool32           multiviewClusterCullingShader;
18111 } VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
18112 
18113 typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
18114     VkStructureType    sType;
18115     void*              pNext;
18116     uint32_t           maxWorkGroupCount[3];
18117     uint32_t           maxWorkGroupSize[3];
18118     uint32_t           maxOutputClusterCount;
18119     VkDeviceSize       indirectBufferOffsetAlignment;
18120 } VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
18121 
18122 typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
18123     VkStructureType    sType;
18124     void*              pNext;
18125     VkBool32           clusterShadingRate;
18126 } VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
18127 
18128 typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
18129 typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
18130 
18131 #ifndef VK_NO_PROTOTYPES
18132 VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
18133     VkCommandBuffer                             commandBuffer,
18134     uint32_t                                    groupCountX,
18135     uint32_t                                    groupCountY,
18136     uint32_t                                    groupCountZ);
18137 
18138 VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
18139     VkCommandBuffer                             commandBuffer,
18140     VkBuffer                                    buffer,
18141     VkDeviceSize                                offset);
18142 #endif
18143 
18144 
18145 // VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
18146 #define VK_EXT_border_color_swizzle 1
18147 #define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
18148 #define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
18149 typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
18150     VkStructureType    sType;
18151     void*              pNext;
18152     VkBool32           borderColorSwizzle;
18153     VkBool32           borderColorSwizzleFromImage;
18154 } VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
18155 
18156 typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
18157     VkStructureType       sType;
18158     const void*           pNext;
18159     VkComponentMapping    components;
18160     VkBool32              srgb;
18161 } VkSamplerBorderColorComponentMappingCreateInfoEXT;
18162 
18163 
18164 
18165 // VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
18166 #define VK_EXT_pageable_device_local_memory 1
18167 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
18168 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
18169 typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
18170     VkStructureType    sType;
18171     void*              pNext;
18172     VkBool32           pageableDeviceLocalMemory;
18173 } VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
18174 
18175 typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice       device, VkDeviceMemory memory, float          priority);
18176 
18177 #ifndef VK_NO_PROTOTYPES
18178 VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
18179     VkDevice                                    device,
18180     VkDeviceMemory                              memory,
18181     float                                       priority);
18182 #endif
18183 
18184 
18185 // VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
18186 #define VK_ARM_shader_core_properties 1
18187 #define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
18188 #define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
18189 typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
18190     VkStructureType    sType;
18191     void*              pNext;
18192     uint32_t           pixelRate;
18193     uint32_t           texelRate;
18194     uint32_t           fmaRate;
18195 } VkPhysicalDeviceShaderCorePropertiesARM;
18196 
18197 
18198 
18199 // VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
18200 #define VK_ARM_scheduling_controls 1
18201 #define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1
18202 #define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
18203 typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
18204 
18205 // Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
18206 typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
18207 static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
18208 
18209 typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
18210     VkStructureType    sType;
18211     void*              pNext;
18212     uint32_t           shaderCoreCount;
18213 } VkDeviceQueueShaderCoreControlCreateInfoARM;
18214 
18215 typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
18216     VkStructureType    sType;
18217     void*              pNext;
18218     VkBool32           schedulingControls;
18219 } VkPhysicalDeviceSchedulingControlsFeaturesARM;
18220 
18221 typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
18222     VkStructureType                               sType;
18223     void*                                         pNext;
18224     VkPhysicalDeviceSchedulingControlsFlagsARM    schedulingControlsFlags;
18225 } VkPhysicalDeviceSchedulingControlsPropertiesARM;
18226 
18227 
18228 
18229 // VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
18230 #define VK_EXT_image_sliced_view_of_3d 1
18231 #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
18232 #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
18233 #define VK_REMAINING_3D_SLICES_EXT        (~0U)
18234 typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
18235     VkStructureType    sType;
18236     void*              pNext;
18237     VkBool32           imageSlicedViewOf3D;
18238 } VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
18239 
18240 typedef struct VkImageViewSlicedCreateInfoEXT {
18241     VkStructureType    sType;
18242     const void*        pNext;
18243     uint32_t           sliceOffset;
18244     uint32_t           sliceCount;
18245 } VkImageViewSlicedCreateInfoEXT;
18246 
18247 
18248 
18249 // VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
18250 #define VK_VALVE_descriptor_set_host_mapping 1
18251 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
18252 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
18253 typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
18254     VkStructureType    sType;
18255     void*              pNext;
18256     VkBool32           descriptorSetHostMapping;
18257 } VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
18258 
18259 typedef struct VkDescriptorSetBindingReferenceVALVE {
18260     VkStructureType          sType;
18261     const void*              pNext;
18262     VkDescriptorSetLayout    descriptorSetLayout;
18263     uint32_t                 binding;
18264 } VkDescriptorSetBindingReferenceVALVE;
18265 
18266 typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
18267     VkStructureType    sType;
18268     void*              pNext;
18269     size_t             descriptorOffset;
18270     uint32_t           descriptorSize;
18271 } VkDescriptorSetLayoutHostMappingInfoVALVE;
18272 
18273 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
18274 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
18275 
18276 #ifndef VK_NO_PROTOTYPES
18277 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
18278     VkDevice                                    device,
18279     const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
18280     VkDescriptorSetLayoutHostMappingInfoVALVE*  pHostMapping);
18281 
18282 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
18283     VkDevice                                    device,
18284     VkDescriptorSet                             descriptorSet,
18285     void**                                      ppData);
18286 #endif
18287 
18288 
18289 // VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
18290 #define VK_EXT_depth_clamp_zero_one 1
18291 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
18292 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
18293 typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT {
18294     VkStructureType    sType;
18295     void*              pNext;
18296     VkBool32           depthClampZeroOne;
18297 } VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
18298 
18299 
18300 
18301 // VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
18302 #define VK_EXT_non_seamless_cube_map 1
18303 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
18304 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
18305 typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
18306     VkStructureType    sType;
18307     void*              pNext;
18308     VkBool32           nonSeamlessCubeMap;
18309 } VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
18310 
18311 
18312 
18313 // VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
18314 #define VK_ARM_render_pass_striped 1
18315 #define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
18316 #define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
18317 typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
18318     VkStructureType    sType;
18319     void*              pNext;
18320     VkBool32           renderPassStriped;
18321 } VkPhysicalDeviceRenderPassStripedFeaturesARM;
18322 
18323 typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
18324     VkStructureType    sType;
18325     void*              pNext;
18326     VkExtent2D         renderPassStripeGranularity;
18327     uint32_t           maxRenderPassStripes;
18328 } VkPhysicalDeviceRenderPassStripedPropertiesARM;
18329 
18330 typedef struct VkRenderPassStripeInfoARM {
18331     VkStructureType    sType;
18332     const void*        pNext;
18333     VkRect2D           stripeArea;
18334 } VkRenderPassStripeInfoARM;
18335 
18336 typedef struct VkRenderPassStripeBeginInfoARM {
18337     VkStructureType                     sType;
18338     const void*                         pNext;
18339     uint32_t                            stripeInfoCount;
18340     const VkRenderPassStripeInfoARM*    pStripeInfos;
18341 } VkRenderPassStripeBeginInfoARM;
18342 
18343 typedef struct VkRenderPassStripeSubmitInfoARM {
18344     VkStructureType                 sType;
18345     const void*                     pNext;
18346     uint32_t                        stripeSemaphoreInfoCount;
18347     const VkSemaphoreSubmitInfo*    pStripeSemaphoreInfos;
18348 } VkRenderPassStripeSubmitInfoARM;
18349 
18350 
18351 
18352 // VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
18353 #define VK_QCOM_fragment_density_map_offset 1
18354 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 2
18355 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
18356 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
18357     VkStructureType    sType;
18358     void*              pNext;
18359     VkBool32           fragmentDensityMapOffset;
18360 } VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
18361 
18362 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
18363     VkStructureType    sType;
18364     void*              pNext;
18365     VkExtent2D         fragmentDensityOffsetGranularity;
18366 } VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
18367 
18368 typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM {
18369     VkStructureType      sType;
18370     const void*          pNext;
18371     uint32_t             fragmentDensityOffsetCount;
18372     const VkOffset2D*    pFragmentDensityOffsets;
18373 } VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
18374 
18375 
18376 
18377 // VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
18378 #define VK_NV_copy_memory_indirect 1
18379 #define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
18380 #define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
18381 typedef struct VkCopyMemoryIndirectCommandNV {
18382     VkDeviceAddress    srcAddress;
18383     VkDeviceAddress    dstAddress;
18384     VkDeviceSize       size;
18385 } VkCopyMemoryIndirectCommandNV;
18386 
18387 typedef struct VkCopyMemoryToImageIndirectCommandNV {
18388     VkDeviceAddress             srcAddress;
18389     uint32_t                    bufferRowLength;
18390     uint32_t                    bufferImageHeight;
18391     VkImageSubresourceLayers    imageSubresource;
18392     VkOffset3D                  imageOffset;
18393     VkExtent3D                  imageExtent;
18394 } VkCopyMemoryToImageIndirectCommandNV;
18395 
18396 typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
18397     VkStructureType    sType;
18398     void*              pNext;
18399     VkBool32           indirectCopy;
18400 } VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
18401 
18402 typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV {
18403     VkStructureType    sType;
18404     void*              pNext;
18405     VkQueueFlags       supportedQueues;
18406 } VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
18407 
18408 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
18409 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
18410 
18411 #ifndef VK_NO_PROTOTYPES
18412 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
18413     VkCommandBuffer                             commandBuffer,
18414     VkDeviceAddress                             copyBufferAddress,
18415     uint32_t                                    copyCount,
18416     uint32_t                                    stride);
18417 
18418 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
18419     VkCommandBuffer                             commandBuffer,
18420     VkDeviceAddress                             copyBufferAddress,
18421     uint32_t                                    copyCount,
18422     uint32_t                                    stride,
18423     VkImage                                     dstImage,
18424     VkImageLayout                               dstImageLayout,
18425     const VkImageSubresourceLayers*             pImageSubresources);
18426 #endif
18427 
18428 
18429 // VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
18430 #define VK_NV_memory_decompression 1
18431 #define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
18432 #define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
18433 
18434 // Flag bits for VkMemoryDecompressionMethodFlagBitsNV
18435 typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsNV;
18436 static const VkMemoryDecompressionMethodFlagBitsNV VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
18437 
18438 typedef VkFlags64 VkMemoryDecompressionMethodFlagsNV;
18439 typedef struct VkDecompressMemoryRegionNV {
18440     VkDeviceAddress                       srcAddress;
18441     VkDeviceAddress                       dstAddress;
18442     VkDeviceSize                          compressedSize;
18443     VkDeviceSize                          decompressedSize;
18444     VkMemoryDecompressionMethodFlagsNV    decompressionMethod;
18445 } VkDecompressMemoryRegionNV;
18446 
18447 typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV {
18448     VkStructureType    sType;
18449     void*              pNext;
18450     VkBool32           memoryDecompression;
18451 } VkPhysicalDeviceMemoryDecompressionFeaturesNV;
18452 
18453 typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV {
18454     VkStructureType                       sType;
18455     void*                                 pNext;
18456     VkMemoryDecompressionMethodFlagsNV    decompressionMethods;
18457     uint64_t                              maxDecompressionIndirectCount;
18458 } VkPhysicalDeviceMemoryDecompressionPropertiesNV;
18459 
18460 typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
18461 typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
18462 
18463 #ifndef VK_NO_PROTOTYPES
18464 VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
18465     VkCommandBuffer                             commandBuffer,
18466     uint32_t                                    decompressRegionCount,
18467     const VkDecompressMemoryRegionNV*           pDecompressMemoryRegions);
18468 
18469 VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
18470     VkCommandBuffer                             commandBuffer,
18471     VkDeviceAddress                             indirectCommandsAddress,
18472     VkDeviceAddress                             indirectCommandsCountAddress,
18473     uint32_t                                    stride);
18474 #endif
18475 
18476 
18477 // VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
18478 #define VK_NV_device_generated_commands_compute 1
18479 #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
18480 #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
18481 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
18482     VkStructureType    sType;
18483     void*              pNext;
18484     VkBool32           deviceGeneratedCompute;
18485     VkBool32           deviceGeneratedComputePipelines;
18486     VkBool32           deviceGeneratedComputeCaptureReplay;
18487 } VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
18488 
18489 typedef struct VkComputePipelineIndirectBufferInfoNV {
18490     VkStructureType    sType;
18491     const void*        pNext;
18492     VkDeviceAddress    deviceAddress;
18493     VkDeviceSize       size;
18494     VkDeviceAddress    pipelineDeviceAddressCaptureReplay;
18495 } VkComputePipelineIndirectBufferInfoNV;
18496 
18497 typedef struct VkPipelineIndirectDeviceAddressInfoNV {
18498     VkStructureType        sType;
18499     const void*            pNext;
18500     VkPipelineBindPoint    pipelineBindPoint;
18501     VkPipeline             pipeline;
18502 } VkPipelineIndirectDeviceAddressInfoNV;
18503 
18504 typedef struct VkBindPipelineIndirectCommandNV {
18505     VkDeviceAddress    pipelineAddress;
18506 } VkBindPipelineIndirectCommandNV;
18507 
18508 typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
18509 typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint           pipelineBindPoint, VkPipeline                    pipeline);
18510 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
18511 
18512 #ifndef VK_NO_PROTOTYPES
18513 VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
18514     VkDevice                                    device,
18515     const VkComputePipelineCreateInfo*          pCreateInfo,
18516     VkMemoryRequirements2*                      pMemoryRequirements);
18517 
18518 VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
18519     VkCommandBuffer                             commandBuffer,
18520     VkPipelineBindPoint                         pipelineBindPoint,
18521     VkPipeline                                  pipeline);
18522 
18523 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
18524     VkDevice                                    device,
18525     const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
18526 #endif
18527 
18528 
18529 // VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
18530 #define VK_NV_linear_color_attachment 1
18531 #define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
18532 #define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
18533 typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
18534     VkStructureType    sType;
18535     void*              pNext;
18536     VkBool32           linearColorAttachment;
18537 } VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
18538 
18539 
18540 
18541 // VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
18542 #define VK_GOOGLE_surfaceless_query 1
18543 #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
18544 #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
18545 
18546 
18547 // VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
18548 #define VK_EXT_image_compression_control_swapchain 1
18549 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
18550 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
18551 typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
18552     VkStructureType    sType;
18553     void*              pNext;
18554     VkBool32           imageCompressionControlSwapchain;
18555 } VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
18556 
18557 
18558 
18559 // VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
18560 #define VK_QCOM_image_processing 1
18561 #define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
18562 #define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
18563 typedef struct VkImageViewSampleWeightCreateInfoQCOM {
18564     VkStructureType    sType;
18565     const void*        pNext;
18566     VkOffset2D         filterCenter;
18567     VkExtent2D         filterSize;
18568     uint32_t           numPhases;
18569 } VkImageViewSampleWeightCreateInfoQCOM;
18570 
18571 typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
18572     VkStructureType    sType;
18573     void*              pNext;
18574     VkBool32           textureSampleWeighted;
18575     VkBool32           textureBoxFilter;
18576     VkBool32           textureBlockMatch;
18577 } VkPhysicalDeviceImageProcessingFeaturesQCOM;
18578 
18579 typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
18580     VkStructureType    sType;
18581     void*              pNext;
18582     uint32_t           maxWeightFilterPhases;
18583     VkExtent2D         maxWeightFilterDimension;
18584     VkExtent2D         maxBlockMatchRegion;
18585     VkExtent2D         maxBoxFilterBlockSize;
18586 } VkPhysicalDeviceImageProcessingPropertiesQCOM;
18587 
18588 
18589 
18590 // VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
18591 #define VK_EXT_nested_command_buffer 1
18592 #define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
18593 #define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
18594 typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
18595     VkStructureType    sType;
18596     void*              pNext;
18597     VkBool32           nestedCommandBuffer;
18598     VkBool32           nestedCommandBufferRendering;
18599     VkBool32           nestedCommandBufferSimultaneousUse;
18600 } VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
18601 
18602 typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
18603     VkStructureType    sType;
18604     void*              pNext;
18605     uint32_t           maxCommandBufferNestingLevel;
18606 } VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
18607 
18608 
18609 
18610 // VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
18611 #define VK_EXT_external_memory_acquire_unmodified 1
18612 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
18613 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
18614 typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
18615     VkStructureType    sType;
18616     const void*        pNext;
18617     VkBool32           acquireUnmodifiedMemory;
18618 } VkExternalMemoryAcquireUnmodifiedEXT;
18619 
18620 
18621 
18622 // VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
18623 #define VK_EXT_extended_dynamic_state3 1
18624 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
18625 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
18626 typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
18627     VkStructureType    sType;
18628     void*              pNext;
18629     VkBool32           extendedDynamicState3TessellationDomainOrigin;
18630     VkBool32           extendedDynamicState3DepthClampEnable;
18631     VkBool32           extendedDynamicState3PolygonMode;
18632     VkBool32           extendedDynamicState3RasterizationSamples;
18633     VkBool32           extendedDynamicState3SampleMask;
18634     VkBool32           extendedDynamicState3AlphaToCoverageEnable;
18635     VkBool32           extendedDynamicState3AlphaToOneEnable;
18636     VkBool32           extendedDynamicState3LogicOpEnable;
18637     VkBool32           extendedDynamicState3ColorBlendEnable;
18638     VkBool32           extendedDynamicState3ColorBlendEquation;
18639     VkBool32           extendedDynamicState3ColorWriteMask;
18640     VkBool32           extendedDynamicState3RasterizationStream;
18641     VkBool32           extendedDynamicState3ConservativeRasterizationMode;
18642     VkBool32           extendedDynamicState3ExtraPrimitiveOverestimationSize;
18643     VkBool32           extendedDynamicState3DepthClipEnable;
18644     VkBool32           extendedDynamicState3SampleLocationsEnable;
18645     VkBool32           extendedDynamicState3ColorBlendAdvanced;
18646     VkBool32           extendedDynamicState3ProvokingVertexMode;
18647     VkBool32           extendedDynamicState3LineRasterizationMode;
18648     VkBool32           extendedDynamicState3LineStippleEnable;
18649     VkBool32           extendedDynamicState3DepthClipNegativeOneToOne;
18650     VkBool32           extendedDynamicState3ViewportWScalingEnable;
18651     VkBool32           extendedDynamicState3ViewportSwizzle;
18652     VkBool32           extendedDynamicState3CoverageToColorEnable;
18653     VkBool32           extendedDynamicState3CoverageToColorLocation;
18654     VkBool32           extendedDynamicState3CoverageModulationMode;
18655     VkBool32           extendedDynamicState3CoverageModulationTableEnable;
18656     VkBool32           extendedDynamicState3CoverageModulationTable;
18657     VkBool32           extendedDynamicState3CoverageReductionMode;
18658     VkBool32           extendedDynamicState3RepresentativeFragmentTestEnable;
18659     VkBool32           extendedDynamicState3ShadingRateImageEnable;
18660 } VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
18661 
18662 typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
18663     VkStructureType    sType;
18664     void*              pNext;
18665     VkBool32           dynamicPrimitiveTopologyUnrestricted;
18666 } VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
18667 
18668 typedef struct VkColorBlendEquationEXT {
18669     VkBlendFactor    srcColorBlendFactor;
18670     VkBlendFactor    dstColorBlendFactor;
18671     VkBlendOp        colorBlendOp;
18672     VkBlendFactor    srcAlphaBlendFactor;
18673     VkBlendFactor    dstAlphaBlendFactor;
18674     VkBlendOp        alphaBlendOp;
18675 } VkColorBlendEquationEXT;
18676 
18677 typedef struct VkColorBlendAdvancedEXT {
18678     VkBlendOp            advancedBlendOp;
18679     VkBool32             srcPremultiplied;
18680     VkBool32             dstPremultiplied;
18681     VkBlendOverlapEXT    blendOverlap;
18682     VkBool32             clampResults;
18683 } VkColorBlendAdvancedEXT;
18684 
18685 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
18686 typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
18687 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  rasterizationSamples);
18688 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  samples, const VkSampleMask*    pSampleMask);
18689 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
18690 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
18691 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
18692 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
18693 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
18694 typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
18695 typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
18696 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
18697 typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
18698 typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
18699 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
18700 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
18701 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
18702 typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
18703 typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
18704 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
18705 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
18706 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
18707 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
18708 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
18709 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
18710 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
18711 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
18712 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
18713 typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
18714 typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
18715 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
18716 
18717 #ifndef VK_NO_PROTOTYPES
18718 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
18719     VkCommandBuffer                             commandBuffer,
18720     VkBool32                                    depthClampEnable);
18721 
18722 VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
18723     VkCommandBuffer                             commandBuffer,
18724     VkPolygonMode                               polygonMode);
18725 
18726 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
18727     VkCommandBuffer                             commandBuffer,
18728     VkSampleCountFlagBits                       rasterizationSamples);
18729 
18730 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
18731     VkCommandBuffer                             commandBuffer,
18732     VkSampleCountFlagBits                       samples,
18733     const VkSampleMask*                         pSampleMask);
18734 
18735 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
18736     VkCommandBuffer                             commandBuffer,
18737     VkBool32                                    alphaToCoverageEnable);
18738 
18739 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
18740     VkCommandBuffer                             commandBuffer,
18741     VkBool32                                    alphaToOneEnable);
18742 
18743 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
18744     VkCommandBuffer                             commandBuffer,
18745     VkBool32                                    logicOpEnable);
18746 
18747 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
18748     VkCommandBuffer                             commandBuffer,
18749     uint32_t                                    firstAttachment,
18750     uint32_t                                    attachmentCount,
18751     const VkBool32*                             pColorBlendEnables);
18752 
18753 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
18754     VkCommandBuffer                             commandBuffer,
18755     uint32_t                                    firstAttachment,
18756     uint32_t                                    attachmentCount,
18757     const VkColorBlendEquationEXT*              pColorBlendEquations);
18758 
18759 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
18760     VkCommandBuffer                             commandBuffer,
18761     uint32_t                                    firstAttachment,
18762     uint32_t                                    attachmentCount,
18763     const VkColorComponentFlags*                pColorWriteMasks);
18764 
18765 VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
18766     VkCommandBuffer                             commandBuffer,
18767     VkTessellationDomainOrigin                  domainOrigin);
18768 
18769 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
18770     VkCommandBuffer                             commandBuffer,
18771     uint32_t                                    rasterizationStream);
18772 
18773 VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
18774     VkCommandBuffer                             commandBuffer,
18775     VkConservativeRasterizationModeEXT          conservativeRasterizationMode);
18776 
18777 VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
18778     VkCommandBuffer                             commandBuffer,
18779     float                                       extraPrimitiveOverestimationSize);
18780 
18781 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
18782     VkCommandBuffer                             commandBuffer,
18783     VkBool32                                    depthClipEnable);
18784 
18785 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
18786     VkCommandBuffer                             commandBuffer,
18787     VkBool32                                    sampleLocationsEnable);
18788 
18789 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
18790     VkCommandBuffer                             commandBuffer,
18791     uint32_t                                    firstAttachment,
18792     uint32_t                                    attachmentCount,
18793     const VkColorBlendAdvancedEXT*              pColorBlendAdvanced);
18794 
18795 VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
18796     VkCommandBuffer                             commandBuffer,
18797     VkProvokingVertexModeEXT                    provokingVertexMode);
18798 
18799 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
18800     VkCommandBuffer                             commandBuffer,
18801     VkLineRasterizationModeEXT                  lineRasterizationMode);
18802 
18803 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
18804     VkCommandBuffer                             commandBuffer,
18805     VkBool32                                    stippledLineEnable);
18806 
18807 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
18808     VkCommandBuffer                             commandBuffer,
18809     VkBool32                                    negativeOneToOne);
18810 
18811 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
18812     VkCommandBuffer                             commandBuffer,
18813     VkBool32                                    viewportWScalingEnable);
18814 
18815 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
18816     VkCommandBuffer                             commandBuffer,
18817     uint32_t                                    firstViewport,
18818     uint32_t                                    viewportCount,
18819     const VkViewportSwizzleNV*                  pViewportSwizzles);
18820 
18821 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
18822     VkCommandBuffer                             commandBuffer,
18823     VkBool32                                    coverageToColorEnable);
18824 
18825 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
18826     VkCommandBuffer                             commandBuffer,
18827     uint32_t                                    coverageToColorLocation);
18828 
18829 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
18830     VkCommandBuffer                             commandBuffer,
18831     VkCoverageModulationModeNV                  coverageModulationMode);
18832 
18833 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
18834     VkCommandBuffer                             commandBuffer,
18835     VkBool32                                    coverageModulationTableEnable);
18836 
18837 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
18838     VkCommandBuffer                             commandBuffer,
18839     uint32_t                                    coverageModulationTableCount,
18840     const float*                                pCoverageModulationTable);
18841 
18842 VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
18843     VkCommandBuffer                             commandBuffer,
18844     VkBool32                                    shadingRateImageEnable);
18845 
18846 VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
18847     VkCommandBuffer                             commandBuffer,
18848     VkBool32                                    representativeFragmentTestEnable);
18849 
18850 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
18851     VkCommandBuffer                             commandBuffer,
18852     VkCoverageReductionModeNV                   coverageReductionMode);
18853 #endif
18854 
18855 
18856 // VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
18857 #define VK_EXT_subpass_merge_feedback 1
18858 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
18859 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
18860 
18861 typedef enum VkSubpassMergeStatusEXT {
18862     VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
18863     VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
18864     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
18865     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
18866     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
18867     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
18868     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
18869     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
18870     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
18871     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
18872     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
18873     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
18874     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
18875     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
18876     VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
18877 } VkSubpassMergeStatusEXT;
18878 typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
18879     VkStructureType    sType;
18880     void*              pNext;
18881     VkBool32           subpassMergeFeedback;
18882 } VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
18883 
18884 typedef struct VkRenderPassCreationControlEXT {
18885     VkStructureType    sType;
18886     const void*        pNext;
18887     VkBool32           disallowMerging;
18888 } VkRenderPassCreationControlEXT;
18889 
18890 typedef struct VkRenderPassCreationFeedbackInfoEXT {
18891     uint32_t    postMergeSubpassCount;
18892 } VkRenderPassCreationFeedbackInfoEXT;
18893 
18894 typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
18895     VkStructureType                         sType;
18896     const void*                             pNext;
18897     VkRenderPassCreationFeedbackInfoEXT*    pRenderPassFeedback;
18898 } VkRenderPassCreationFeedbackCreateInfoEXT;
18899 
18900 typedef struct VkRenderPassSubpassFeedbackInfoEXT {
18901     VkSubpassMergeStatusEXT    subpassMergeStatus;
18902     char                       description[VK_MAX_DESCRIPTION_SIZE];
18903     uint32_t                   postMergeIndex;
18904 } VkRenderPassSubpassFeedbackInfoEXT;
18905 
18906 typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
18907     VkStructureType                        sType;
18908     const void*                            pNext;
18909     VkRenderPassSubpassFeedbackInfoEXT*    pSubpassFeedback;
18910 } VkRenderPassSubpassFeedbackCreateInfoEXT;
18911 
18912 
18913 
18914 // VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
18915 #define VK_LUNARG_direct_driver_loading 1
18916 #define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
18917 #define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
18918 
18919 typedef enum VkDirectDriverLoadingModeLUNARG {
18920     VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
18921     VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
18922     VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
18923 } VkDirectDriverLoadingModeLUNARG;
18924 typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
18925 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
18926     VkInstance instance, const char* pName);
18927 
18928 typedef struct VkDirectDriverLoadingInfoLUNARG {
18929     VkStructureType                     sType;
18930     void*                               pNext;
18931     VkDirectDriverLoadingFlagsLUNARG    flags;
18932     PFN_vkGetInstanceProcAddrLUNARG     pfnGetInstanceProcAddr;
18933 } VkDirectDriverLoadingInfoLUNARG;
18934 
18935 typedef struct VkDirectDriverLoadingListLUNARG {
18936     VkStructureType                           sType;
18937     const void*                               pNext;
18938     VkDirectDriverLoadingModeLUNARG           mode;
18939     uint32_t                                  driverCount;
18940     const VkDirectDriverLoadingInfoLUNARG*    pDrivers;
18941 } VkDirectDriverLoadingListLUNARG;
18942 
18943 
18944 
18945 // VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
18946 #define VK_EXT_shader_module_identifier 1
18947 #define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
18948 #define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
18949 #define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
18950 typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
18951     VkStructureType    sType;
18952     void*              pNext;
18953     VkBool32           shaderModuleIdentifier;
18954 } VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
18955 
18956 typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
18957     VkStructureType    sType;
18958     void*              pNext;
18959     uint8_t            shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
18960 } VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
18961 
18962 typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
18963     VkStructureType    sType;
18964     const void*        pNext;
18965     uint32_t           identifierSize;
18966     const uint8_t*     pIdentifier;
18967 } VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
18968 
18969 typedef struct VkShaderModuleIdentifierEXT {
18970     VkStructureType    sType;
18971     void*              pNext;
18972     uint32_t           identifierSize;
18973     uint8_t            identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
18974 } VkShaderModuleIdentifierEXT;
18975 
18976 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
18977 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
18978 
18979 #ifndef VK_NO_PROTOTYPES
18980 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
18981     VkDevice                                    device,
18982     VkShaderModule                              shaderModule,
18983     VkShaderModuleIdentifierEXT*                pIdentifier);
18984 
18985 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
18986     VkDevice                                    device,
18987     const VkShaderModuleCreateInfo*             pCreateInfo,
18988     VkShaderModuleIdentifierEXT*                pIdentifier);
18989 #endif
18990 
18991 
18992 // VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
18993 #define VK_EXT_rasterization_order_attachment_access 1
18994 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
18995 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
18996 
18997 
18998 // VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
18999 #define VK_NV_optical_flow 1
19000 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
19001 #define VK_NV_OPTICAL_FLOW_SPEC_VERSION   1
19002 #define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
19003 
19004 typedef enum VkOpticalFlowPerformanceLevelNV {
19005     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
19006     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
19007     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
19008     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
19009     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
19010 } VkOpticalFlowPerformanceLevelNV;
19011 
19012 typedef enum VkOpticalFlowSessionBindingPointNV {
19013     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
19014     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
19015     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
19016     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
19017     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
19018     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
19019     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
19020     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
19021     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
19022     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
19023 } VkOpticalFlowSessionBindingPointNV;
19024 
19025 typedef enum VkOpticalFlowGridSizeFlagBitsNV {
19026     VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
19027     VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
19028     VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
19029     VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
19030     VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
19031     VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19032 } VkOpticalFlowGridSizeFlagBitsNV;
19033 typedef VkFlags   VkOpticalFlowGridSizeFlagsNV;
19034 
19035 typedef enum VkOpticalFlowUsageFlagBitsNV {
19036     VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
19037     VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
19038     VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
19039     VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
19040     VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
19041     VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
19042     VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19043 } VkOpticalFlowUsageFlagBitsNV;
19044 typedef VkFlags   VkOpticalFlowUsageFlagsNV;
19045 
19046 typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
19047     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
19048     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
19049     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
19050     VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
19051     VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
19052     VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19053 } VkOpticalFlowSessionCreateFlagBitsNV;
19054 typedef VkFlags   VkOpticalFlowSessionCreateFlagsNV;
19055 
19056 typedef enum VkOpticalFlowExecuteFlagBitsNV {
19057     VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
19058     VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19059 } VkOpticalFlowExecuteFlagBitsNV;
19060 typedef VkFlags   VkOpticalFlowExecuteFlagsNV;
19061 typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
19062     VkStructureType    sType;
19063     void*              pNext;
19064     VkBool32           opticalFlow;
19065 } VkPhysicalDeviceOpticalFlowFeaturesNV;
19066 
19067 typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
19068     VkStructureType                 sType;
19069     void*                           pNext;
19070     VkOpticalFlowGridSizeFlagsNV    supportedOutputGridSizes;
19071     VkOpticalFlowGridSizeFlagsNV    supportedHintGridSizes;
19072     VkBool32                        hintSupported;
19073     VkBool32                        costSupported;
19074     VkBool32                        bidirectionalFlowSupported;
19075     VkBool32                        globalFlowSupported;
19076     uint32_t                        minWidth;
19077     uint32_t                        minHeight;
19078     uint32_t                        maxWidth;
19079     uint32_t                        maxHeight;
19080     uint32_t                        maxNumRegionsOfInterest;
19081 } VkPhysicalDeviceOpticalFlowPropertiesNV;
19082 
19083 typedef struct VkOpticalFlowImageFormatInfoNV {
19084     VkStructureType              sType;
19085     const void*                  pNext;
19086     VkOpticalFlowUsageFlagsNV    usage;
19087 } VkOpticalFlowImageFormatInfoNV;
19088 
19089 typedef struct VkOpticalFlowImageFormatPropertiesNV {
19090     VkStructureType    sType;
19091     const void*        pNext;
19092     VkFormat           format;
19093 } VkOpticalFlowImageFormatPropertiesNV;
19094 
19095 typedef struct VkOpticalFlowSessionCreateInfoNV {
19096     VkStructureType                      sType;
19097     void*                                pNext;
19098     uint32_t                             width;
19099     uint32_t                             height;
19100     VkFormat                             imageFormat;
19101     VkFormat                             flowVectorFormat;
19102     VkFormat                             costFormat;
19103     VkOpticalFlowGridSizeFlagsNV         outputGridSize;
19104     VkOpticalFlowGridSizeFlagsNV         hintGridSize;
19105     VkOpticalFlowPerformanceLevelNV      performanceLevel;
19106     VkOpticalFlowSessionCreateFlagsNV    flags;
19107 } VkOpticalFlowSessionCreateInfoNV;
19108 
19109 typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
19110     VkStructureType    sType;
19111     void*              pNext;
19112     uint32_t           id;
19113     uint32_t           size;
19114     const void*        pPrivateData;
19115 } VkOpticalFlowSessionCreatePrivateDataInfoNV;
19116 
19117 typedef struct VkOpticalFlowExecuteInfoNV {
19118     VkStructureType                sType;
19119     void*                          pNext;
19120     VkOpticalFlowExecuteFlagsNV    flags;
19121     uint32_t                       regionCount;
19122     const VkRect2D*                pRegions;
19123 } VkOpticalFlowExecuteInfoNV;
19124 
19125 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
19126 typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
19127 typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
19128 typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
19129 typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
19130 
19131 #ifndef VK_NO_PROTOTYPES
19132 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
19133     VkPhysicalDevice                            physicalDevice,
19134     const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
19135     uint32_t*                                   pFormatCount,
19136     VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties);
19137 
19138 VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
19139     VkDevice                                    device,
19140     const VkOpticalFlowSessionCreateInfoNV*     pCreateInfo,
19141     const VkAllocationCallbacks*                pAllocator,
19142     VkOpticalFlowSessionNV*                     pSession);
19143 
19144 VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
19145     VkDevice                                    device,
19146     VkOpticalFlowSessionNV                      session,
19147     const VkAllocationCallbacks*                pAllocator);
19148 
19149 VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
19150     VkDevice                                    device,
19151     VkOpticalFlowSessionNV                      session,
19152     VkOpticalFlowSessionBindingPointNV          bindingPoint,
19153     VkImageView                                 view,
19154     VkImageLayout                               layout);
19155 
19156 VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
19157     VkCommandBuffer                             commandBuffer,
19158     VkOpticalFlowSessionNV                      session,
19159     const VkOpticalFlowExecuteInfoNV*           pExecuteInfo);
19160 #endif
19161 
19162 
19163 // VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
19164 #define VK_EXT_legacy_dithering 1
19165 #define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 2
19166 #define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
19167 typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
19168     VkStructureType    sType;
19169     void*              pNext;
19170     VkBool32           legacyDithering;
19171 } VkPhysicalDeviceLegacyDitheringFeaturesEXT;
19172 
19173 
19174 
19175 // VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
19176 #define VK_EXT_pipeline_protected_access 1
19177 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
19178 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
19179 typedef VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
19180 
19181 
19182 
19183 // VK_AMD_anti_lag is a preprocessor guard. Do not pass it to API calls.
19184 #define VK_AMD_anti_lag 1
19185 #define VK_AMD_ANTI_LAG_SPEC_VERSION      1
19186 #define VK_AMD_ANTI_LAG_EXTENSION_NAME    "VK_AMD_anti_lag"
19187 
19188 typedef enum VkAntiLagModeAMD {
19189     VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD = 0,
19190     VK_ANTI_LAG_MODE_ON_AMD = 1,
19191     VK_ANTI_LAG_MODE_OFF_AMD = 2,
19192     VK_ANTI_LAG_MODE_MAX_ENUM_AMD = 0x7FFFFFFF
19193 } VkAntiLagModeAMD;
19194 
19195 typedef enum VkAntiLagStageAMD {
19196     VK_ANTI_LAG_STAGE_INPUT_AMD = 0,
19197     VK_ANTI_LAG_STAGE_PRESENT_AMD = 1,
19198     VK_ANTI_LAG_STAGE_MAX_ENUM_AMD = 0x7FFFFFFF
19199 } VkAntiLagStageAMD;
19200 typedef struct VkPhysicalDeviceAntiLagFeaturesAMD {
19201     VkStructureType    sType;
19202     void*              pNext;
19203     VkBool32           antiLag;
19204 } VkPhysicalDeviceAntiLagFeaturesAMD;
19205 
19206 typedef struct VkAntiLagPresentationInfoAMD {
19207     VkStructureType      sType;
19208     void*                pNext;
19209     VkAntiLagStageAMD    stage;
19210     uint64_t             frameIndex;
19211 } VkAntiLagPresentationInfoAMD;
19212 
19213 typedef struct VkAntiLagDataAMD {
19214     VkStructureType                        sType;
19215     const void*                            pNext;
19216     VkAntiLagModeAMD                       mode;
19217     uint32_t                               maxFPS;
19218     const VkAntiLagPresentationInfoAMD*    pPresentationInfo;
19219 } VkAntiLagDataAMD;
19220 
19221 typedef void (VKAPI_PTR *PFN_vkAntiLagUpdateAMD)(VkDevice device, const VkAntiLagDataAMD* pData);
19222 
19223 #ifndef VK_NO_PROTOTYPES
19224 VKAPI_ATTR void VKAPI_CALL vkAntiLagUpdateAMD(
19225     VkDevice                                    device,
19226     const VkAntiLagDataAMD*                     pData);
19227 #endif
19228 
19229 
19230 // VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
19231 #define VK_EXT_shader_object 1
19232 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
19233 #define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
19234 #define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
19235 
19236 typedef enum VkShaderCodeTypeEXT {
19237     VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
19238     VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
19239     VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19240 } VkShaderCodeTypeEXT;
19241 
19242 typedef enum VkShaderCreateFlagBitsEXT {
19243     VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
19244     VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
19245     VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
19246     VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
19247     VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
19248     VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
19249     VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
19250     VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19251 } VkShaderCreateFlagBitsEXT;
19252 typedef VkFlags VkShaderCreateFlagsEXT;
19253 typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
19254     VkStructureType    sType;
19255     void*              pNext;
19256     VkBool32           shaderObject;
19257 } VkPhysicalDeviceShaderObjectFeaturesEXT;
19258 
19259 typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
19260     VkStructureType    sType;
19261     void*              pNext;
19262     uint8_t            shaderBinaryUUID[VK_UUID_SIZE];
19263     uint32_t           shaderBinaryVersion;
19264 } VkPhysicalDeviceShaderObjectPropertiesEXT;
19265 
19266 typedef struct VkShaderCreateInfoEXT {
19267     VkStructureType                 sType;
19268     const void*                     pNext;
19269     VkShaderCreateFlagsEXT          flags;
19270     VkShaderStageFlagBits           stage;
19271     VkShaderStageFlags              nextStage;
19272     VkShaderCodeTypeEXT             codeType;
19273     size_t                          codeSize;
19274     const void*                     pCode;
19275     const char*                     pName;
19276     uint32_t                        setLayoutCount;
19277     const VkDescriptorSetLayout*    pSetLayouts;
19278     uint32_t                        pushConstantRangeCount;
19279     const VkPushConstantRange*      pPushConstantRanges;
19280     const VkSpecializationInfo*     pSpecializationInfo;
19281 } VkShaderCreateInfoEXT;
19282 
19283 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
19284 
19285 typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
19286 typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
19287 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
19288 typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
19289 
19290 #ifndef VK_NO_PROTOTYPES
19291 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
19292     VkDevice                                    device,
19293     uint32_t                                    createInfoCount,
19294     const VkShaderCreateInfoEXT*                pCreateInfos,
19295     const VkAllocationCallbacks*                pAllocator,
19296     VkShaderEXT*                                pShaders);
19297 
19298 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
19299     VkDevice                                    device,
19300     VkShaderEXT                                 shader,
19301     const VkAllocationCallbacks*                pAllocator);
19302 
19303 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
19304     VkDevice                                    device,
19305     VkShaderEXT                                 shader,
19306     size_t*                                     pDataSize,
19307     void*                                       pData);
19308 
19309 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
19310     VkCommandBuffer                             commandBuffer,
19311     uint32_t                                    stageCount,
19312     const VkShaderStageFlagBits*                pStages,
19313     const VkShaderEXT*                          pShaders);
19314 #endif
19315 
19316 
19317 // VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
19318 #define VK_QCOM_tile_properties 1
19319 #define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
19320 #define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
19321 typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
19322     VkStructureType    sType;
19323     void*              pNext;
19324     VkBool32           tileProperties;
19325 } VkPhysicalDeviceTilePropertiesFeaturesQCOM;
19326 
19327 typedef struct VkTilePropertiesQCOM {
19328     VkStructureType    sType;
19329     void*              pNext;
19330     VkExtent3D         tileSize;
19331     VkExtent2D         apronSize;
19332     VkOffset2D         origin;
19333 } VkTilePropertiesQCOM;
19334 
19335 typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
19336 typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
19337 
19338 #ifndef VK_NO_PROTOTYPES
19339 VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
19340     VkDevice                                    device,
19341     VkFramebuffer                               framebuffer,
19342     uint32_t*                                   pPropertiesCount,
19343     VkTilePropertiesQCOM*                       pProperties);
19344 
19345 VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
19346     VkDevice                                    device,
19347     const VkRenderingInfo*                      pRenderingInfo,
19348     VkTilePropertiesQCOM*                       pProperties);
19349 #endif
19350 
19351 
19352 // VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
19353 #define VK_SEC_amigo_profiling 1
19354 #define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
19355 #define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
19356 typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
19357     VkStructureType    sType;
19358     void*              pNext;
19359     VkBool32           amigoProfiling;
19360 } VkPhysicalDeviceAmigoProfilingFeaturesSEC;
19361 
19362 typedef struct VkAmigoProfilingSubmitInfoSEC {
19363     VkStructureType    sType;
19364     const void*        pNext;
19365     uint64_t           firstDrawTimestamp;
19366     uint64_t           swapBufferTimestamp;
19367 } VkAmigoProfilingSubmitInfoSEC;
19368 
19369 
19370 
19371 // VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
19372 #define VK_QCOM_multiview_per_view_viewports 1
19373 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
19374 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
19375 typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
19376     VkStructureType    sType;
19377     void*              pNext;
19378     VkBool32           multiviewPerViewViewports;
19379 } VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
19380 
19381 
19382 
19383 // VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
19384 #define VK_NV_ray_tracing_invocation_reorder 1
19385 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
19386 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
19387 
19388 typedef enum VkRayTracingInvocationReorderModeNV {
19389     VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0,
19390     VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1,
19391     VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 0x7FFFFFFF
19392 } VkRayTracingInvocationReorderModeNV;
19393 typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
19394     VkStructureType                        sType;
19395     void*                                  pNext;
19396     VkRayTracingInvocationReorderModeNV    rayTracingInvocationReorderReorderingHint;
19397 } VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
19398 
19399 typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
19400     VkStructureType    sType;
19401     void*              pNext;
19402     VkBool32           rayTracingInvocationReorder;
19403 } VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
19404 
19405 
19406 
19407 // VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
19408 #define VK_NV_extended_sparse_address_space 1
19409 #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
19410 #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
19411 typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
19412     VkStructureType    sType;
19413     void*              pNext;
19414     VkBool32           extendedSparseAddressSpace;
19415 } VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
19416 
19417 typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
19418     VkStructureType       sType;
19419     void*                 pNext;
19420     VkDeviceSize          extendedSparseAddressSpaceSize;
19421     VkImageUsageFlags     extendedSparseImageUsageFlags;
19422     VkBufferUsageFlags    extendedSparseBufferUsageFlags;
19423 } VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
19424 
19425 
19426 
19427 // VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
19428 #define VK_EXT_mutable_descriptor_type 1
19429 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
19430 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
19431 
19432 
19433 // VK_EXT_legacy_vertex_attributes is a preprocessor guard. Do not pass it to API calls.
19434 #define VK_EXT_legacy_vertex_attributes 1
19435 #define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION 1
19436 #define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME "VK_EXT_legacy_vertex_attributes"
19437 typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT {
19438     VkStructureType    sType;
19439     void*              pNext;
19440     VkBool32           legacyVertexAttributes;
19441 } VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
19442 
19443 typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT {
19444     VkStructureType    sType;
19445     void*              pNext;
19446     VkBool32           nativeUnalignedPerformance;
19447 } VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
19448 
19449 
19450 
19451 // VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
19452 #define VK_EXT_layer_settings 1
19453 #define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
19454 #define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
19455 
19456 typedef enum VkLayerSettingTypeEXT {
19457     VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
19458     VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
19459     VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
19460     VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
19461     VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
19462     VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
19463     VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
19464     VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
19465     VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19466 } VkLayerSettingTypeEXT;
19467 typedef struct VkLayerSettingEXT {
19468     const char*              pLayerName;
19469     const char*              pSettingName;
19470     VkLayerSettingTypeEXT    type;
19471     uint32_t                 valueCount;
19472     const void*              pValues;
19473 } VkLayerSettingEXT;
19474 
19475 typedef struct VkLayerSettingsCreateInfoEXT {
19476     VkStructureType             sType;
19477     const void*                 pNext;
19478     uint32_t                    settingCount;
19479     const VkLayerSettingEXT*    pSettings;
19480 } VkLayerSettingsCreateInfoEXT;
19481 
19482 
19483 
19484 // VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
19485 #define VK_ARM_shader_core_builtins 1
19486 #define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
19487 #define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
19488 typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
19489     VkStructureType    sType;
19490     void*              pNext;
19491     VkBool32           shaderCoreBuiltins;
19492 } VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
19493 
19494 typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
19495     VkStructureType    sType;
19496     void*              pNext;
19497     uint64_t           shaderCoreMask;
19498     uint32_t           shaderCoreCount;
19499     uint32_t           shaderWarpsPerCore;
19500 } VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
19501 
19502 
19503 
19504 // VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
19505 #define VK_EXT_pipeline_library_group_handles 1
19506 #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
19507 #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
19508 typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
19509     VkStructureType    sType;
19510     void*              pNext;
19511     VkBool32           pipelineLibraryGroupHandles;
19512 } VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
19513 
19514 
19515 
19516 // VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
19517 #define VK_EXT_dynamic_rendering_unused_attachments 1
19518 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
19519 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
19520 typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
19521     VkStructureType    sType;
19522     void*              pNext;
19523     VkBool32           dynamicRenderingUnusedAttachments;
19524 } VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
19525 
19526 
19527 
19528 // VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
19529 #define VK_NV_low_latency2 1
19530 #define VK_NV_LOW_LATENCY_2_SPEC_VERSION  2
19531 #define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
19532 
19533 typedef enum VkLatencyMarkerNV {
19534     VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
19535     VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
19536     VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
19537     VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
19538     VK_LATENCY_MARKER_PRESENT_START_NV = 4,
19539     VK_LATENCY_MARKER_PRESENT_END_NV = 5,
19540     VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
19541     VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
19542     VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
19543     VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
19544     VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
19545     VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
19546     VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
19547 } VkLatencyMarkerNV;
19548 
19549 typedef enum VkOutOfBandQueueTypeNV {
19550     VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
19551     VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
19552     VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
19553 } VkOutOfBandQueueTypeNV;
19554 typedef struct VkLatencySleepModeInfoNV {
19555     VkStructureType    sType;
19556     const void*        pNext;
19557     VkBool32           lowLatencyMode;
19558     VkBool32           lowLatencyBoost;
19559     uint32_t           minimumIntervalUs;
19560 } VkLatencySleepModeInfoNV;
19561 
19562 typedef struct VkLatencySleepInfoNV {
19563     VkStructureType    sType;
19564     const void*        pNext;
19565     VkSemaphore        signalSemaphore;
19566     uint64_t           value;
19567 } VkLatencySleepInfoNV;
19568 
19569 typedef struct VkSetLatencyMarkerInfoNV {
19570     VkStructureType      sType;
19571     const void*          pNext;
19572     uint64_t             presentID;
19573     VkLatencyMarkerNV    marker;
19574 } VkSetLatencyMarkerInfoNV;
19575 
19576 typedef struct VkLatencyTimingsFrameReportNV {
19577     VkStructureType    sType;
19578     const void*        pNext;
19579     uint64_t           presentID;
19580     uint64_t           inputSampleTimeUs;
19581     uint64_t           simStartTimeUs;
19582     uint64_t           simEndTimeUs;
19583     uint64_t           renderSubmitStartTimeUs;
19584     uint64_t           renderSubmitEndTimeUs;
19585     uint64_t           presentStartTimeUs;
19586     uint64_t           presentEndTimeUs;
19587     uint64_t           driverStartTimeUs;
19588     uint64_t           driverEndTimeUs;
19589     uint64_t           osRenderQueueStartTimeUs;
19590     uint64_t           osRenderQueueEndTimeUs;
19591     uint64_t           gpuRenderStartTimeUs;
19592     uint64_t           gpuRenderEndTimeUs;
19593 } VkLatencyTimingsFrameReportNV;
19594 
19595 typedef struct VkGetLatencyMarkerInfoNV {
19596     VkStructureType                   sType;
19597     const void*                       pNext;
19598     uint32_t                          timingCount;
19599     VkLatencyTimingsFrameReportNV*    pTimings;
19600 } VkGetLatencyMarkerInfoNV;
19601 
19602 typedef struct VkLatencySubmissionPresentIdNV {
19603     VkStructureType    sType;
19604     const void*        pNext;
19605     uint64_t           presentID;
19606 } VkLatencySubmissionPresentIdNV;
19607 
19608 typedef struct VkSwapchainLatencyCreateInfoNV {
19609     VkStructureType    sType;
19610     const void*        pNext;
19611     VkBool32           latencyModeEnable;
19612 } VkSwapchainLatencyCreateInfoNV;
19613 
19614 typedef struct VkOutOfBandQueueTypeInfoNV {
19615     VkStructureType           sType;
19616     const void*               pNext;
19617     VkOutOfBandQueueTypeNV    queueType;
19618 } VkOutOfBandQueueTypeInfoNV;
19619 
19620 typedef struct VkLatencySurfaceCapabilitiesNV {
19621     VkStructureType      sType;
19622     const void*          pNext;
19623     uint32_t             presentModeCount;
19624     VkPresentModeKHR*    pPresentModes;
19625 } VkLatencySurfaceCapabilitiesNV;
19626 
19627 typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
19628 typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
19629 typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
19630 typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
19631 typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
19632 
19633 #ifndef VK_NO_PROTOTYPES
19634 VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
19635     VkDevice                                    device,
19636     VkSwapchainKHR                              swapchain,
19637     const VkLatencySleepModeInfoNV*             pSleepModeInfo);
19638 
19639 VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
19640     VkDevice                                    device,
19641     VkSwapchainKHR                              swapchain,
19642     const VkLatencySleepInfoNV*                 pSleepInfo);
19643 
19644 VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
19645     VkDevice                                    device,
19646     VkSwapchainKHR                              swapchain,
19647     const VkSetLatencyMarkerInfoNV*             pLatencyMarkerInfo);
19648 
19649 VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
19650     VkDevice                                    device,
19651     VkSwapchainKHR                              swapchain,
19652     VkGetLatencyMarkerInfoNV*                   pLatencyMarkerInfo);
19653 
19654 VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
19655     VkQueue                                     queue,
19656     const VkOutOfBandQueueTypeInfoNV*           pQueueTypeInfo);
19657 #endif
19658 
19659 
19660 // VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
19661 #define VK_QCOM_multiview_per_view_render_areas 1
19662 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
19663 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
19664 typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
19665     VkStructureType    sType;
19666     void*              pNext;
19667     VkBool32           multiviewPerViewRenderAreas;
19668 } VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
19669 
19670 typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
19671     VkStructureType    sType;
19672     const void*        pNext;
19673     uint32_t           perViewRenderAreaCount;
19674     const VkRect2D*    pPerViewRenderAreas;
19675 } VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
19676 
19677 
19678 
19679 // VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
19680 #define VK_NV_per_stage_descriptor_set 1
19681 #define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
19682 #define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
19683 typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
19684     VkStructureType    sType;
19685     void*              pNext;
19686     VkBool32           perStageDescriptorSet;
19687     VkBool32           dynamicPipelineLayout;
19688 } VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
19689 
19690 
19691 
19692 // VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
19693 #define VK_QCOM_image_processing2 1
19694 #define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
19695 #define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
19696 
19697 typedef enum VkBlockMatchWindowCompareModeQCOM {
19698     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
19699     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
19700     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
19701 } VkBlockMatchWindowCompareModeQCOM;
19702 typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
19703     VkStructureType    sType;
19704     void*              pNext;
19705     VkBool32           textureBlockMatch2;
19706 } VkPhysicalDeviceImageProcessing2FeaturesQCOM;
19707 
19708 typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
19709     VkStructureType    sType;
19710     void*              pNext;
19711     VkExtent2D         maxBlockMatchWindow;
19712 } VkPhysicalDeviceImageProcessing2PropertiesQCOM;
19713 
19714 typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
19715     VkStructureType                      sType;
19716     const void*                          pNext;
19717     VkExtent2D                           windowExtent;
19718     VkBlockMatchWindowCompareModeQCOM    windowCompareMode;
19719 } VkSamplerBlockMatchWindowCreateInfoQCOM;
19720 
19721 
19722 
19723 // VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
19724 #define VK_QCOM_filter_cubic_weights 1
19725 #define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
19726 #define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
19727 
19728 typedef enum VkCubicFilterWeightsQCOM {
19729     VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
19730     VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
19731     VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
19732     VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
19733     VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
19734 } VkCubicFilterWeightsQCOM;
19735 typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
19736     VkStructureType    sType;
19737     void*              pNext;
19738     VkBool32           selectableCubicWeights;
19739 } VkPhysicalDeviceCubicWeightsFeaturesQCOM;
19740 
19741 typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
19742     VkStructureType             sType;
19743     const void*                 pNext;
19744     VkCubicFilterWeightsQCOM    cubicWeights;
19745 } VkSamplerCubicWeightsCreateInfoQCOM;
19746 
19747 typedef struct VkBlitImageCubicWeightsInfoQCOM {
19748     VkStructureType             sType;
19749     const void*                 pNext;
19750     VkCubicFilterWeightsQCOM    cubicWeights;
19751 } VkBlitImageCubicWeightsInfoQCOM;
19752 
19753 
19754 
19755 // VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
19756 #define VK_QCOM_ycbcr_degamma 1
19757 #define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
19758 #define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
19759 typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
19760     VkStructureType    sType;
19761     void*              pNext;
19762     VkBool32           ycbcrDegamma;
19763 } VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
19764 
19765 typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
19766     VkStructureType    sType;
19767     void*              pNext;
19768     VkBool32           enableYDegamma;
19769     VkBool32           enableCbCrDegamma;
19770 } VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
19771 
19772 
19773 
19774 // VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
19775 #define VK_QCOM_filter_cubic_clamp 1
19776 #define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
19777 #define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
19778 typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
19779     VkStructureType    sType;
19780     void*              pNext;
19781     VkBool32           cubicRangeClamp;
19782 } VkPhysicalDeviceCubicClampFeaturesQCOM;
19783 
19784 
19785 
19786 // VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
19787 #define VK_EXT_attachment_feedback_loop_dynamic_state 1
19788 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
19789 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
19790 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
19791     VkStructureType    sType;
19792     void*              pNext;
19793     VkBool32           attachmentFeedbackLoopDynamicState;
19794 } VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
19795 
19796 typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
19797 
19798 #ifndef VK_NO_PROTOTYPES
19799 VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
19800     VkCommandBuffer                             commandBuffer,
19801     VkImageAspectFlags                          aspectMask);
19802 #endif
19803 
19804 
19805 // VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
19806 #define VK_MSFT_layered_driver 1
19807 #define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
19808 #define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
19809 
19810 typedef enum VkLayeredDriverUnderlyingApiMSFT {
19811     VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
19812     VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
19813     VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
19814 } VkLayeredDriverUnderlyingApiMSFT;
19815 typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
19816     VkStructureType                     sType;
19817     void*                               pNext;
19818     VkLayeredDriverUnderlyingApiMSFT    underlyingAPI;
19819 } VkPhysicalDeviceLayeredDriverPropertiesMSFT;
19820 
19821 
19822 
19823 // VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
19824 #define VK_NV_descriptor_pool_overallocation 1
19825 #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
19826 #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
19827 typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
19828     VkStructureType    sType;
19829     void*              pNext;
19830     VkBool32           descriptorPoolOverallocation;
19831 } VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
19832 
19833 
19834 
19835 // VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
19836 #define VK_NV_raw_access_chains 1
19837 #define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
19838 #define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
19839 typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
19840     VkStructureType    sType;
19841     void*              pNext;
19842     VkBool32           shaderRawAccessChains;
19843 } VkPhysicalDeviceRawAccessChainsFeaturesNV;
19844 
19845 
19846 
19847 // VK_NV_command_buffer_inheritance is a preprocessor guard. Do not pass it to API calls.
19848 #define VK_NV_command_buffer_inheritance 1
19849 #define VK_NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION 1
19850 #define VK_NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME "VK_NV_command_buffer_inheritance"
19851 typedef struct VkPhysicalDeviceCommandBufferInheritanceFeaturesNV {
19852     VkStructureType    sType;
19853     void*              pNext;
19854     VkBool32           commandBufferInheritance;
19855 } VkPhysicalDeviceCommandBufferInheritanceFeaturesNV;
19856 
19857 
19858 
19859 // VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
19860 #define VK_NV_shader_atomic_float16_vector 1
19861 #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
19862 #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
19863 typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
19864     VkStructureType    sType;
19865     void*              pNext;
19866     VkBool32           shaderFloat16VectorAtomics;
19867 } VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
19868 
19869 
19870 
19871 // VK_EXT_shader_replicated_composites is a preprocessor guard. Do not pass it to API calls.
19872 #define VK_EXT_shader_replicated_composites 1
19873 #define VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION 1
19874 #define VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME "VK_EXT_shader_replicated_composites"
19875 typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
19876     VkStructureType    sType;
19877     void*              pNext;
19878     VkBool32           shaderReplicatedComposites;
19879 } VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT;
19880 
19881 
19882 
19883 // VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls.
19884 #define VK_NV_ray_tracing_validation 1
19885 #define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1
19886 #define VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME "VK_NV_ray_tracing_validation"
19887 typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
19888     VkStructureType    sType;
19889     void*              pNext;
19890     VkBool32           rayTracingValidation;
19891 } VkPhysicalDeviceRayTracingValidationFeaturesNV;
19892 
19893 
19894 
19895 // VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
19896 #define VK_MESA_image_alignment_control 1
19897 #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
19898 #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME "VK_MESA_image_alignment_control"
19899 typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA {
19900     VkStructureType    sType;
19901     void*              pNext;
19902     VkBool32           imageAlignmentControl;
19903 } VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
19904 
19905 typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA {
19906     VkStructureType    sType;
19907     void*              pNext;
19908     uint32_t           supportedImageAlignmentMask;
19909 } VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
19910 
19911 typedef struct VkImageAlignmentControlCreateInfoMESA {
19912     VkStructureType    sType;
19913     const void*        pNext;
19914     uint32_t           maximumRequestedAlignment;
19915 } VkImageAlignmentControlCreateInfoMESA;
19916 
19917 
19918 
19919 // VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
19920 #define VK_KHR_acceleration_structure 1
19921 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
19922 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
19923 
19924 typedef enum VkBuildAccelerationStructureModeKHR {
19925     VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
19926     VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
19927     VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
19928 } VkBuildAccelerationStructureModeKHR;
19929 
19930 typedef enum VkAccelerationStructureCreateFlagBitsKHR {
19931     VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
19932     VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
19933     VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
19934     VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
19935 } VkAccelerationStructureCreateFlagBitsKHR;
19936 typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
19937 typedef struct VkAccelerationStructureBuildRangeInfoKHR {
19938     uint32_t    primitiveCount;
19939     uint32_t    primitiveOffset;
19940     uint32_t    firstVertex;
19941     uint32_t    transformOffset;
19942 } VkAccelerationStructureBuildRangeInfoKHR;
19943 
19944 typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
19945     VkStructureType                  sType;
19946     const void*                      pNext;
19947     VkFormat                         vertexFormat;
19948     VkDeviceOrHostAddressConstKHR    vertexData;
19949     VkDeviceSize                     vertexStride;
19950     uint32_t                         maxVertex;
19951     VkIndexType                      indexType;
19952     VkDeviceOrHostAddressConstKHR    indexData;
19953     VkDeviceOrHostAddressConstKHR    transformData;
19954 } VkAccelerationStructureGeometryTrianglesDataKHR;
19955 
19956 typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
19957     VkStructureType                  sType;
19958     const void*                      pNext;
19959     VkDeviceOrHostAddressConstKHR    data;
19960     VkDeviceSize                     stride;
19961 } VkAccelerationStructureGeometryAabbsDataKHR;
19962 
19963 typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
19964     VkStructureType                  sType;
19965     const void*                      pNext;
19966     VkBool32                         arrayOfPointers;
19967     VkDeviceOrHostAddressConstKHR    data;
19968 } VkAccelerationStructureGeometryInstancesDataKHR;
19969 
19970 typedef union VkAccelerationStructureGeometryDataKHR {
19971     VkAccelerationStructureGeometryTrianglesDataKHR    triangles;
19972     VkAccelerationStructureGeometryAabbsDataKHR        aabbs;
19973     VkAccelerationStructureGeometryInstancesDataKHR    instances;
19974 } VkAccelerationStructureGeometryDataKHR;
19975 
19976 typedef struct VkAccelerationStructureGeometryKHR {
19977     VkStructureType                           sType;
19978     const void*                               pNext;
19979     VkGeometryTypeKHR                         geometryType;
19980     VkAccelerationStructureGeometryDataKHR    geometry;
19981     VkGeometryFlagsKHR                        flags;
19982 } VkAccelerationStructureGeometryKHR;
19983 
19984 typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
19985     VkStructureType                                     sType;
19986     const void*                                         pNext;
19987     VkAccelerationStructureTypeKHR                      type;
19988     VkBuildAccelerationStructureFlagsKHR                flags;
19989     VkBuildAccelerationStructureModeKHR                 mode;
19990     VkAccelerationStructureKHR                          srcAccelerationStructure;
19991     VkAccelerationStructureKHR                          dstAccelerationStructure;
19992     uint32_t                                            geometryCount;
19993     const VkAccelerationStructureGeometryKHR*           pGeometries;
19994     const VkAccelerationStructureGeometryKHR* const*    ppGeometries;
19995     VkDeviceOrHostAddressKHR                            scratchData;
19996 } VkAccelerationStructureBuildGeometryInfoKHR;
19997 
19998 typedef struct VkAccelerationStructureCreateInfoKHR {
19999     VkStructureType                          sType;
20000     const void*                              pNext;
20001     VkAccelerationStructureCreateFlagsKHR    createFlags;
20002     VkBuffer                                 buffer;
20003     VkDeviceSize                             offset;
20004     VkDeviceSize                             size;
20005     VkAccelerationStructureTypeKHR           type;
20006     VkDeviceAddress                          deviceAddress;
20007 } VkAccelerationStructureCreateInfoKHR;
20008 
20009 typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
20010     VkStructureType                      sType;
20011     const void*                          pNext;
20012     uint32_t                             accelerationStructureCount;
20013     const VkAccelerationStructureKHR*    pAccelerationStructures;
20014 } VkWriteDescriptorSetAccelerationStructureKHR;
20015 
20016 typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
20017     VkStructureType    sType;
20018     void*              pNext;
20019     VkBool32           accelerationStructure;
20020     VkBool32           accelerationStructureCaptureReplay;
20021     VkBool32           accelerationStructureIndirectBuild;
20022     VkBool32           accelerationStructureHostCommands;
20023     VkBool32           descriptorBindingAccelerationStructureUpdateAfterBind;
20024 } VkPhysicalDeviceAccelerationStructureFeaturesKHR;
20025 
20026 typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
20027     VkStructureType    sType;
20028     void*              pNext;
20029     uint64_t           maxGeometryCount;
20030     uint64_t           maxInstanceCount;
20031     uint64_t           maxPrimitiveCount;
20032     uint32_t           maxPerStageDescriptorAccelerationStructures;
20033     uint32_t           maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
20034     uint32_t           maxDescriptorSetAccelerationStructures;
20035     uint32_t           maxDescriptorSetUpdateAfterBindAccelerationStructures;
20036     uint32_t           minAccelerationStructureScratchOffsetAlignment;
20037 } VkPhysicalDeviceAccelerationStructurePropertiesKHR;
20038 
20039 typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
20040     VkStructureType               sType;
20041     const void*                   pNext;
20042     VkAccelerationStructureKHR    accelerationStructure;
20043 } VkAccelerationStructureDeviceAddressInfoKHR;
20044 
20045 typedef struct VkAccelerationStructureVersionInfoKHR {
20046     VkStructureType    sType;
20047     const void*        pNext;
20048     const uint8_t*     pVersionData;
20049 } VkAccelerationStructureVersionInfoKHR;
20050 
20051 typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
20052     VkStructureType                       sType;
20053     const void*                           pNext;
20054     VkAccelerationStructureKHR            src;
20055     VkDeviceOrHostAddressKHR              dst;
20056     VkCopyAccelerationStructureModeKHR    mode;
20057 } VkCopyAccelerationStructureToMemoryInfoKHR;
20058 
20059 typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
20060     VkStructureType                       sType;
20061     const void*                           pNext;
20062     VkDeviceOrHostAddressConstKHR         src;
20063     VkAccelerationStructureKHR            dst;
20064     VkCopyAccelerationStructureModeKHR    mode;
20065 } VkCopyMemoryToAccelerationStructureInfoKHR;
20066 
20067 typedef struct VkCopyAccelerationStructureInfoKHR {
20068     VkStructureType                       sType;
20069     const void*                           pNext;
20070     VkAccelerationStructureKHR            src;
20071     VkAccelerationStructureKHR            dst;
20072     VkCopyAccelerationStructureModeKHR    mode;
20073 } VkCopyAccelerationStructureInfoKHR;
20074 
20075 typedef struct VkAccelerationStructureBuildSizesInfoKHR {
20076     VkStructureType    sType;
20077     const void*        pNext;
20078     VkDeviceSize       accelerationStructureSize;
20079     VkDeviceSize       updateScratchSize;
20080     VkDeviceSize       buildScratchSize;
20081 } VkAccelerationStructureBuildSizesInfoKHR;
20082 
20083 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure);
20084 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
20085 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
20086 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);
20087 typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
20088 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
20089 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
20090 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
20091 typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
20092 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
20093 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
20094 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
20095 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
20096 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
20097 typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
20098 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkAccelerationStructureBuildGeometryInfoKHR*  pBuildInfo, const uint32_t*  pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR*           pSizeInfo);
20099 
20100 #ifndef VK_NO_PROTOTYPES
20101 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
20102     VkDevice                                    device,
20103     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
20104     const VkAllocationCallbacks*                pAllocator,
20105     VkAccelerationStructureKHR*                 pAccelerationStructure);
20106 
20107 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
20108     VkDevice                                    device,
20109     VkAccelerationStructureKHR                  accelerationStructure,
20110     const VkAllocationCallbacks*                pAllocator);
20111 
20112 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
20113     VkCommandBuffer                             commandBuffer,
20114     uint32_t                                    infoCount,
20115     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
20116     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
20117 
20118 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
20119     VkCommandBuffer                             commandBuffer,
20120     uint32_t                                    infoCount,
20121     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
20122     const VkDeviceAddress*                      pIndirectDeviceAddresses,
20123     const uint32_t*                             pIndirectStrides,
20124     const uint32_t* const*                      ppMaxPrimitiveCounts);
20125 
20126 VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
20127     VkDevice                                    device,
20128     VkDeferredOperationKHR                      deferredOperation,
20129     uint32_t                                    infoCount,
20130     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
20131     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
20132 
20133 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
20134     VkDevice                                    device,
20135     VkDeferredOperationKHR                      deferredOperation,
20136     const VkCopyAccelerationStructureInfoKHR*   pInfo);
20137 
20138 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
20139     VkDevice                                    device,
20140     VkDeferredOperationKHR                      deferredOperation,
20141     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
20142 
20143 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
20144     VkDevice                                    device,
20145     VkDeferredOperationKHR                      deferredOperation,
20146     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
20147 
20148 VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
20149     VkDevice                                    device,
20150     uint32_t                                    accelerationStructureCount,
20151     const VkAccelerationStructureKHR*           pAccelerationStructures,
20152     VkQueryType                                 queryType,
20153     size_t                                      dataSize,
20154     void*                                       pData,
20155     size_t                                      stride);
20156 
20157 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
20158     VkCommandBuffer                             commandBuffer,
20159     const VkCopyAccelerationStructureInfoKHR*   pInfo);
20160 
20161 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
20162     VkCommandBuffer                             commandBuffer,
20163     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
20164 
20165 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
20166     VkCommandBuffer                             commandBuffer,
20167     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
20168 
20169 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
20170     VkDevice                                    device,
20171     const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
20172 
20173 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
20174     VkCommandBuffer                             commandBuffer,
20175     uint32_t                                    accelerationStructureCount,
20176     const VkAccelerationStructureKHR*           pAccelerationStructures,
20177     VkQueryType                                 queryType,
20178     VkQueryPool                                 queryPool,
20179     uint32_t                                    firstQuery);
20180 
20181 VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
20182     VkDevice                                    device,
20183     const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
20184     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
20185 
20186 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
20187     VkDevice                                    device,
20188     VkAccelerationStructureBuildTypeKHR         buildType,
20189     const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
20190     const uint32_t*                             pMaxPrimitiveCounts,
20191     VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo);
20192 #endif
20193 
20194 
20195 // VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
20196 #define VK_KHR_ray_tracing_pipeline 1
20197 #define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
20198 #define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
20199 
20200 typedef enum VkShaderGroupShaderKHR {
20201     VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
20202     VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
20203     VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
20204     VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
20205     VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
20206 } VkShaderGroupShaderKHR;
20207 typedef struct VkRayTracingShaderGroupCreateInfoKHR {
20208     VkStructureType                   sType;
20209     const void*                       pNext;
20210     VkRayTracingShaderGroupTypeKHR    type;
20211     uint32_t                          generalShader;
20212     uint32_t                          closestHitShader;
20213     uint32_t                          anyHitShader;
20214     uint32_t                          intersectionShader;
20215     const void*                       pShaderGroupCaptureReplayHandle;
20216 } VkRayTracingShaderGroupCreateInfoKHR;
20217 
20218 typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
20219     VkStructureType    sType;
20220     const void*        pNext;
20221     uint32_t           maxPipelineRayPayloadSize;
20222     uint32_t           maxPipelineRayHitAttributeSize;
20223 } VkRayTracingPipelineInterfaceCreateInfoKHR;
20224 
20225 typedef struct VkRayTracingPipelineCreateInfoKHR {
20226     VkStructureType                                      sType;
20227     const void*                                          pNext;
20228     VkPipelineCreateFlags                                flags;
20229     uint32_t                                             stageCount;
20230     const VkPipelineShaderStageCreateInfo*               pStages;
20231     uint32_t                                             groupCount;
20232     const VkRayTracingShaderGroupCreateInfoKHR*          pGroups;
20233     uint32_t                                             maxPipelineRayRecursionDepth;
20234     const VkPipelineLibraryCreateInfoKHR*                pLibraryInfo;
20235     const VkRayTracingPipelineInterfaceCreateInfoKHR*    pLibraryInterface;
20236     const VkPipelineDynamicStateCreateInfo*              pDynamicState;
20237     VkPipelineLayout                                     layout;
20238     VkPipeline                                           basePipelineHandle;
20239     int32_t                                              basePipelineIndex;
20240 } VkRayTracingPipelineCreateInfoKHR;
20241 
20242 typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
20243     VkStructureType    sType;
20244     void*              pNext;
20245     VkBool32           rayTracingPipeline;
20246     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplay;
20247     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
20248     VkBool32           rayTracingPipelineTraceRaysIndirect;
20249     VkBool32           rayTraversalPrimitiveCulling;
20250 } VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
20251 
20252 typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
20253     VkStructureType    sType;
20254     void*              pNext;
20255     uint32_t           shaderGroupHandleSize;
20256     uint32_t           maxRayRecursionDepth;
20257     uint32_t           maxShaderGroupStride;
20258     uint32_t           shaderGroupBaseAlignment;
20259     uint32_t           shaderGroupHandleCaptureReplaySize;
20260     uint32_t           maxRayDispatchInvocationCount;
20261     uint32_t           shaderGroupHandleAlignment;
20262     uint32_t           maxRayHitAttributeSize;
20263 } VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
20264 
20265 typedef struct VkStridedDeviceAddressRegionKHR {
20266     VkDeviceAddress    deviceAddress;
20267     VkDeviceSize       stride;
20268     VkDeviceSize       size;
20269 } VkStridedDeviceAddressRegionKHR;
20270 
20271 typedef struct VkTraceRaysIndirectCommandKHR {
20272     uint32_t    width;
20273     uint32_t    height;
20274     uint32_t    depth;
20275 } VkTraceRaysIndirectCommandKHR;
20276 
20277 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);
20278 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
20279 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
20280 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
20281 typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
20282 typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
20283 
20284 #ifndef VK_NO_PROTOTYPES
20285 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
20286     VkCommandBuffer                             commandBuffer,
20287     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
20288     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
20289     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
20290     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
20291     uint32_t                                    width,
20292     uint32_t                                    height,
20293     uint32_t                                    depth);
20294 
20295 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
20296     VkDevice                                    device,
20297     VkDeferredOperationKHR                      deferredOperation,
20298     VkPipelineCache                             pipelineCache,
20299     uint32_t                                    createInfoCount,
20300     const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
20301     const VkAllocationCallbacks*                pAllocator,
20302     VkPipeline*                                 pPipelines);
20303 
20304 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
20305     VkDevice                                    device,
20306     VkPipeline                                  pipeline,
20307     uint32_t                                    firstGroup,
20308     uint32_t                                    groupCount,
20309     size_t                                      dataSize,
20310     void*                                       pData);
20311 
20312 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
20313     VkCommandBuffer                             commandBuffer,
20314     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
20315     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
20316     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
20317     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
20318     VkDeviceAddress                             indirectDeviceAddress);
20319 
20320 VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
20321     VkDevice                                    device,
20322     VkPipeline                                  pipeline,
20323     uint32_t                                    group,
20324     VkShaderGroupShaderKHR                      groupShader);
20325 
20326 VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
20327     VkCommandBuffer                             commandBuffer,
20328     uint32_t                                    pipelineStackSize);
20329 #endif
20330 
20331 
20332 // VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
20333 #define VK_KHR_ray_query 1
20334 #define VK_KHR_RAY_QUERY_SPEC_VERSION     1
20335 #define VK_KHR_RAY_QUERY_EXTENSION_NAME   "VK_KHR_ray_query"
20336 typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
20337     VkStructureType    sType;
20338     void*              pNext;
20339     VkBool32           rayQuery;
20340 } VkPhysicalDeviceRayQueryFeaturesKHR;
20341 
20342 
20343 
20344 // VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
20345 #define VK_EXT_mesh_shader 1
20346 #define VK_EXT_MESH_SHADER_SPEC_VERSION   1
20347 #define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
20348 typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
20349     VkStructureType    sType;
20350     void*              pNext;
20351     VkBool32           taskShader;
20352     VkBool32           meshShader;
20353     VkBool32           multiviewMeshShader;
20354     VkBool32           primitiveFragmentShadingRateMeshShader;
20355     VkBool32           meshShaderQueries;
20356 } VkPhysicalDeviceMeshShaderFeaturesEXT;
20357 
20358 typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
20359     VkStructureType    sType;
20360     void*              pNext;
20361     uint32_t           maxTaskWorkGroupTotalCount;
20362     uint32_t           maxTaskWorkGroupCount[3];
20363     uint32_t           maxTaskWorkGroupInvocations;
20364     uint32_t           maxTaskWorkGroupSize[3];
20365     uint32_t           maxTaskPayloadSize;
20366     uint32_t           maxTaskSharedMemorySize;
20367     uint32_t           maxTaskPayloadAndSharedMemorySize;
20368     uint32_t           maxMeshWorkGroupTotalCount;
20369     uint32_t           maxMeshWorkGroupCount[3];
20370     uint32_t           maxMeshWorkGroupInvocations;
20371     uint32_t           maxMeshWorkGroupSize[3];
20372     uint32_t           maxMeshSharedMemorySize;
20373     uint32_t           maxMeshPayloadAndSharedMemorySize;
20374     uint32_t           maxMeshOutputMemorySize;
20375     uint32_t           maxMeshPayloadAndOutputMemorySize;
20376     uint32_t           maxMeshOutputComponents;
20377     uint32_t           maxMeshOutputVertices;
20378     uint32_t           maxMeshOutputPrimitives;
20379     uint32_t           maxMeshOutputLayers;
20380     uint32_t           maxMeshMultiviewViewCount;
20381     uint32_t           meshOutputPerVertexGranularity;
20382     uint32_t           meshOutputPerPrimitiveGranularity;
20383     uint32_t           maxPreferredTaskWorkGroupInvocations;
20384     uint32_t           maxPreferredMeshWorkGroupInvocations;
20385     VkBool32           prefersLocalInvocationVertexOutput;
20386     VkBool32           prefersLocalInvocationPrimitiveOutput;
20387     VkBool32           prefersCompactVertexOutput;
20388     VkBool32           prefersCompactPrimitiveOutput;
20389 } VkPhysicalDeviceMeshShaderPropertiesEXT;
20390 
20391 typedef struct VkDrawMeshTasksIndirectCommandEXT {
20392     uint32_t    groupCountX;
20393     uint32_t    groupCountY;
20394     uint32_t    groupCountZ;
20395 } VkDrawMeshTasksIndirectCommandEXT;
20396 
20397 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
20398 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
20399 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
20400 
20401 #ifndef VK_NO_PROTOTYPES
20402 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
20403     VkCommandBuffer                             commandBuffer,
20404     uint32_t                                    groupCountX,
20405     uint32_t                                    groupCountY,
20406     uint32_t                                    groupCountZ);
20407 
20408 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
20409     VkCommandBuffer                             commandBuffer,
20410     VkBuffer                                    buffer,
20411     VkDeviceSize                                offset,
20412     uint32_t                                    drawCount,
20413     uint32_t                                    stride);
20414 
20415 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
20416     VkCommandBuffer                             commandBuffer,
20417     VkBuffer                                    buffer,
20418     VkDeviceSize                                offset,
20419     VkBuffer                                    countBuffer,
20420     VkDeviceSize                                countBufferOffset,
20421     uint32_t                                    maxDrawCount,
20422     uint32_t                                    stride);
20423 #endif
20424 
20425 #ifdef __cplusplus
20426 }
20427 #endif
20428 
20429 #endif
20430