xref: /aosp_15_r20/external/angle/third_party/vulkan-headers/src/include/vulkan/vulkan_core.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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 303
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_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX = 1000029004,
526     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
527     VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
528     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
529     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
530     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
531     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
532     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
533     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
534     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
535     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
536     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
537     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
538     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
539     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
540     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
541     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
542     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
543     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
544     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
545     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
546     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
547     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
548     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
549     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
550     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
551     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
552     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
553     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
554     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
555     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
556     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
557     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
558     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
559     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
560     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
561     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
562     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
563     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
564     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
565     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
566     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
567     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
568     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
569     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
570     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
571     VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
572     VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
573     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
574     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
575     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
576     VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
577     VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
578     VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
579     VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
580     VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
581     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
582     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
583     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
584     VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
585     VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
586     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
587     VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
588     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
589     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
590     VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
591     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
592     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
593     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
594     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
595     VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
596     VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
597     VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
598     VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
599     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
600     VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
601     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
602     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
603     VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
604     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
605     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
606     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
607     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
608     VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
609     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
610     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
611     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
612     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
613     VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
614     VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
615     VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
616     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
617     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
618     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
619     VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
620     VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
621     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
622     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
623     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
624     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
625     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
626     VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
627     VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
628     VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
629     VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
630     VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
631     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
632     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
633     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
634     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
635     VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
636     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
637     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
638     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
639     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
640     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
641     VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
642     VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
643     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
644     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
645 #ifdef VK_ENABLE_BETA_EXTENSIONS
646     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
647 #endif
648 #ifdef VK_ENABLE_BETA_EXTENSIONS
649     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
650 #endif
651 #ifdef VK_ENABLE_BETA_EXTENSIONS
652     VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
653 #endif
654 #ifdef VK_ENABLE_BETA_EXTENSIONS
655     VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
656 #endif
657 #ifdef VK_ENABLE_BETA_EXTENSIONS
658     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
659 #endif
660     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
661     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
662     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
663     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
664     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
665     VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
666     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
667     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
668     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
669     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
670     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
671     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
672     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
673     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
674     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
675     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
676     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
677     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
678     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
679     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
680     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
681     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
682     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
683     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
684     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
685     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
686     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
687     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
688     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
689     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
690     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
691     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
692     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
693     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
694     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
695     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
696     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
697     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
698     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
699     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
700     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
701     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
702 #ifdef VK_ENABLE_BETA_EXTENSIONS
703     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
704 #endif
705 #ifdef VK_ENABLE_BETA_EXTENSIONS
706     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
707 #endif
708     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
709     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
710     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
711     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
712     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
713     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
714     VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
715     VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
716     VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
717     VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
718     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
719     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
720     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
721     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
722     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
723     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
724     VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
725     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
726     VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
727     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
728     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
729     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
730     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
731     VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
732     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
733     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
734     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
735     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
736     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
737     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
738     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
739     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
740     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
741     VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
742     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
743     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
744     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
745     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
746     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
747     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
748     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
749     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
750     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
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_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
767     VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
768     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
769     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
770     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
771     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
772     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
773     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
774     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
775     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
776     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
777     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
778     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
779     VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
780     VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
781     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
782     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
783     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
784     VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
785     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
786     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
787     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
788     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
789     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
790     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
791     VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
792     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
793     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
794     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
795     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
796     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
797     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
798     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
799     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
800     VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
801     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
802     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
803     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
804     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
805     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
806     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
807     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
808     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
809     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
810     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
811     VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
812     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
813     VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000,
814     VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001,
815     VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002,
816     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000,
817     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001,
818     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002,
819     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003,
820     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004,
821     VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005,
822     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
823     VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
824     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
825     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
826     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
827     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
828     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
829     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
830     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
831     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
832     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
833     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
834     VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
835     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
836     VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
837     VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
838     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
839     VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
840     VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
841     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
842     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
843     VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
844     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
845     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
846     VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
847     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
848     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
849     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
850     VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
851     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
852     VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
853     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
854     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
855     VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
856     VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
857     VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
858     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
859     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
860     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
861     VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
862     VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
863     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
864     VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
865     VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
866     VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
867     VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
868     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
869     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
870     VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
871     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
872     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
873     VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
874     VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
875     VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
876     VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
877     VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
878     VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
879     VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
880     VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
881     VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
882     VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
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_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT = 1000361000,
936     VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
937     VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
938     VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
939     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
940     VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
941     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
942     VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
943     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
944     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
945     VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
946     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
947     VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
948     VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
949     VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
950     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
951     VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
952     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
953     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
954     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
955     VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
956     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
957     VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
958     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
959     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
960     VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
961     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
962     VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
963     VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
964     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
965     VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
966     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
967     VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
968     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
969     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
970     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
971     VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
972     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
973     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
974     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
975     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
976     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
977     VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
978     VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
979     VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
980     VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
981     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
982     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
983     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
984     VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
985     VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
986     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
987 #ifdef VK_ENABLE_BETA_EXTENSIONS
988     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
989 #endif
990 #ifdef VK_ENABLE_BETA_EXTENSIONS
991     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
992 #endif
993 #ifdef VK_ENABLE_BETA_EXTENSIONS
994     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
995 #endif
996     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
997     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
998     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
999     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
1000     VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
1001     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
1002     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
1003     VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
1004     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
1005     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
1006     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
1007     VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
1008     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
1009     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
1010     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
1011     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000,
1012     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
1013     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
1014     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
1015     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
1016     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
1017     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
1018     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000,
1019     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001,
1020     VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002,
1021     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
1022     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001,
1023     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000,
1024     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001,
1025     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
1026     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
1027     VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
1028     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
1029     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
1030     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
1031     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
1032     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
1033     VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
1034     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
1035     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
1036     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
1037     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
1038     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
1039     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1040     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1041     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
1042     VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
1043     VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
1044     VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
1045     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
1046     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
1047     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
1048     VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
1049     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
1050     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
1051     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
1052     VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
1053     VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
1054     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
1055     VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
1056     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
1057     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
1058     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
1059     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
1060     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
1061     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = 1000476000,
1062     VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = 1000476001,
1063     VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = 1000476002,
1064     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
1065     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
1066     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
1067     VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
1068     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = 1000483000,
1069     VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = 1000483001,
1070     VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = 1000483002,
1071     VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = 1000483003,
1072     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = 1000483004,
1073     VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = 1000483005,
1074     VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = 1000483006,
1075     VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = 1000483007,
1076     VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = 1000483008,
1077     VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = 1000483009,
1078     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
1079     VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
1080     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
1081     VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
1082     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
1083     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
1084     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
1085     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
1086     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
1087     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
1088     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
1089     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = 1000495000,
1090     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = 1000495001,
1091     VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
1092     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
1093     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
1094     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
1095     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
1096     VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
1097     VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
1098     VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
1099     VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
1100     VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
1101     VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
1102     VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
1103     VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
1104     VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
1105     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
1106     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
1107     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
1108     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
1109     VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
1110     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR = 1000201000,
1111     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR = 1000511000,
1112     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
1113     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
1114     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
1115     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
1116     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
1117     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR = 1000513000,
1118     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000513001,
1119     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR = 1000513002,
1120     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR = 1000513003,
1121     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR = 1000513004,
1122     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR = 1000513005,
1123     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR = 1000513006,
1124     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR = 1000513007,
1125     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR = 1000513008,
1126     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR = 1000513009,
1127     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR = 1000513010,
1128     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
1129     VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
1130     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
1131     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
1132     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
1133     VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
1134     VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
1135     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
1136     VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
1137     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
1138     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
1139     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
1140     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
1141     VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
1142     VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
1143     VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
1144     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
1145     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
1146     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
1147     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
1148     VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
1149     VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
1150     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
1151     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV = 1000551000,
1152     VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV = 1000551001,
1153     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553000,
1154     VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553001,
1155     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR = 1000553002,
1156     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000553005,
1157     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR = 1000553009,
1158     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553003,
1159     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553004,
1160     VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553006,
1161     VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553007,
1162     VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553008,
1163     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
1164     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000,
1165     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV = 1000559000,
1166     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = 1000562000,
1167     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = 1000562001,
1168     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = 1000562002,
1169     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = 1000562003,
1170     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004,
1171     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
1172     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
1173     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
1174     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT = 1000572000,
1175     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT = 1000572001,
1176     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT = 1000572002,
1177     VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT = 1000572003,
1178     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT = 1000572004,
1179     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT = 1000572006,
1180     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT = 1000572007,
1181     VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT = 1000572008,
1182     VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT = 1000572009,
1183     VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT = 1000572010,
1184     VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT = 1000572011,
1185     VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012,
1186     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013,
1187     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014,
1188     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
1189     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
1190     VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
1191     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000,
1192     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,
1193     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = 1000590000,
1194     VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI = 1000590001,
1195     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,
1196     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001,
1197     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002,
1198     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = 1000608000,
1199     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1200     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1201   // VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a deprecated alias
1202     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1203     VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1204     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1205     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1206     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1207     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1208     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1209     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1210     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1211     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1212     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1213     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1214     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1215     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1216     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1217     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1218     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1219     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1220     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1221     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1222     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1223     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1224     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1225     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1226     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1227     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1228     VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO,
1229     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES,
1230     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES,
1231     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1232     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1233     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1234     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1235     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1236     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1237     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1238     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1239     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1240     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1241     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
1242     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
1243     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
1244     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES,
1245     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1246     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1247     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
1248     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
1249   // VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT is a deprecated alias
1250     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
1251     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
1252     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
1253     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
1254     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
1255     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
1256     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
1257     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
1258     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
1259     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
1260     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
1261     VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
1262     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
1263     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
1264     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
1265     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
1266     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
1267     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
1268     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
1269     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1270     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1271     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
1272     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
1273     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
1274     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
1275     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
1276     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
1277     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
1278     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
1279     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
1280     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
1281     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
1282     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
1283     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
1284     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
1285     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1286     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
1287     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
1288     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
1289     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
1290     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
1291     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
1292     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
1293     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
1294     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
1295     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
1296     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
1297     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
1298     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
1299     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
1300     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
1301     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1302     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
1303     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
1304     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
1305     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
1306     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1307     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1308     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1309     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1310     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1311     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
1312     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1313     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
1314     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
1315     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
1316     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
1317     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1318     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
1319     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
1320     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
1321     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
1322     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
1323     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
1324   // VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL is a deprecated alias
1325     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
1326     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
1327     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
1328     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
1329     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
1330     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1331     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
1332     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES,
1333     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO,
1334     VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO,
1335     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
1336     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1337     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1338     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
1339     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1340     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
1341     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
1342     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
1343     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
1344     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1345     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
1346     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
1347     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
1348     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1349     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1350     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1351     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
1352     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1353     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES,
1354     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES,
1355     VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY,
1356     VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY,
1357     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO,
1358     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO,
1359     VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO,
1360     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO,
1361     VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE,
1362     VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY,
1363     VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO,
1364     VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO,
1365     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
1366     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
1367     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
1368     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
1369     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
1370     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
1371     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
1372     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
1373     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
1374     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
1375     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
1376     VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
1377     VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
1378     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
1379     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
1380     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
1381     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
1382     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
1383     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
1384     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
1385     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
1386     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
1387     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
1388     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
1389     VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
1390     VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
1391     VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
1392     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
1393     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
1394     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1395     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1396     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1397     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1398     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1399     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
1400     VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1401     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1402     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1403     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
1404     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
1405     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
1406     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
1407     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
1408     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
1409     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
1410     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
1411     VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO,
1412     VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO,
1413     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1414     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1415     VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO,
1416     VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
1417     VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1418     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES,
1419     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1420     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1421     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES,
1422     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1423     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1424     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1425     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1426     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES,
1427     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES,
1428     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES,
1429     VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS,
1430     VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO,
1431     VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO,
1432     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO,
1433     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO,
1434     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1435 } VkStructureType;
1436 
1437 typedef enum VkPipelineCacheHeaderVersion {
1438     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1439     VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
1440 } VkPipelineCacheHeaderVersion;
1441 
1442 typedef enum VkImageLayout {
1443     VK_IMAGE_LAYOUT_UNDEFINED = 0,
1444     VK_IMAGE_LAYOUT_GENERAL = 1,
1445     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
1446     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
1447     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
1448     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
1449     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
1450     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
1451     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
1452     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
1453     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
1454     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
1455     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
1456     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
1457     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
1458     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
1459     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
1460     VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ = 1000232000,
1461     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
1462     VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
1463     VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
1464     VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
1465     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
1466     VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
1467     VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
1468     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
1469     VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
1470     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
1471     VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
1472     VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR = 1000553000,
1473     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
1474     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
1475     VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
1476     VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ,
1477     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
1478     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
1479     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
1480     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
1481     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
1482     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
1483     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
1484 } VkImageLayout;
1485 
1486 typedef enum VkObjectType {
1487     VK_OBJECT_TYPE_UNKNOWN = 0,
1488     VK_OBJECT_TYPE_INSTANCE = 1,
1489     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1490     VK_OBJECT_TYPE_DEVICE = 3,
1491     VK_OBJECT_TYPE_QUEUE = 4,
1492     VK_OBJECT_TYPE_SEMAPHORE = 5,
1493     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1494     VK_OBJECT_TYPE_FENCE = 7,
1495     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1496     VK_OBJECT_TYPE_BUFFER = 9,
1497     VK_OBJECT_TYPE_IMAGE = 10,
1498     VK_OBJECT_TYPE_EVENT = 11,
1499     VK_OBJECT_TYPE_QUERY_POOL = 12,
1500     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1501     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1502     VK_OBJECT_TYPE_SHADER_MODULE = 15,
1503     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1504     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1505     VK_OBJECT_TYPE_RENDER_PASS = 18,
1506     VK_OBJECT_TYPE_PIPELINE = 19,
1507     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1508     VK_OBJECT_TYPE_SAMPLER = 21,
1509     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1510     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1511     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1512     VK_OBJECT_TYPE_COMMAND_POOL = 25,
1513     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1514     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1515     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1516     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1517     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1518     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1519     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1520     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1521     VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
1522     VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
1523     VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
1524     VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
1525     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1526     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
1527     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1528     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1529     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1530     VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
1531     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
1532     VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
1533     VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
1534     VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
1535     VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
1536     VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
1537     VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
1538     VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000,
1539     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT = 1000572000,
1540     VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT = 1000572001,
1541     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1542     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1543     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1544     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1545 } VkObjectType;
1546 
1547 typedef enum VkVendorId {
1548     VK_VENDOR_ID_KHRONOS = 0x10000,
1549     VK_VENDOR_ID_VIV = 0x10001,
1550     VK_VENDOR_ID_VSI = 0x10002,
1551     VK_VENDOR_ID_KAZAN = 0x10003,
1552     VK_VENDOR_ID_CODEPLAY = 0x10004,
1553     VK_VENDOR_ID_MESA = 0x10005,
1554     VK_VENDOR_ID_POCL = 0x10006,
1555     VK_VENDOR_ID_MOBILEYE = 0x10007,
1556     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1557 } VkVendorId;
1558 
1559 typedef enum VkSystemAllocationScope {
1560     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1561     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1562     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1563     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1564     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1565     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1566 } VkSystemAllocationScope;
1567 
1568 typedef enum VkInternalAllocationType {
1569     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1570     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1571 } VkInternalAllocationType;
1572 
1573 typedef enum VkFormat {
1574     VK_FORMAT_UNDEFINED = 0,
1575     VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1576     VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1577     VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1578     VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1579     VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1580     VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1581     VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1582     VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1583     VK_FORMAT_R8_UNORM = 9,
1584     VK_FORMAT_R8_SNORM = 10,
1585     VK_FORMAT_R8_USCALED = 11,
1586     VK_FORMAT_R8_SSCALED = 12,
1587     VK_FORMAT_R8_UINT = 13,
1588     VK_FORMAT_R8_SINT = 14,
1589     VK_FORMAT_R8_SRGB = 15,
1590     VK_FORMAT_R8G8_UNORM = 16,
1591     VK_FORMAT_R8G8_SNORM = 17,
1592     VK_FORMAT_R8G8_USCALED = 18,
1593     VK_FORMAT_R8G8_SSCALED = 19,
1594     VK_FORMAT_R8G8_UINT = 20,
1595     VK_FORMAT_R8G8_SINT = 21,
1596     VK_FORMAT_R8G8_SRGB = 22,
1597     VK_FORMAT_R8G8B8_UNORM = 23,
1598     VK_FORMAT_R8G8B8_SNORM = 24,
1599     VK_FORMAT_R8G8B8_USCALED = 25,
1600     VK_FORMAT_R8G8B8_SSCALED = 26,
1601     VK_FORMAT_R8G8B8_UINT = 27,
1602     VK_FORMAT_R8G8B8_SINT = 28,
1603     VK_FORMAT_R8G8B8_SRGB = 29,
1604     VK_FORMAT_B8G8R8_UNORM = 30,
1605     VK_FORMAT_B8G8R8_SNORM = 31,
1606     VK_FORMAT_B8G8R8_USCALED = 32,
1607     VK_FORMAT_B8G8R8_SSCALED = 33,
1608     VK_FORMAT_B8G8R8_UINT = 34,
1609     VK_FORMAT_B8G8R8_SINT = 35,
1610     VK_FORMAT_B8G8R8_SRGB = 36,
1611     VK_FORMAT_R8G8B8A8_UNORM = 37,
1612     VK_FORMAT_R8G8B8A8_SNORM = 38,
1613     VK_FORMAT_R8G8B8A8_USCALED = 39,
1614     VK_FORMAT_R8G8B8A8_SSCALED = 40,
1615     VK_FORMAT_R8G8B8A8_UINT = 41,
1616     VK_FORMAT_R8G8B8A8_SINT = 42,
1617     VK_FORMAT_R8G8B8A8_SRGB = 43,
1618     VK_FORMAT_B8G8R8A8_UNORM = 44,
1619     VK_FORMAT_B8G8R8A8_SNORM = 45,
1620     VK_FORMAT_B8G8R8A8_USCALED = 46,
1621     VK_FORMAT_B8G8R8A8_SSCALED = 47,
1622     VK_FORMAT_B8G8R8A8_UINT = 48,
1623     VK_FORMAT_B8G8R8A8_SINT = 49,
1624     VK_FORMAT_B8G8R8A8_SRGB = 50,
1625     VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1626     VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1627     VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1628     VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1629     VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1630     VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1631     VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1632     VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1633     VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1634     VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1635     VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1636     VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1637     VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1638     VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1639     VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1640     VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1641     VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1642     VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1643     VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1644     VK_FORMAT_R16_UNORM = 70,
1645     VK_FORMAT_R16_SNORM = 71,
1646     VK_FORMAT_R16_USCALED = 72,
1647     VK_FORMAT_R16_SSCALED = 73,
1648     VK_FORMAT_R16_UINT = 74,
1649     VK_FORMAT_R16_SINT = 75,
1650     VK_FORMAT_R16_SFLOAT = 76,
1651     VK_FORMAT_R16G16_UNORM = 77,
1652     VK_FORMAT_R16G16_SNORM = 78,
1653     VK_FORMAT_R16G16_USCALED = 79,
1654     VK_FORMAT_R16G16_SSCALED = 80,
1655     VK_FORMAT_R16G16_UINT = 81,
1656     VK_FORMAT_R16G16_SINT = 82,
1657     VK_FORMAT_R16G16_SFLOAT = 83,
1658     VK_FORMAT_R16G16B16_UNORM = 84,
1659     VK_FORMAT_R16G16B16_SNORM = 85,
1660     VK_FORMAT_R16G16B16_USCALED = 86,
1661     VK_FORMAT_R16G16B16_SSCALED = 87,
1662     VK_FORMAT_R16G16B16_UINT = 88,
1663     VK_FORMAT_R16G16B16_SINT = 89,
1664     VK_FORMAT_R16G16B16_SFLOAT = 90,
1665     VK_FORMAT_R16G16B16A16_UNORM = 91,
1666     VK_FORMAT_R16G16B16A16_SNORM = 92,
1667     VK_FORMAT_R16G16B16A16_USCALED = 93,
1668     VK_FORMAT_R16G16B16A16_SSCALED = 94,
1669     VK_FORMAT_R16G16B16A16_UINT = 95,
1670     VK_FORMAT_R16G16B16A16_SINT = 96,
1671     VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1672     VK_FORMAT_R32_UINT = 98,
1673     VK_FORMAT_R32_SINT = 99,
1674     VK_FORMAT_R32_SFLOAT = 100,
1675     VK_FORMAT_R32G32_UINT = 101,
1676     VK_FORMAT_R32G32_SINT = 102,
1677     VK_FORMAT_R32G32_SFLOAT = 103,
1678     VK_FORMAT_R32G32B32_UINT = 104,
1679     VK_FORMAT_R32G32B32_SINT = 105,
1680     VK_FORMAT_R32G32B32_SFLOAT = 106,
1681     VK_FORMAT_R32G32B32A32_UINT = 107,
1682     VK_FORMAT_R32G32B32A32_SINT = 108,
1683     VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1684     VK_FORMAT_R64_UINT = 110,
1685     VK_FORMAT_R64_SINT = 111,
1686     VK_FORMAT_R64_SFLOAT = 112,
1687     VK_FORMAT_R64G64_UINT = 113,
1688     VK_FORMAT_R64G64_SINT = 114,
1689     VK_FORMAT_R64G64_SFLOAT = 115,
1690     VK_FORMAT_R64G64B64_UINT = 116,
1691     VK_FORMAT_R64G64B64_SINT = 117,
1692     VK_FORMAT_R64G64B64_SFLOAT = 118,
1693     VK_FORMAT_R64G64B64A64_UINT = 119,
1694     VK_FORMAT_R64G64B64A64_SINT = 120,
1695     VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1696     VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1697     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1698     VK_FORMAT_D16_UNORM = 124,
1699     VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1700     VK_FORMAT_D32_SFLOAT = 126,
1701     VK_FORMAT_S8_UINT = 127,
1702     VK_FORMAT_D16_UNORM_S8_UINT = 128,
1703     VK_FORMAT_D24_UNORM_S8_UINT = 129,
1704     VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1705     VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1706     VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1707     VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1708     VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1709     VK_FORMAT_BC2_UNORM_BLOCK = 135,
1710     VK_FORMAT_BC2_SRGB_BLOCK = 136,
1711     VK_FORMAT_BC3_UNORM_BLOCK = 137,
1712     VK_FORMAT_BC3_SRGB_BLOCK = 138,
1713     VK_FORMAT_BC4_UNORM_BLOCK = 139,
1714     VK_FORMAT_BC4_SNORM_BLOCK = 140,
1715     VK_FORMAT_BC5_UNORM_BLOCK = 141,
1716     VK_FORMAT_BC5_SNORM_BLOCK = 142,
1717     VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1718     VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1719     VK_FORMAT_BC7_UNORM_BLOCK = 145,
1720     VK_FORMAT_BC7_SRGB_BLOCK = 146,
1721     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1722     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1723     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1724     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1725     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1726     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1727     VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1728     VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1729     VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1730     VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1731     VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1732     VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1733     VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1734     VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1735     VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1736     VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1737     VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1738     VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1739     VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1740     VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1741     VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1742     VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1743     VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1744     VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1745     VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1746     VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1747     VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1748     VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1749     VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1750     VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1751     VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1752     VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1753     VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1754     VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1755     VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1756     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1757     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1758     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
1759     VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1760     VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1761     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1762     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1763     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1764     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1765     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1766     VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1767     VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1768     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1769     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1770     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1771     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1772     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1773     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1774     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1775     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1776     VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1777     VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1778     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1779     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1780     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1781     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1782     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1783     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1784     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1785     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1786     VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1787     VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1788     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1789     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1790     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1791     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1792     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1793     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
1794     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
1795     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
1796     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
1797     VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
1798     VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
1799     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
1800     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
1801     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
1802     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
1803     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
1804     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
1805     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
1806     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
1807     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
1808     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
1809     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
1810     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
1811     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
1812     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
1813     VK_FORMAT_A1B5G5R5_UNORM_PACK16 = 1000470000,
1814     VK_FORMAT_A8_UNORM = 1000470001,
1815     VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1816     VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1817     VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1818     VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1819     VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1820     VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1821     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1822     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
1823     VK_FORMAT_R16G16_SFIXED5_NV = 1000464000,
1824     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
1825     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
1826     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
1827     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
1828     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
1829     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
1830     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
1831     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
1832     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
1833     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
1834     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
1835     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
1836     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
1837     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
1838     VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
1839     VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
1840     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
1841     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
1842     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
1843     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
1844     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
1845     VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
1846     VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
1847     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
1848     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
1849     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
1850     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
1851     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
1852     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
1853     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
1854     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
1855     VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
1856     VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
1857     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
1858     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
1859     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
1860     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
1861     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
1862     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
1863     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
1864     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
1865     VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
1866     VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
1867     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
1868     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
1869     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
1870     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
1871     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
1872     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
1873     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
1874     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
1875     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
1876     VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
1877     VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
1878   // VK_FORMAT_R16G16_S10_5_NV is a deprecated alias
1879     VK_FORMAT_R16G16_S10_5_NV = VK_FORMAT_R16G16_SFIXED5_NV,
1880     VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = VK_FORMAT_A1B5G5R5_UNORM_PACK16,
1881     VK_FORMAT_A8_UNORM_KHR = VK_FORMAT_A8_UNORM,
1882     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
1883 } VkFormat;
1884 
1885 typedef enum VkImageTiling {
1886     VK_IMAGE_TILING_OPTIMAL = 0,
1887     VK_IMAGE_TILING_LINEAR = 1,
1888     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
1889     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
1890 } VkImageTiling;
1891 
1892 typedef enum VkImageType {
1893     VK_IMAGE_TYPE_1D = 0,
1894     VK_IMAGE_TYPE_2D = 1,
1895     VK_IMAGE_TYPE_3D = 2,
1896     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
1897 } VkImageType;
1898 
1899 typedef enum VkPhysicalDeviceType {
1900     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
1901     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
1902     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
1903     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
1904     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
1905     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
1906 } VkPhysicalDeviceType;
1907 
1908 typedef enum VkQueryType {
1909     VK_QUERY_TYPE_OCCLUSION = 0,
1910     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
1911     VK_QUERY_TYPE_TIMESTAMP = 2,
1912     VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
1913     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
1914     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
1915     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
1916     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
1917     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
1918     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
1919     VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
1920     VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
1921     VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
1922     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
1923     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
1924     VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
1925     VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
1926     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
1927 } VkQueryType;
1928 
1929 typedef enum VkSharingMode {
1930     VK_SHARING_MODE_EXCLUSIVE = 0,
1931     VK_SHARING_MODE_CONCURRENT = 1,
1932     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
1933 } VkSharingMode;
1934 
1935 typedef enum VkComponentSwizzle {
1936     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
1937     VK_COMPONENT_SWIZZLE_ZERO = 1,
1938     VK_COMPONENT_SWIZZLE_ONE = 2,
1939     VK_COMPONENT_SWIZZLE_R = 3,
1940     VK_COMPONENT_SWIZZLE_G = 4,
1941     VK_COMPONENT_SWIZZLE_B = 5,
1942     VK_COMPONENT_SWIZZLE_A = 6,
1943     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
1944 } VkComponentSwizzle;
1945 
1946 typedef enum VkImageViewType {
1947     VK_IMAGE_VIEW_TYPE_1D = 0,
1948     VK_IMAGE_VIEW_TYPE_2D = 1,
1949     VK_IMAGE_VIEW_TYPE_3D = 2,
1950     VK_IMAGE_VIEW_TYPE_CUBE = 3,
1951     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
1952     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
1953     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
1954     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
1955 } VkImageViewType;
1956 
1957 typedef enum VkBlendFactor {
1958     VK_BLEND_FACTOR_ZERO = 0,
1959     VK_BLEND_FACTOR_ONE = 1,
1960     VK_BLEND_FACTOR_SRC_COLOR = 2,
1961     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
1962     VK_BLEND_FACTOR_DST_COLOR = 4,
1963     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
1964     VK_BLEND_FACTOR_SRC_ALPHA = 6,
1965     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
1966     VK_BLEND_FACTOR_DST_ALPHA = 8,
1967     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
1968     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
1969     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
1970     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
1971     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
1972     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
1973     VK_BLEND_FACTOR_SRC1_COLOR = 15,
1974     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
1975     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
1976     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
1977     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
1978 } VkBlendFactor;
1979 
1980 typedef enum VkBlendOp {
1981     VK_BLEND_OP_ADD = 0,
1982     VK_BLEND_OP_SUBTRACT = 1,
1983     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
1984     VK_BLEND_OP_MIN = 3,
1985     VK_BLEND_OP_MAX = 4,
1986     VK_BLEND_OP_ZERO_EXT = 1000148000,
1987     VK_BLEND_OP_SRC_EXT = 1000148001,
1988     VK_BLEND_OP_DST_EXT = 1000148002,
1989     VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
1990     VK_BLEND_OP_DST_OVER_EXT = 1000148004,
1991     VK_BLEND_OP_SRC_IN_EXT = 1000148005,
1992     VK_BLEND_OP_DST_IN_EXT = 1000148006,
1993     VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
1994     VK_BLEND_OP_DST_OUT_EXT = 1000148008,
1995     VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
1996     VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
1997     VK_BLEND_OP_XOR_EXT = 1000148011,
1998     VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
1999     VK_BLEND_OP_SCREEN_EXT = 1000148013,
2000     VK_BLEND_OP_OVERLAY_EXT = 1000148014,
2001     VK_BLEND_OP_DARKEN_EXT = 1000148015,
2002     VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
2003     VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
2004     VK_BLEND_OP_COLORBURN_EXT = 1000148018,
2005     VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
2006     VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
2007     VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
2008     VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
2009     VK_BLEND_OP_INVERT_EXT = 1000148023,
2010     VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
2011     VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
2012     VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
2013     VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
2014     VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
2015     VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
2016     VK_BLEND_OP_HARDMIX_EXT = 1000148030,
2017     VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
2018     VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
2019     VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
2020     VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
2021     VK_BLEND_OP_PLUS_EXT = 1000148035,
2022     VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
2023     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
2024     VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
2025     VK_BLEND_OP_MINUS_EXT = 1000148039,
2026     VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
2027     VK_BLEND_OP_CONTRAST_EXT = 1000148041,
2028     VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
2029     VK_BLEND_OP_RED_EXT = 1000148043,
2030     VK_BLEND_OP_GREEN_EXT = 1000148044,
2031     VK_BLEND_OP_BLUE_EXT = 1000148045,
2032     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
2033 } VkBlendOp;
2034 
2035 typedef enum VkCompareOp {
2036     VK_COMPARE_OP_NEVER = 0,
2037     VK_COMPARE_OP_LESS = 1,
2038     VK_COMPARE_OP_EQUAL = 2,
2039     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
2040     VK_COMPARE_OP_GREATER = 4,
2041     VK_COMPARE_OP_NOT_EQUAL = 5,
2042     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
2043     VK_COMPARE_OP_ALWAYS = 7,
2044     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
2045 } VkCompareOp;
2046 
2047 typedef enum VkDynamicState {
2048     VK_DYNAMIC_STATE_VIEWPORT = 0,
2049     VK_DYNAMIC_STATE_SCISSOR = 1,
2050     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
2051     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
2052     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
2053     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
2054     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
2055     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
2056     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
2057     VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
2058     VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
2059     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
2060     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
2061     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
2062     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
2063     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
2064     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
2065     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
2066     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
2067     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
2068     VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
2069     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
2070     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
2071     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
2072     VK_DYNAMIC_STATE_LINE_STIPPLE = 1000259000,
2073     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
2074     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
2075     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
2076     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
2077     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
2078     VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
2079     VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
2080     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
2081     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
2082     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
2083     VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
2084     VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
2085     VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
2086     VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
2087     VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
2088     VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
2089     VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
2090     VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
2091     VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
2092     VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
2093     VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
2094     VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
2095     VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
2096     VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
2097     VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
2098     VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
2099     VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
2100     VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
2101     VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
2102     VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
2103     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
2104     VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
2105     VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
2106     VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
2107     VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
2108     VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
2109     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
2110     VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
2111     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
2112     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
2113     VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
2114     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
2115     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
2116     VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
2117     VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
2118     VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
2119     VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
2120     VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT = 1000582000,
2121     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE,
2122     VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
2123     VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
2124     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
2125     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
2126     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
2127     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
2128     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
2129     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
2130     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
2131     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
2132     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
2133     VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
2134     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
2135     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2136     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2137     VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = VK_DYNAMIC_STATE_LINE_STIPPLE,
2138     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
2139 } VkDynamicState;
2140 
2141 typedef enum VkFrontFace {
2142     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
2143     VK_FRONT_FACE_CLOCKWISE = 1,
2144     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
2145 } VkFrontFace;
2146 
2147 typedef enum VkVertexInputRate {
2148     VK_VERTEX_INPUT_RATE_VERTEX = 0,
2149     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
2150     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
2151 } VkVertexInputRate;
2152 
2153 typedef enum VkPrimitiveTopology {
2154     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
2155     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
2156     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
2157     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
2158     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
2159     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
2160     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
2161     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
2162     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
2163     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
2164     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
2165     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
2166 } VkPrimitiveTopology;
2167 
2168 typedef enum VkPolygonMode {
2169     VK_POLYGON_MODE_FILL = 0,
2170     VK_POLYGON_MODE_LINE = 1,
2171     VK_POLYGON_MODE_POINT = 2,
2172     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
2173     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
2174 } VkPolygonMode;
2175 
2176 typedef enum VkStencilOp {
2177     VK_STENCIL_OP_KEEP = 0,
2178     VK_STENCIL_OP_ZERO = 1,
2179     VK_STENCIL_OP_REPLACE = 2,
2180     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
2181     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
2182     VK_STENCIL_OP_INVERT = 5,
2183     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
2184     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
2185     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
2186 } VkStencilOp;
2187 
2188 typedef enum VkLogicOp {
2189     VK_LOGIC_OP_CLEAR = 0,
2190     VK_LOGIC_OP_AND = 1,
2191     VK_LOGIC_OP_AND_REVERSE = 2,
2192     VK_LOGIC_OP_COPY = 3,
2193     VK_LOGIC_OP_AND_INVERTED = 4,
2194     VK_LOGIC_OP_NO_OP = 5,
2195     VK_LOGIC_OP_XOR = 6,
2196     VK_LOGIC_OP_OR = 7,
2197     VK_LOGIC_OP_NOR = 8,
2198     VK_LOGIC_OP_EQUIVALENT = 9,
2199     VK_LOGIC_OP_INVERT = 10,
2200     VK_LOGIC_OP_OR_REVERSE = 11,
2201     VK_LOGIC_OP_COPY_INVERTED = 12,
2202     VK_LOGIC_OP_OR_INVERTED = 13,
2203     VK_LOGIC_OP_NAND = 14,
2204     VK_LOGIC_OP_SET = 15,
2205     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
2206 } VkLogicOp;
2207 
2208 typedef enum VkBorderColor {
2209     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2210     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2211     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2212     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2213     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2214     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2215     VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2216     VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2217     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2218 } VkBorderColor;
2219 
2220 typedef enum VkFilter {
2221     VK_FILTER_NEAREST = 0,
2222     VK_FILTER_LINEAR = 1,
2223     VK_FILTER_CUBIC_EXT = 1000015000,
2224     VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
2225     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2226 } VkFilter;
2227 
2228 typedef enum VkSamplerAddressMode {
2229     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2230     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2231     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2232     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2233     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2234   // VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR is a deprecated alias
2235     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2236     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2237 } VkSamplerAddressMode;
2238 
2239 typedef enum VkSamplerMipmapMode {
2240     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2241     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2242     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2243 } VkSamplerMipmapMode;
2244 
2245 typedef enum VkDescriptorType {
2246     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2247     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2248     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2249     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2250     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2251     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2252     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2253     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2254     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2255     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2256     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2257     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2258     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2259     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2260     VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
2261     VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
2262     VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
2263     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2264     VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2265     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2266 } VkDescriptorType;
2267 
2268 typedef enum VkAttachmentLoadOp {
2269     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2270     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2271     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2272     VK_ATTACHMENT_LOAD_OP_NONE = 1000400000,
2273     VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE,
2274     VK_ATTACHMENT_LOAD_OP_NONE_KHR = VK_ATTACHMENT_LOAD_OP_NONE,
2275     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2276 } VkAttachmentLoadOp;
2277 
2278 typedef enum VkAttachmentStoreOp {
2279     VK_ATTACHMENT_STORE_OP_STORE = 0,
2280     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2281     VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2282     VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2283     VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2284     VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2285     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2286 } VkAttachmentStoreOp;
2287 
2288 typedef enum VkPipelineBindPoint {
2289     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2290     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2291 #ifdef VK_ENABLE_BETA_EXTENSIONS
2292     VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
2293 #endif
2294     VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2295     VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2296     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2297     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2298 } VkPipelineBindPoint;
2299 
2300 typedef enum VkCommandBufferLevel {
2301     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2302     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2303     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2304 } VkCommandBufferLevel;
2305 
2306 typedef enum VkIndexType {
2307     VK_INDEX_TYPE_UINT16 = 0,
2308     VK_INDEX_TYPE_UINT32 = 1,
2309     VK_INDEX_TYPE_UINT8 = 1000265000,
2310     VK_INDEX_TYPE_NONE_KHR = 1000165000,
2311     VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2312     VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8,
2313     VK_INDEX_TYPE_UINT8_KHR = VK_INDEX_TYPE_UINT8,
2314     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2315 } VkIndexType;
2316 
2317 typedef enum VkSubpassContents {
2318     VK_SUBPASS_CONTENTS_INLINE = 0,
2319     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2320     VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000,
2321     VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR,
2322     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2323 } VkSubpassContents;
2324 
2325 typedef enum VkAccessFlagBits {
2326     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2327     VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2328     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2329     VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2330     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2331     VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2332     VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2333     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2334     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2335     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2336     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2337     VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2338     VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2339     VK_ACCESS_HOST_READ_BIT = 0x00002000,
2340     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2341     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2342     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
2343     VK_ACCESS_NONE = 0,
2344     VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2345     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2346     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
2347     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
2348     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2349     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
2350     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
2351     VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2352     VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
2353     VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
2354     VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
2355     VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
2356     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
2357     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
2358     VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
2359     VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
2360     VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
2361     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2362 } VkAccessFlagBits;
2363 typedef VkFlags VkAccessFlags;
2364 
2365 typedef enum VkImageAspectFlagBits {
2366     VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2367     VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2368     VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2369     VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
2370     VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2371     VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2372     VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2373     VK_IMAGE_ASPECT_NONE = 0,
2374     VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2375     VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2376     VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2377     VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
2378     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
2379     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
2380     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
2381     VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
2382     VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2383 } VkImageAspectFlagBits;
2384 typedef VkFlags VkImageAspectFlags;
2385 
2386 typedef enum VkFormatFeatureFlagBits {
2387     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
2388     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
2389     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
2390     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
2391     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
2392     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
2393     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
2394     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
2395     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
2396     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
2397     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
2398     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
2399     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
2400     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2401     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2402     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2403     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2404     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2405     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2406     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2407     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2408     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2409     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
2410     VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
2411     VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
2412     VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
2413     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
2414     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
2415     VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
2416     VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
2417     VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
2418     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2419     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2420     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2421     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2422     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2423     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2424     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2425     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2426     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,
2427     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
2428     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2429     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2430 } VkFormatFeatureFlagBits;
2431 typedef VkFlags VkFormatFeatureFlags;
2432 
2433 typedef enum VkImageCreateFlagBits {
2434     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2435     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2436     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2437     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
2438     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
2439     VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2440     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
2441     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
2442     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2443     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
2444     VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
2445     VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
2446     VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
2447     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
2448     VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
2449     VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
2450     VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
2451     VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
2452     VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000,
2453     VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
2454     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2455     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2456     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2457     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2458     VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
2459     VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
2460     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2461 } VkImageCreateFlagBits;
2462 typedef VkFlags VkImageCreateFlags;
2463 
2464 typedef enum VkSampleCountFlagBits {
2465     VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2466     VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2467     VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2468     VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2469     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2470     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2471     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2472     VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2473 } VkSampleCountFlagBits;
2474 typedef VkFlags VkSampleCountFlags;
2475 
2476 typedef enum VkImageUsageFlagBits {
2477     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2478     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
2479     VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
2480     VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
2481     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
2482     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
2483     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
2484     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
2485     VK_IMAGE_USAGE_HOST_TRANSFER_BIT = 0x00400000,
2486     VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
2487     VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
2488     VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
2489     VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
2490     VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
2491     VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
2492     VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
2493     VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
2494     VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
2495     VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
2496     VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
2497     VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
2498     VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x02000000,
2499     VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x04000000,
2500     VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2501     VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = VK_IMAGE_USAGE_HOST_TRANSFER_BIT,
2502     VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2503 } VkImageUsageFlagBits;
2504 typedef VkFlags VkImageUsageFlags;
2505 
2506 typedef enum VkInstanceCreateFlagBits {
2507     VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
2508     VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2509 } VkInstanceCreateFlagBits;
2510 typedef VkFlags VkInstanceCreateFlags;
2511 
2512 typedef enum VkMemoryHeapFlagBits {
2513     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
2514     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2515     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2516     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2517 } VkMemoryHeapFlagBits;
2518 typedef VkFlags VkMemoryHeapFlags;
2519 
2520 typedef enum VkMemoryPropertyFlagBits {
2521     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2522     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2523     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2524     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2525     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
2526     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
2527     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
2528     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
2529     VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
2530     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2531 } VkMemoryPropertyFlagBits;
2532 typedef VkFlags VkMemoryPropertyFlags;
2533 
2534 typedef enum VkQueueFlagBits {
2535     VK_QUEUE_GRAPHICS_BIT = 0x00000001,
2536     VK_QUEUE_COMPUTE_BIT = 0x00000002,
2537     VK_QUEUE_TRANSFER_BIT = 0x00000004,
2538     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
2539     VK_QUEUE_PROTECTED_BIT = 0x00000010,
2540     VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
2541     VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
2542     VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
2543     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2544 } VkQueueFlagBits;
2545 typedef VkFlags VkQueueFlags;
2546 typedef VkFlags VkDeviceCreateFlags;
2547 
2548 typedef enum VkDeviceQueueCreateFlagBits {
2549     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2550     VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2551 } VkDeviceQueueCreateFlagBits;
2552 typedef VkFlags VkDeviceQueueCreateFlags;
2553 
2554 typedef enum VkPipelineStageFlagBits {
2555     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
2556     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
2557     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
2558     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
2559     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
2560     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
2561     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
2562     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
2563     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
2564     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
2565     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
2566     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
2567     VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
2568     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2569     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
2570     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
2571     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
2572     VK_PIPELINE_STAGE_NONE = 0,
2573     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
2574     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
2575     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
2576     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
2577     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2578     VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
2579     VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
2580     VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
2581     VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
2582     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2583     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2584     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2585     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2586     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
2587     VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
2588     VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
2589     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2590 } VkPipelineStageFlagBits;
2591 typedef VkFlags VkPipelineStageFlags;
2592 
2593 typedef enum VkMemoryMapFlagBits {
2594     VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
2595     VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2596 } VkMemoryMapFlagBits;
2597 typedef VkFlags VkMemoryMapFlags;
2598 
2599 typedef enum VkSparseMemoryBindFlagBits {
2600     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2601     VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2602 } VkSparseMemoryBindFlagBits;
2603 typedef VkFlags VkSparseMemoryBindFlags;
2604 
2605 typedef enum VkSparseImageFormatFlagBits {
2606     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
2607     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
2608     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
2609     VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2610 } VkSparseImageFormatFlagBits;
2611 typedef VkFlags VkSparseImageFormatFlags;
2612 
2613 typedef enum VkFenceCreateFlagBits {
2614     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2615     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2616 } VkFenceCreateFlagBits;
2617 typedef VkFlags VkFenceCreateFlags;
2618 typedef VkFlags VkSemaphoreCreateFlags;
2619 
2620 typedef enum VkEventCreateFlagBits {
2621     VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
2622     VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
2623     VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2624 } VkEventCreateFlagBits;
2625 typedef VkFlags VkEventCreateFlags;
2626 
2627 typedef enum VkQueryPipelineStatisticFlagBits {
2628     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
2629     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
2630     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
2631     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
2632     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
2633     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
2634     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
2635     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
2636     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
2637     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
2638     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
2639     VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
2640     VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
2641     VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
2642     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2643 } VkQueryPipelineStatisticFlagBits;
2644 typedef VkFlags VkQueryPipelineStatisticFlags;
2645 typedef VkFlags VkQueryPoolCreateFlags;
2646 
2647 typedef enum VkQueryResultFlagBits {
2648     VK_QUERY_RESULT_64_BIT = 0x00000001,
2649     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
2650     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
2651     VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
2652     VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
2653     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2654 } VkQueryResultFlagBits;
2655 typedef VkFlags VkQueryResultFlags;
2656 
2657 typedef enum VkBufferCreateFlagBits {
2658     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2659     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2660     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2661     VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
2662     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
2663     VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
2664     VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
2665     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2666     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2667     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2668 } VkBufferCreateFlagBits;
2669 typedef VkFlags VkBufferCreateFlags;
2670 
2671 typedef enum VkBufferUsageFlagBits {
2672     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2673     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
2674     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
2675     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
2676     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
2677     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
2678     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
2679     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
2680     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
2681     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
2682     VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
2683     VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
2684     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2685     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
2686     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
2687 #ifdef VK_ENABLE_BETA_EXTENSIONS
2688     VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
2689 #endif
2690     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
2691     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
2692     VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
2693     VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
2694     VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
2695     VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
2696     VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
2697     VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
2698     VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
2699     VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
2700     VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
2701     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2702     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2703     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2704 } VkBufferUsageFlagBits;
2705 typedef VkFlags VkBufferUsageFlags;
2706 typedef VkFlags VkBufferViewCreateFlags;
2707 
2708 typedef enum VkImageViewCreateFlagBits {
2709     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
2710     VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
2711     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
2712     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2713 } VkImageViewCreateFlagBits;
2714 typedef VkFlags VkImageViewCreateFlags;
2715 typedef VkFlags VkShaderModuleCreateFlags;
2716 
2717 typedef enum VkPipelineCacheCreateFlagBits {
2718     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
2719     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
2720     VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2721 } VkPipelineCacheCreateFlagBits;
2722 typedef VkFlags VkPipelineCacheCreateFlags;
2723 
2724 typedef enum VkColorComponentFlagBits {
2725     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2726     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2727     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2728     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
2729     VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2730 } VkColorComponentFlagBits;
2731 typedef VkFlags VkColorComponentFlags;
2732 
2733 typedef enum VkPipelineCreateFlagBits {
2734     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2735     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2736     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
2737     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2738     VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
2739     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
2740     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
2741     VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT = 0x08000000,
2742     VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT = 0x40000000,
2743     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
2744     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
2745     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
2746     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
2747     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
2748     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
2749     VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
2750     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
2751     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
2752     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
2753     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
2754     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
2755     VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
2756     VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
2757     VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
2758     VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
2759     VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
2760     VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
2761     VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
2762     VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
2763     VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
2764 #ifdef VK_ENABLE_BETA_EXTENSIONS
2765     VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
2766 #endif
2767     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
2768     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
2769     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
2770   // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a deprecated alias
2771     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
2772   // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a deprecated alias
2773     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2774     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
2775     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
2776     VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT,
2777     VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT,
2778     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2779 } VkPipelineCreateFlagBits;
2780 typedef VkFlags VkPipelineCreateFlags;
2781 
2782 typedef enum VkPipelineShaderStageCreateFlagBits {
2783     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
2784     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
2785     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
2786     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
2787     VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2788 } VkPipelineShaderStageCreateFlagBits;
2789 typedef VkFlags VkPipelineShaderStageCreateFlags;
2790 
2791 typedef enum VkShaderStageFlagBits {
2792     VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
2793     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2794     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
2795     VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2796     VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2797     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
2798     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
2799     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2800     VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
2801     VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
2802     VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
2803     VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
2804     VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
2805     VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
2806     VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
2807     VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
2808     VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
2809     VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
2810     VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
2811     VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
2812     VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
2813     VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
2814     VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
2815     VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
2816     VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
2817     VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
2818     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2819 } VkShaderStageFlagBits;
2820 
2821 typedef enum VkCullModeFlagBits {
2822     VK_CULL_MODE_NONE = 0,
2823     VK_CULL_MODE_FRONT_BIT = 0x00000001,
2824     VK_CULL_MODE_BACK_BIT = 0x00000002,
2825     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2826     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2827 } VkCullModeFlagBits;
2828 typedef VkFlags VkCullModeFlags;
2829 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
2830 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
2831 typedef VkFlags VkPipelineTessellationStateCreateFlags;
2832 typedef VkFlags VkPipelineViewportStateCreateFlags;
2833 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
2834 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
2835 
2836 typedef enum VkPipelineDepthStencilStateCreateFlagBits {
2837     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
2838     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
2839     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,
2840     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,
2841     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2842 } VkPipelineDepthStencilStateCreateFlagBits;
2843 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
2844 
2845 typedef enum VkPipelineColorBlendStateCreateFlagBits {
2846     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
2847     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
2848     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2849 } VkPipelineColorBlendStateCreateFlagBits;
2850 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
2851 typedef VkFlags VkPipelineDynamicStateCreateFlags;
2852 
2853 typedef enum VkPipelineLayoutCreateFlagBits {
2854     VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
2855     VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2856 } VkPipelineLayoutCreateFlagBits;
2857 typedef VkFlags VkPipelineLayoutCreateFlags;
2858 typedef VkFlags VkShaderStageFlags;
2859 
2860 typedef enum VkSamplerCreateFlagBits {
2861     VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
2862     VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
2863     VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
2864     VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
2865     VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
2866     VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2867 } VkSamplerCreateFlagBits;
2868 typedef VkFlags VkSamplerCreateFlags;
2869 
2870 typedef enum VkDescriptorPoolCreateFlagBits {
2871     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
2872     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
2873     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
2874     VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
2875     VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
2876     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
2877     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
2878     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2879 } VkDescriptorPoolCreateFlagBits;
2880 typedef VkFlags VkDescriptorPoolCreateFlags;
2881 typedef VkFlags VkDescriptorPoolResetFlags;
2882 
2883 typedef enum VkDescriptorSetLayoutCreateFlagBits {
2884     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
2885     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT = 0x00000001,
2886     VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
2887     VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
2888     VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
2889     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
2890     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
2891     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT,
2892     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
2893     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
2894     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2895 } VkDescriptorSetLayoutCreateFlagBits;
2896 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
2897 
2898 typedef enum VkAttachmentDescriptionFlagBits {
2899     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
2900     VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2901 } VkAttachmentDescriptionFlagBits;
2902 typedef VkFlags VkAttachmentDescriptionFlags;
2903 
2904 typedef enum VkDependencyFlagBits {
2905     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
2906     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2907     VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
2908     VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
2909     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
2910     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
2911     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2912 } VkDependencyFlagBits;
2913 typedef VkFlags VkDependencyFlags;
2914 
2915 typedef enum VkFramebufferCreateFlagBits {
2916     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
2917     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
2918     VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2919 } VkFramebufferCreateFlagBits;
2920 typedef VkFlags VkFramebufferCreateFlags;
2921 
2922 typedef enum VkRenderPassCreateFlagBits {
2923     VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
2924     VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2925 } VkRenderPassCreateFlagBits;
2926 typedef VkFlags VkRenderPassCreateFlags;
2927 
2928 typedef enum VkSubpassDescriptionFlagBits {
2929     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2930     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
2931     VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
2932     VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
2933     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
2934     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
2935     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
2936     VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
2937     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
2938     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
2939     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
2940     VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2941 } VkSubpassDescriptionFlagBits;
2942 typedef VkFlags VkSubpassDescriptionFlags;
2943 
2944 typedef enum VkCommandPoolCreateFlagBits {
2945     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
2946     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
2947     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
2948     VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2949 } VkCommandPoolCreateFlagBits;
2950 typedef VkFlags VkCommandPoolCreateFlags;
2951 
2952 typedef enum VkCommandPoolResetFlagBits {
2953     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2954     VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2955 } VkCommandPoolResetFlagBits;
2956 typedef VkFlags VkCommandPoolResetFlags;
2957 
2958 typedef enum VkCommandBufferUsageFlagBits {
2959     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2960     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2961     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
2962     VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2963 } VkCommandBufferUsageFlagBits;
2964 typedef VkFlags VkCommandBufferUsageFlags;
2965 
2966 typedef enum VkQueryControlFlagBits {
2967     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
2968     VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2969 } VkQueryControlFlagBits;
2970 typedef VkFlags VkQueryControlFlags;
2971 
2972 typedef enum VkCommandBufferResetFlagBits {
2973     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2974     VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2975 } VkCommandBufferResetFlagBits;
2976 typedef VkFlags VkCommandBufferResetFlags;
2977 
2978 typedef enum VkStencilFaceFlagBits {
2979     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
2980     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
2981     VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
2982   // VK_STENCIL_FRONT_AND_BACK is a deprecated alias
2983     VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
2984     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2985 } VkStencilFaceFlagBits;
2986 typedef VkFlags VkStencilFaceFlags;
2987 typedef struct VkExtent2D {
2988     uint32_t    width;
2989     uint32_t    height;
2990 } VkExtent2D;
2991 
2992 typedef struct VkExtent3D {
2993     uint32_t    width;
2994     uint32_t    height;
2995     uint32_t    depth;
2996 } VkExtent3D;
2997 
2998 typedef struct VkOffset2D {
2999     int32_t    x;
3000     int32_t    y;
3001 } VkOffset2D;
3002 
3003 typedef struct VkOffset3D {
3004     int32_t    x;
3005     int32_t    y;
3006     int32_t    z;
3007 } VkOffset3D;
3008 
3009 typedef struct VkRect2D {
3010     VkOffset2D    offset;
3011     VkExtent2D    extent;
3012 } VkRect2D;
3013 
3014 typedef struct VkBaseInStructure {
3015     VkStructureType                    sType;
3016     const struct VkBaseInStructure*    pNext;
3017 } VkBaseInStructure;
3018 
3019 typedef struct VkBaseOutStructure {
3020     VkStructureType               sType;
3021     struct VkBaseOutStructure*    pNext;
3022 } VkBaseOutStructure;
3023 
3024 typedef struct VkBufferMemoryBarrier {
3025     VkStructureType    sType;
3026     const void*        pNext;
3027     VkAccessFlags      srcAccessMask;
3028     VkAccessFlags      dstAccessMask;
3029     uint32_t           srcQueueFamilyIndex;
3030     uint32_t           dstQueueFamilyIndex;
3031     VkBuffer           buffer;
3032     VkDeviceSize       offset;
3033     VkDeviceSize       size;
3034 } VkBufferMemoryBarrier;
3035 
3036 typedef struct VkDispatchIndirectCommand {
3037     uint32_t    x;
3038     uint32_t    y;
3039     uint32_t    z;
3040 } VkDispatchIndirectCommand;
3041 
3042 typedef struct VkDrawIndexedIndirectCommand {
3043     uint32_t    indexCount;
3044     uint32_t    instanceCount;
3045     uint32_t    firstIndex;
3046     int32_t     vertexOffset;
3047     uint32_t    firstInstance;
3048 } VkDrawIndexedIndirectCommand;
3049 
3050 typedef struct VkDrawIndirectCommand {
3051     uint32_t    vertexCount;
3052     uint32_t    instanceCount;
3053     uint32_t    firstVertex;
3054     uint32_t    firstInstance;
3055 } VkDrawIndirectCommand;
3056 
3057 typedef struct VkImageSubresourceRange {
3058     VkImageAspectFlags    aspectMask;
3059     uint32_t              baseMipLevel;
3060     uint32_t              levelCount;
3061     uint32_t              baseArrayLayer;
3062     uint32_t              layerCount;
3063 } VkImageSubresourceRange;
3064 
3065 typedef struct VkImageMemoryBarrier {
3066     VkStructureType            sType;
3067     const void*                pNext;
3068     VkAccessFlags              srcAccessMask;
3069     VkAccessFlags              dstAccessMask;
3070     VkImageLayout              oldLayout;
3071     VkImageLayout              newLayout;
3072     uint32_t                   srcQueueFamilyIndex;
3073     uint32_t                   dstQueueFamilyIndex;
3074     VkImage                    image;
3075     VkImageSubresourceRange    subresourceRange;
3076 } VkImageMemoryBarrier;
3077 
3078 typedef struct VkMemoryBarrier {
3079     VkStructureType    sType;
3080     const void*        pNext;
3081     VkAccessFlags      srcAccessMask;
3082     VkAccessFlags      dstAccessMask;
3083 } VkMemoryBarrier;
3084 
3085 typedef struct VkPipelineCacheHeaderVersionOne {
3086     uint32_t                        headerSize;
3087     VkPipelineCacheHeaderVersion    headerVersion;
3088     uint32_t                        vendorID;
3089     uint32_t                        deviceID;
3090     uint8_t                         pipelineCacheUUID[VK_UUID_SIZE];
3091 } VkPipelineCacheHeaderVersionOne;
3092 
3093 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
3094     void*                                       pUserData,
3095     size_t                                      size,
3096     size_t                                      alignment,
3097     VkSystemAllocationScope                     allocationScope);
3098 
3099 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
3100     void*                                       pUserData,
3101     void*                                       pMemory);
3102 
3103 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
3104     void*                                       pUserData,
3105     size_t                                      size,
3106     VkInternalAllocationType                    allocationType,
3107     VkSystemAllocationScope                     allocationScope);
3108 
3109 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
3110     void*                                       pUserData,
3111     size_t                                      size,
3112     VkInternalAllocationType                    allocationType,
3113     VkSystemAllocationScope                     allocationScope);
3114 
3115 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
3116     void*                                       pUserData,
3117     void*                                       pOriginal,
3118     size_t                                      size,
3119     size_t                                      alignment,
3120     VkSystemAllocationScope                     allocationScope);
3121 
3122 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
3123 typedef struct VkAllocationCallbacks {
3124     void*                                   pUserData;
3125     PFN_vkAllocationFunction                pfnAllocation;
3126     PFN_vkReallocationFunction              pfnReallocation;
3127     PFN_vkFreeFunction                      pfnFree;
3128     PFN_vkInternalAllocationNotification    pfnInternalAllocation;
3129     PFN_vkInternalFreeNotification          pfnInternalFree;
3130 } VkAllocationCallbacks;
3131 
3132 typedef struct VkApplicationInfo {
3133     VkStructureType    sType;
3134     const void*        pNext;
3135     const char*        pApplicationName;
3136     uint32_t           applicationVersion;
3137     const char*        pEngineName;
3138     uint32_t           engineVersion;
3139     uint32_t           apiVersion;
3140 } VkApplicationInfo;
3141 
3142 typedef struct VkFormatProperties {
3143     VkFormatFeatureFlags    linearTilingFeatures;
3144     VkFormatFeatureFlags    optimalTilingFeatures;
3145     VkFormatFeatureFlags    bufferFeatures;
3146 } VkFormatProperties;
3147 
3148 typedef struct VkImageFormatProperties {
3149     VkExtent3D            maxExtent;
3150     uint32_t              maxMipLevels;
3151     uint32_t              maxArrayLayers;
3152     VkSampleCountFlags    sampleCounts;
3153     VkDeviceSize          maxResourceSize;
3154 } VkImageFormatProperties;
3155 
3156 typedef struct VkInstanceCreateInfo {
3157     VkStructureType             sType;
3158     const void*                 pNext;
3159     VkInstanceCreateFlags       flags;
3160     const VkApplicationInfo*    pApplicationInfo;
3161     uint32_t                    enabledLayerCount;
3162     const char* const*          ppEnabledLayerNames;
3163     uint32_t                    enabledExtensionCount;
3164     const char* const*          ppEnabledExtensionNames;
3165 } VkInstanceCreateInfo;
3166 
3167 typedef struct VkMemoryHeap {
3168     VkDeviceSize         size;
3169     VkMemoryHeapFlags    flags;
3170 } VkMemoryHeap;
3171 
3172 typedef struct VkMemoryType {
3173     VkMemoryPropertyFlags    propertyFlags;
3174     uint32_t                 heapIndex;
3175 } VkMemoryType;
3176 
3177 typedef struct VkPhysicalDeviceFeatures {
3178     VkBool32    robustBufferAccess;
3179     VkBool32    fullDrawIndexUint32;
3180     VkBool32    imageCubeArray;
3181     VkBool32    independentBlend;
3182     VkBool32    geometryShader;
3183     VkBool32    tessellationShader;
3184     VkBool32    sampleRateShading;
3185     VkBool32    dualSrcBlend;
3186     VkBool32    logicOp;
3187     VkBool32    multiDrawIndirect;
3188     VkBool32    drawIndirectFirstInstance;
3189     VkBool32    depthClamp;
3190     VkBool32    depthBiasClamp;
3191     VkBool32    fillModeNonSolid;
3192     VkBool32    depthBounds;
3193     VkBool32    wideLines;
3194     VkBool32    largePoints;
3195     VkBool32    alphaToOne;
3196     VkBool32    multiViewport;
3197     VkBool32    samplerAnisotropy;
3198     VkBool32    textureCompressionETC2;
3199     VkBool32    textureCompressionASTC_LDR;
3200     VkBool32    textureCompressionBC;
3201     VkBool32    occlusionQueryPrecise;
3202     VkBool32    pipelineStatisticsQuery;
3203     VkBool32    vertexPipelineStoresAndAtomics;
3204     VkBool32    fragmentStoresAndAtomics;
3205     VkBool32    shaderTessellationAndGeometryPointSize;
3206     VkBool32    shaderImageGatherExtended;
3207     VkBool32    shaderStorageImageExtendedFormats;
3208     VkBool32    shaderStorageImageMultisample;
3209     VkBool32    shaderStorageImageReadWithoutFormat;
3210     VkBool32    shaderStorageImageWriteWithoutFormat;
3211     VkBool32    shaderUniformBufferArrayDynamicIndexing;
3212     VkBool32    shaderSampledImageArrayDynamicIndexing;
3213     VkBool32    shaderStorageBufferArrayDynamicIndexing;
3214     VkBool32    shaderStorageImageArrayDynamicIndexing;
3215     VkBool32    shaderClipDistance;
3216     VkBool32    shaderCullDistance;
3217     VkBool32    shaderFloat64;
3218     VkBool32    shaderInt64;
3219     VkBool32    shaderInt16;
3220     VkBool32    shaderResourceResidency;
3221     VkBool32    shaderResourceMinLod;
3222     VkBool32    sparseBinding;
3223     VkBool32    sparseResidencyBuffer;
3224     VkBool32    sparseResidencyImage2D;
3225     VkBool32    sparseResidencyImage3D;
3226     VkBool32    sparseResidency2Samples;
3227     VkBool32    sparseResidency4Samples;
3228     VkBool32    sparseResidency8Samples;
3229     VkBool32    sparseResidency16Samples;
3230     VkBool32    sparseResidencyAliased;
3231     VkBool32    variableMultisampleRate;
3232     VkBool32    inheritedQueries;
3233 } VkPhysicalDeviceFeatures;
3234 
3235 typedef struct VkPhysicalDeviceLimits {
3236     uint32_t              maxImageDimension1D;
3237     uint32_t              maxImageDimension2D;
3238     uint32_t              maxImageDimension3D;
3239     uint32_t              maxImageDimensionCube;
3240     uint32_t              maxImageArrayLayers;
3241     uint32_t              maxTexelBufferElements;
3242     uint32_t              maxUniformBufferRange;
3243     uint32_t              maxStorageBufferRange;
3244     uint32_t              maxPushConstantsSize;
3245     uint32_t              maxMemoryAllocationCount;
3246     uint32_t              maxSamplerAllocationCount;
3247     VkDeviceSize          bufferImageGranularity;
3248     VkDeviceSize          sparseAddressSpaceSize;
3249     uint32_t              maxBoundDescriptorSets;
3250     uint32_t              maxPerStageDescriptorSamplers;
3251     uint32_t              maxPerStageDescriptorUniformBuffers;
3252     uint32_t              maxPerStageDescriptorStorageBuffers;
3253     uint32_t              maxPerStageDescriptorSampledImages;
3254     uint32_t              maxPerStageDescriptorStorageImages;
3255     uint32_t              maxPerStageDescriptorInputAttachments;
3256     uint32_t              maxPerStageResources;
3257     uint32_t              maxDescriptorSetSamplers;
3258     uint32_t              maxDescriptorSetUniformBuffers;
3259     uint32_t              maxDescriptorSetUniformBuffersDynamic;
3260     uint32_t              maxDescriptorSetStorageBuffers;
3261     uint32_t              maxDescriptorSetStorageBuffersDynamic;
3262     uint32_t              maxDescriptorSetSampledImages;
3263     uint32_t              maxDescriptorSetStorageImages;
3264     uint32_t              maxDescriptorSetInputAttachments;
3265     uint32_t              maxVertexInputAttributes;
3266     uint32_t              maxVertexInputBindings;
3267     uint32_t              maxVertexInputAttributeOffset;
3268     uint32_t              maxVertexInputBindingStride;
3269     uint32_t              maxVertexOutputComponents;
3270     uint32_t              maxTessellationGenerationLevel;
3271     uint32_t              maxTessellationPatchSize;
3272     uint32_t              maxTessellationControlPerVertexInputComponents;
3273     uint32_t              maxTessellationControlPerVertexOutputComponents;
3274     uint32_t              maxTessellationControlPerPatchOutputComponents;
3275     uint32_t              maxTessellationControlTotalOutputComponents;
3276     uint32_t              maxTessellationEvaluationInputComponents;
3277     uint32_t              maxTessellationEvaluationOutputComponents;
3278     uint32_t              maxGeometryShaderInvocations;
3279     uint32_t              maxGeometryInputComponents;
3280     uint32_t              maxGeometryOutputComponents;
3281     uint32_t              maxGeometryOutputVertices;
3282     uint32_t              maxGeometryTotalOutputComponents;
3283     uint32_t              maxFragmentInputComponents;
3284     uint32_t              maxFragmentOutputAttachments;
3285     uint32_t              maxFragmentDualSrcAttachments;
3286     uint32_t              maxFragmentCombinedOutputResources;
3287     uint32_t              maxComputeSharedMemorySize;
3288     uint32_t              maxComputeWorkGroupCount[3];
3289     uint32_t              maxComputeWorkGroupInvocations;
3290     uint32_t              maxComputeWorkGroupSize[3];
3291     uint32_t              subPixelPrecisionBits;
3292     uint32_t              subTexelPrecisionBits;
3293     uint32_t              mipmapPrecisionBits;
3294     uint32_t              maxDrawIndexedIndexValue;
3295     uint32_t              maxDrawIndirectCount;
3296     float                 maxSamplerLodBias;
3297     float                 maxSamplerAnisotropy;
3298     uint32_t              maxViewports;
3299     uint32_t              maxViewportDimensions[2];
3300     float                 viewportBoundsRange[2];
3301     uint32_t              viewportSubPixelBits;
3302     size_t                minMemoryMapAlignment;
3303     VkDeviceSize          minTexelBufferOffsetAlignment;
3304     VkDeviceSize          minUniformBufferOffsetAlignment;
3305     VkDeviceSize          minStorageBufferOffsetAlignment;
3306     int32_t               minTexelOffset;
3307     uint32_t              maxTexelOffset;
3308     int32_t               minTexelGatherOffset;
3309     uint32_t              maxTexelGatherOffset;
3310     float                 minInterpolationOffset;
3311     float                 maxInterpolationOffset;
3312     uint32_t              subPixelInterpolationOffsetBits;
3313     uint32_t              maxFramebufferWidth;
3314     uint32_t              maxFramebufferHeight;
3315     uint32_t              maxFramebufferLayers;
3316     VkSampleCountFlags    framebufferColorSampleCounts;
3317     VkSampleCountFlags    framebufferDepthSampleCounts;
3318     VkSampleCountFlags    framebufferStencilSampleCounts;
3319     VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
3320     uint32_t              maxColorAttachments;
3321     VkSampleCountFlags    sampledImageColorSampleCounts;
3322     VkSampleCountFlags    sampledImageIntegerSampleCounts;
3323     VkSampleCountFlags    sampledImageDepthSampleCounts;
3324     VkSampleCountFlags    sampledImageStencilSampleCounts;
3325     VkSampleCountFlags    storageImageSampleCounts;
3326     uint32_t              maxSampleMaskWords;
3327     VkBool32              timestampComputeAndGraphics;
3328     float                 timestampPeriod;
3329     uint32_t              maxClipDistances;
3330     uint32_t              maxCullDistances;
3331     uint32_t              maxCombinedClipAndCullDistances;
3332     uint32_t              discreteQueuePriorities;
3333     float                 pointSizeRange[2];
3334     float                 lineWidthRange[2];
3335     float                 pointSizeGranularity;
3336     float                 lineWidthGranularity;
3337     VkBool32              strictLines;
3338     VkBool32              standardSampleLocations;
3339     VkDeviceSize          optimalBufferCopyOffsetAlignment;
3340     VkDeviceSize          optimalBufferCopyRowPitchAlignment;
3341     VkDeviceSize          nonCoherentAtomSize;
3342 } VkPhysicalDeviceLimits;
3343 
3344 typedef struct VkPhysicalDeviceMemoryProperties {
3345     uint32_t        memoryTypeCount;
3346     VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
3347     uint32_t        memoryHeapCount;
3348     VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
3349 } VkPhysicalDeviceMemoryProperties;
3350 
3351 typedef struct VkPhysicalDeviceSparseProperties {
3352     VkBool32    residencyStandard2DBlockShape;
3353     VkBool32    residencyStandard2DMultisampleBlockShape;
3354     VkBool32    residencyStandard3DBlockShape;
3355     VkBool32    residencyAlignedMipSize;
3356     VkBool32    residencyNonResidentStrict;
3357 } VkPhysicalDeviceSparseProperties;
3358 
3359 typedef struct VkPhysicalDeviceProperties {
3360     uint32_t                            apiVersion;
3361     uint32_t                            driverVersion;
3362     uint32_t                            vendorID;
3363     uint32_t                            deviceID;
3364     VkPhysicalDeviceType                deviceType;
3365     char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3366     uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
3367     VkPhysicalDeviceLimits              limits;
3368     VkPhysicalDeviceSparseProperties    sparseProperties;
3369 } VkPhysicalDeviceProperties;
3370 
3371 typedef struct VkQueueFamilyProperties {
3372     VkQueueFlags    queueFlags;
3373     uint32_t        queueCount;
3374     uint32_t        timestampValidBits;
3375     VkExtent3D      minImageTransferGranularity;
3376 } VkQueueFamilyProperties;
3377 
3378 typedef struct VkDeviceQueueCreateInfo {
3379     VkStructureType             sType;
3380     const void*                 pNext;
3381     VkDeviceQueueCreateFlags    flags;
3382     uint32_t                    queueFamilyIndex;
3383     uint32_t                    queueCount;
3384     const float*                pQueuePriorities;
3385 } VkDeviceQueueCreateInfo;
3386 
3387 typedef struct VkDeviceCreateInfo {
3388     VkStructureType                    sType;
3389     const void*                        pNext;
3390     VkDeviceCreateFlags                flags;
3391     uint32_t                           queueCreateInfoCount;
3392     const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
3393     // enabledLayerCount is deprecated and should not be used
3394     uint32_t                           enabledLayerCount;
3395     // ppEnabledLayerNames is deprecated and should not be used
3396     const char* const*                 ppEnabledLayerNames;
3397     uint32_t                           enabledExtensionCount;
3398     const char* const*                 ppEnabledExtensionNames;
3399     const VkPhysicalDeviceFeatures*    pEnabledFeatures;
3400 } VkDeviceCreateInfo;
3401 
3402 typedef struct VkExtensionProperties {
3403     char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
3404     uint32_t    specVersion;
3405 } VkExtensionProperties;
3406 
3407 typedef struct VkLayerProperties {
3408     char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
3409     uint32_t    specVersion;
3410     uint32_t    implementationVersion;
3411     char        description[VK_MAX_DESCRIPTION_SIZE];
3412 } VkLayerProperties;
3413 
3414 typedef struct VkSubmitInfo {
3415     VkStructureType                sType;
3416     const void*                    pNext;
3417     uint32_t                       waitSemaphoreCount;
3418     const VkSemaphore*             pWaitSemaphores;
3419     const VkPipelineStageFlags*    pWaitDstStageMask;
3420     uint32_t                       commandBufferCount;
3421     const VkCommandBuffer*         pCommandBuffers;
3422     uint32_t                       signalSemaphoreCount;
3423     const VkSemaphore*             pSignalSemaphores;
3424 } VkSubmitInfo;
3425 
3426 typedef struct VkMappedMemoryRange {
3427     VkStructureType    sType;
3428     const void*        pNext;
3429     VkDeviceMemory     memory;
3430     VkDeviceSize       offset;
3431     VkDeviceSize       size;
3432 } VkMappedMemoryRange;
3433 
3434 typedef struct VkMemoryAllocateInfo {
3435     VkStructureType    sType;
3436     const void*        pNext;
3437     VkDeviceSize       allocationSize;
3438     uint32_t           memoryTypeIndex;
3439 } VkMemoryAllocateInfo;
3440 
3441 typedef struct VkMemoryRequirements {
3442     VkDeviceSize    size;
3443     VkDeviceSize    alignment;
3444     uint32_t        memoryTypeBits;
3445 } VkMemoryRequirements;
3446 
3447 typedef struct VkSparseMemoryBind {
3448     VkDeviceSize               resourceOffset;
3449     VkDeviceSize               size;
3450     VkDeviceMemory             memory;
3451     VkDeviceSize               memoryOffset;
3452     VkSparseMemoryBindFlags    flags;
3453 } VkSparseMemoryBind;
3454 
3455 typedef struct VkSparseBufferMemoryBindInfo {
3456     VkBuffer                     buffer;
3457     uint32_t                     bindCount;
3458     const VkSparseMemoryBind*    pBinds;
3459 } VkSparseBufferMemoryBindInfo;
3460 
3461 typedef struct VkSparseImageOpaqueMemoryBindInfo {
3462     VkImage                      image;
3463     uint32_t                     bindCount;
3464     const VkSparseMemoryBind*    pBinds;
3465 } VkSparseImageOpaqueMemoryBindInfo;
3466 
3467 typedef struct VkImageSubresource {
3468     VkImageAspectFlags    aspectMask;
3469     uint32_t              mipLevel;
3470     uint32_t              arrayLayer;
3471 } VkImageSubresource;
3472 
3473 typedef struct VkSparseImageMemoryBind {
3474     VkImageSubresource         subresource;
3475     VkOffset3D                 offset;
3476     VkExtent3D                 extent;
3477     VkDeviceMemory             memory;
3478     VkDeviceSize               memoryOffset;
3479     VkSparseMemoryBindFlags    flags;
3480 } VkSparseImageMemoryBind;
3481 
3482 typedef struct VkSparseImageMemoryBindInfo {
3483     VkImage                           image;
3484     uint32_t                          bindCount;
3485     const VkSparseImageMemoryBind*    pBinds;
3486 } VkSparseImageMemoryBindInfo;
3487 
3488 typedef struct VkBindSparseInfo {
3489     VkStructureType                             sType;
3490     const void*                                 pNext;
3491     uint32_t                                    waitSemaphoreCount;
3492     const VkSemaphore*                          pWaitSemaphores;
3493     uint32_t                                    bufferBindCount;
3494     const VkSparseBufferMemoryBindInfo*         pBufferBinds;
3495     uint32_t                                    imageOpaqueBindCount;
3496     const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
3497     uint32_t                                    imageBindCount;
3498     const VkSparseImageMemoryBindInfo*          pImageBinds;
3499     uint32_t                                    signalSemaphoreCount;
3500     const VkSemaphore*                          pSignalSemaphores;
3501 } VkBindSparseInfo;
3502 
3503 typedef struct VkSparseImageFormatProperties {
3504     VkImageAspectFlags          aspectMask;
3505     VkExtent3D                  imageGranularity;
3506     VkSparseImageFormatFlags    flags;
3507 } VkSparseImageFormatProperties;
3508 
3509 typedef struct VkSparseImageMemoryRequirements {
3510     VkSparseImageFormatProperties    formatProperties;
3511     uint32_t                         imageMipTailFirstLod;
3512     VkDeviceSize                     imageMipTailSize;
3513     VkDeviceSize                     imageMipTailOffset;
3514     VkDeviceSize                     imageMipTailStride;
3515 } VkSparseImageMemoryRequirements;
3516 
3517 typedef struct VkFenceCreateInfo {
3518     VkStructureType       sType;
3519     const void*           pNext;
3520     VkFenceCreateFlags    flags;
3521 } VkFenceCreateInfo;
3522 
3523 typedef struct VkSemaphoreCreateInfo {
3524     VkStructureType           sType;
3525     const void*               pNext;
3526     VkSemaphoreCreateFlags    flags;
3527 } VkSemaphoreCreateInfo;
3528 
3529 typedef struct VkEventCreateInfo {
3530     VkStructureType       sType;
3531     const void*           pNext;
3532     VkEventCreateFlags    flags;
3533 } VkEventCreateInfo;
3534 
3535 typedef struct VkQueryPoolCreateInfo {
3536     VkStructureType                  sType;
3537     const void*                      pNext;
3538     VkQueryPoolCreateFlags           flags;
3539     VkQueryType                      queryType;
3540     uint32_t                         queryCount;
3541     VkQueryPipelineStatisticFlags    pipelineStatistics;
3542 } VkQueryPoolCreateInfo;
3543 
3544 typedef struct VkBufferCreateInfo {
3545     VkStructureType        sType;
3546     const void*            pNext;
3547     VkBufferCreateFlags    flags;
3548     VkDeviceSize           size;
3549     VkBufferUsageFlags     usage;
3550     VkSharingMode          sharingMode;
3551     uint32_t               queueFamilyIndexCount;
3552     const uint32_t*        pQueueFamilyIndices;
3553 } VkBufferCreateInfo;
3554 
3555 typedef struct VkBufferViewCreateInfo {
3556     VkStructureType            sType;
3557     const void*                pNext;
3558     VkBufferViewCreateFlags    flags;
3559     VkBuffer                   buffer;
3560     VkFormat                   format;
3561     VkDeviceSize               offset;
3562     VkDeviceSize               range;
3563 } VkBufferViewCreateInfo;
3564 
3565 typedef struct VkImageCreateInfo {
3566     VkStructureType          sType;
3567     const void*              pNext;
3568     VkImageCreateFlags       flags;
3569     VkImageType              imageType;
3570     VkFormat                 format;
3571     VkExtent3D               extent;
3572     uint32_t                 mipLevels;
3573     uint32_t                 arrayLayers;
3574     VkSampleCountFlagBits    samples;
3575     VkImageTiling            tiling;
3576     VkImageUsageFlags        usage;
3577     VkSharingMode            sharingMode;
3578     uint32_t                 queueFamilyIndexCount;
3579     const uint32_t*          pQueueFamilyIndices;
3580     VkImageLayout            initialLayout;
3581 } VkImageCreateInfo;
3582 
3583 typedef struct VkSubresourceLayout {
3584     VkDeviceSize    offset;
3585     VkDeviceSize    size;
3586     VkDeviceSize    rowPitch;
3587     VkDeviceSize    arrayPitch;
3588     VkDeviceSize    depthPitch;
3589 } VkSubresourceLayout;
3590 
3591 typedef struct VkComponentMapping {
3592     VkComponentSwizzle    r;
3593     VkComponentSwizzle    g;
3594     VkComponentSwizzle    b;
3595     VkComponentSwizzle    a;
3596 } VkComponentMapping;
3597 
3598 typedef struct VkImageViewCreateInfo {
3599     VkStructureType            sType;
3600     const void*                pNext;
3601     VkImageViewCreateFlags     flags;
3602     VkImage                    image;
3603     VkImageViewType            viewType;
3604     VkFormat                   format;
3605     VkComponentMapping         components;
3606     VkImageSubresourceRange    subresourceRange;
3607 } VkImageViewCreateInfo;
3608 
3609 typedef struct VkShaderModuleCreateInfo {
3610     VkStructureType              sType;
3611     const void*                  pNext;
3612     VkShaderModuleCreateFlags    flags;
3613     size_t                       codeSize;
3614     const uint32_t*              pCode;
3615 } VkShaderModuleCreateInfo;
3616 
3617 typedef struct VkPipelineCacheCreateInfo {
3618     VkStructureType               sType;
3619     const void*                   pNext;
3620     VkPipelineCacheCreateFlags    flags;
3621     size_t                        initialDataSize;
3622     const void*                   pInitialData;
3623 } VkPipelineCacheCreateInfo;
3624 
3625 typedef struct VkSpecializationMapEntry {
3626     uint32_t    constantID;
3627     uint32_t    offset;
3628     size_t      size;
3629 } VkSpecializationMapEntry;
3630 
3631 typedef struct VkSpecializationInfo {
3632     uint32_t                           mapEntryCount;
3633     const VkSpecializationMapEntry*    pMapEntries;
3634     size_t                             dataSize;
3635     const void*                        pData;
3636 } VkSpecializationInfo;
3637 
3638 typedef struct VkPipelineShaderStageCreateInfo {
3639     VkStructureType                     sType;
3640     const void*                         pNext;
3641     VkPipelineShaderStageCreateFlags    flags;
3642     VkShaderStageFlagBits               stage;
3643     VkShaderModule                      module;
3644     const char*                         pName;
3645     const VkSpecializationInfo*         pSpecializationInfo;
3646 } VkPipelineShaderStageCreateInfo;
3647 
3648 typedef struct VkComputePipelineCreateInfo {
3649     VkStructureType                    sType;
3650     const void*                        pNext;
3651     VkPipelineCreateFlags              flags;
3652     VkPipelineShaderStageCreateInfo    stage;
3653     VkPipelineLayout                   layout;
3654     VkPipeline                         basePipelineHandle;
3655     int32_t                            basePipelineIndex;
3656 } VkComputePipelineCreateInfo;
3657 
3658 typedef struct VkVertexInputBindingDescription {
3659     uint32_t             binding;
3660     uint32_t             stride;
3661     VkVertexInputRate    inputRate;
3662 } VkVertexInputBindingDescription;
3663 
3664 typedef struct VkVertexInputAttributeDescription {
3665     uint32_t    location;
3666     uint32_t    binding;
3667     VkFormat    format;
3668     uint32_t    offset;
3669 } VkVertexInputAttributeDescription;
3670 
3671 typedef struct VkPipelineVertexInputStateCreateInfo {
3672     VkStructureType                             sType;
3673     const void*                                 pNext;
3674     VkPipelineVertexInputStateCreateFlags       flags;
3675     uint32_t                                    vertexBindingDescriptionCount;
3676     const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
3677     uint32_t                                    vertexAttributeDescriptionCount;
3678     const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
3679 } VkPipelineVertexInputStateCreateInfo;
3680 
3681 typedef struct VkPipelineInputAssemblyStateCreateInfo {
3682     VkStructureType                            sType;
3683     const void*                                pNext;
3684     VkPipelineInputAssemblyStateCreateFlags    flags;
3685     VkPrimitiveTopology                        topology;
3686     VkBool32                                   primitiveRestartEnable;
3687 } VkPipelineInputAssemblyStateCreateInfo;
3688 
3689 typedef struct VkPipelineTessellationStateCreateInfo {
3690     VkStructureType                           sType;
3691     const void*                               pNext;
3692     VkPipelineTessellationStateCreateFlags    flags;
3693     uint32_t                                  patchControlPoints;
3694 } VkPipelineTessellationStateCreateInfo;
3695 
3696 typedef struct VkViewport {
3697     float    x;
3698     float    y;
3699     float    width;
3700     float    height;
3701     float    minDepth;
3702     float    maxDepth;
3703 } VkViewport;
3704 
3705 typedef struct VkPipelineViewportStateCreateInfo {
3706     VkStructureType                       sType;
3707     const void*                           pNext;
3708     VkPipelineViewportStateCreateFlags    flags;
3709     uint32_t                              viewportCount;
3710     const VkViewport*                     pViewports;
3711     uint32_t                              scissorCount;
3712     const VkRect2D*                       pScissors;
3713 } VkPipelineViewportStateCreateInfo;
3714 
3715 typedef struct VkPipelineRasterizationStateCreateInfo {
3716     VkStructureType                            sType;
3717     const void*                                pNext;
3718     VkPipelineRasterizationStateCreateFlags    flags;
3719     VkBool32                                   depthClampEnable;
3720     VkBool32                                   rasterizerDiscardEnable;
3721     VkPolygonMode                              polygonMode;
3722     VkCullModeFlags                            cullMode;
3723     VkFrontFace                                frontFace;
3724     VkBool32                                   depthBiasEnable;
3725     float                                      depthBiasConstantFactor;
3726     float                                      depthBiasClamp;
3727     float                                      depthBiasSlopeFactor;
3728     float                                      lineWidth;
3729 } VkPipelineRasterizationStateCreateInfo;
3730 
3731 typedef struct VkPipelineMultisampleStateCreateInfo {
3732     VkStructureType                          sType;
3733     const void*                              pNext;
3734     VkPipelineMultisampleStateCreateFlags    flags;
3735     VkSampleCountFlagBits                    rasterizationSamples;
3736     VkBool32                                 sampleShadingEnable;
3737     float                                    minSampleShading;
3738     const VkSampleMask*                      pSampleMask;
3739     VkBool32                                 alphaToCoverageEnable;
3740     VkBool32                                 alphaToOneEnable;
3741 } VkPipelineMultisampleStateCreateInfo;
3742 
3743 typedef struct VkStencilOpState {
3744     VkStencilOp    failOp;
3745     VkStencilOp    passOp;
3746     VkStencilOp    depthFailOp;
3747     VkCompareOp    compareOp;
3748     uint32_t       compareMask;
3749     uint32_t       writeMask;
3750     uint32_t       reference;
3751 } VkStencilOpState;
3752 
3753 typedef struct VkPipelineDepthStencilStateCreateInfo {
3754     VkStructureType                           sType;
3755     const void*                               pNext;
3756     VkPipelineDepthStencilStateCreateFlags    flags;
3757     VkBool32                                  depthTestEnable;
3758     VkBool32                                  depthWriteEnable;
3759     VkCompareOp                               depthCompareOp;
3760     VkBool32                                  depthBoundsTestEnable;
3761     VkBool32                                  stencilTestEnable;
3762     VkStencilOpState                          front;
3763     VkStencilOpState                          back;
3764     float                                     minDepthBounds;
3765     float                                     maxDepthBounds;
3766 } VkPipelineDepthStencilStateCreateInfo;
3767 
3768 typedef struct VkPipelineColorBlendAttachmentState {
3769     VkBool32                 blendEnable;
3770     VkBlendFactor            srcColorBlendFactor;
3771     VkBlendFactor            dstColorBlendFactor;
3772     VkBlendOp                colorBlendOp;
3773     VkBlendFactor            srcAlphaBlendFactor;
3774     VkBlendFactor            dstAlphaBlendFactor;
3775     VkBlendOp                alphaBlendOp;
3776     VkColorComponentFlags    colorWriteMask;
3777 } VkPipelineColorBlendAttachmentState;
3778 
3779 typedef struct VkPipelineColorBlendStateCreateInfo {
3780     VkStructureType                               sType;
3781     const void*                                   pNext;
3782     VkPipelineColorBlendStateCreateFlags          flags;
3783     VkBool32                                      logicOpEnable;
3784     VkLogicOp                                     logicOp;
3785     uint32_t                                      attachmentCount;
3786     const VkPipelineColorBlendAttachmentState*    pAttachments;
3787     float                                         blendConstants[4];
3788 } VkPipelineColorBlendStateCreateInfo;
3789 
3790 typedef struct VkPipelineDynamicStateCreateInfo {
3791     VkStructureType                      sType;
3792     const void*                          pNext;
3793     VkPipelineDynamicStateCreateFlags    flags;
3794     uint32_t                             dynamicStateCount;
3795     const VkDynamicState*                pDynamicStates;
3796 } VkPipelineDynamicStateCreateInfo;
3797 
3798 typedef struct VkGraphicsPipelineCreateInfo {
3799     VkStructureType                                  sType;
3800     const void*                                      pNext;
3801     VkPipelineCreateFlags                            flags;
3802     uint32_t                                         stageCount;
3803     const VkPipelineShaderStageCreateInfo*           pStages;
3804     const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
3805     const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
3806     const VkPipelineTessellationStateCreateInfo*     pTessellationState;
3807     const VkPipelineViewportStateCreateInfo*         pViewportState;
3808     const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
3809     const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
3810     const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
3811     const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
3812     const VkPipelineDynamicStateCreateInfo*          pDynamicState;
3813     VkPipelineLayout                                 layout;
3814     VkRenderPass                                     renderPass;
3815     uint32_t                                         subpass;
3816     VkPipeline                                       basePipelineHandle;
3817     int32_t                                          basePipelineIndex;
3818 } VkGraphicsPipelineCreateInfo;
3819 
3820 typedef struct VkPushConstantRange {
3821     VkShaderStageFlags    stageFlags;
3822     uint32_t              offset;
3823     uint32_t              size;
3824 } VkPushConstantRange;
3825 
3826 typedef struct VkPipelineLayoutCreateInfo {
3827     VkStructureType                 sType;
3828     const void*                     pNext;
3829     VkPipelineLayoutCreateFlags     flags;
3830     uint32_t                        setLayoutCount;
3831     const VkDescriptorSetLayout*    pSetLayouts;
3832     uint32_t                        pushConstantRangeCount;
3833     const VkPushConstantRange*      pPushConstantRanges;
3834 } VkPipelineLayoutCreateInfo;
3835 
3836 typedef struct VkSamplerCreateInfo {
3837     VkStructureType         sType;
3838     const void*             pNext;
3839     VkSamplerCreateFlags    flags;
3840     VkFilter                magFilter;
3841     VkFilter                minFilter;
3842     VkSamplerMipmapMode     mipmapMode;
3843     VkSamplerAddressMode    addressModeU;
3844     VkSamplerAddressMode    addressModeV;
3845     VkSamplerAddressMode    addressModeW;
3846     float                   mipLodBias;
3847     VkBool32                anisotropyEnable;
3848     float                   maxAnisotropy;
3849     VkBool32                compareEnable;
3850     VkCompareOp             compareOp;
3851     float                   minLod;
3852     float                   maxLod;
3853     VkBorderColor           borderColor;
3854     VkBool32                unnormalizedCoordinates;
3855 } VkSamplerCreateInfo;
3856 
3857 typedef struct VkCopyDescriptorSet {
3858     VkStructureType    sType;
3859     const void*        pNext;
3860     VkDescriptorSet    srcSet;
3861     uint32_t           srcBinding;
3862     uint32_t           srcArrayElement;
3863     VkDescriptorSet    dstSet;
3864     uint32_t           dstBinding;
3865     uint32_t           dstArrayElement;
3866     uint32_t           descriptorCount;
3867 } VkCopyDescriptorSet;
3868 
3869 typedef struct VkDescriptorBufferInfo {
3870     VkBuffer        buffer;
3871     VkDeviceSize    offset;
3872     VkDeviceSize    range;
3873 } VkDescriptorBufferInfo;
3874 
3875 typedef struct VkDescriptorImageInfo {
3876     VkSampler        sampler;
3877     VkImageView      imageView;
3878     VkImageLayout    imageLayout;
3879 } VkDescriptorImageInfo;
3880 
3881 typedef struct VkDescriptorPoolSize {
3882     VkDescriptorType    type;
3883     uint32_t            descriptorCount;
3884 } VkDescriptorPoolSize;
3885 
3886 typedef struct VkDescriptorPoolCreateInfo {
3887     VkStructureType                sType;
3888     const void*                    pNext;
3889     VkDescriptorPoolCreateFlags    flags;
3890     uint32_t                       maxSets;
3891     uint32_t                       poolSizeCount;
3892     const VkDescriptorPoolSize*    pPoolSizes;
3893 } VkDescriptorPoolCreateInfo;
3894 
3895 typedef struct VkDescriptorSetAllocateInfo {
3896     VkStructureType                 sType;
3897     const void*                     pNext;
3898     VkDescriptorPool                descriptorPool;
3899     uint32_t                        descriptorSetCount;
3900     const VkDescriptorSetLayout*    pSetLayouts;
3901 } VkDescriptorSetAllocateInfo;
3902 
3903 typedef struct VkDescriptorSetLayoutBinding {
3904     uint32_t              binding;
3905     VkDescriptorType      descriptorType;
3906     uint32_t              descriptorCount;
3907     VkShaderStageFlags    stageFlags;
3908     const VkSampler*      pImmutableSamplers;
3909 } VkDescriptorSetLayoutBinding;
3910 
3911 typedef struct VkDescriptorSetLayoutCreateInfo {
3912     VkStructureType                        sType;
3913     const void*                            pNext;
3914     VkDescriptorSetLayoutCreateFlags       flags;
3915     uint32_t                               bindingCount;
3916     const VkDescriptorSetLayoutBinding*    pBindings;
3917 } VkDescriptorSetLayoutCreateInfo;
3918 
3919 typedef struct VkWriteDescriptorSet {
3920     VkStructureType                  sType;
3921     const void*                      pNext;
3922     VkDescriptorSet                  dstSet;
3923     uint32_t                         dstBinding;
3924     uint32_t                         dstArrayElement;
3925     uint32_t                         descriptorCount;
3926     VkDescriptorType                 descriptorType;
3927     const VkDescriptorImageInfo*     pImageInfo;
3928     const VkDescriptorBufferInfo*    pBufferInfo;
3929     const VkBufferView*              pTexelBufferView;
3930 } VkWriteDescriptorSet;
3931 
3932 typedef struct VkAttachmentDescription {
3933     VkAttachmentDescriptionFlags    flags;
3934     VkFormat                        format;
3935     VkSampleCountFlagBits           samples;
3936     VkAttachmentLoadOp              loadOp;
3937     VkAttachmentStoreOp             storeOp;
3938     VkAttachmentLoadOp              stencilLoadOp;
3939     VkAttachmentStoreOp             stencilStoreOp;
3940     VkImageLayout                   initialLayout;
3941     VkImageLayout                   finalLayout;
3942 } VkAttachmentDescription;
3943 
3944 typedef struct VkAttachmentReference {
3945     uint32_t         attachment;
3946     VkImageLayout    layout;
3947 } VkAttachmentReference;
3948 
3949 typedef struct VkFramebufferCreateInfo {
3950     VkStructureType             sType;
3951     const void*                 pNext;
3952     VkFramebufferCreateFlags    flags;
3953     VkRenderPass                renderPass;
3954     uint32_t                    attachmentCount;
3955     const VkImageView*          pAttachments;
3956     uint32_t                    width;
3957     uint32_t                    height;
3958     uint32_t                    layers;
3959 } VkFramebufferCreateInfo;
3960 
3961 typedef struct VkSubpassDescription {
3962     VkSubpassDescriptionFlags       flags;
3963     VkPipelineBindPoint             pipelineBindPoint;
3964     uint32_t                        inputAttachmentCount;
3965     const VkAttachmentReference*    pInputAttachments;
3966     uint32_t                        colorAttachmentCount;
3967     const VkAttachmentReference*    pColorAttachments;
3968     const VkAttachmentReference*    pResolveAttachments;
3969     const VkAttachmentReference*    pDepthStencilAttachment;
3970     uint32_t                        preserveAttachmentCount;
3971     const uint32_t*                 pPreserveAttachments;
3972 } VkSubpassDescription;
3973 
3974 typedef struct VkSubpassDependency {
3975     uint32_t                srcSubpass;
3976     uint32_t                dstSubpass;
3977     VkPipelineStageFlags    srcStageMask;
3978     VkPipelineStageFlags    dstStageMask;
3979     VkAccessFlags           srcAccessMask;
3980     VkAccessFlags           dstAccessMask;
3981     VkDependencyFlags       dependencyFlags;
3982 } VkSubpassDependency;
3983 
3984 typedef struct VkRenderPassCreateInfo {
3985     VkStructureType                   sType;
3986     const void*                       pNext;
3987     VkRenderPassCreateFlags           flags;
3988     uint32_t                          attachmentCount;
3989     const VkAttachmentDescription*    pAttachments;
3990     uint32_t                          subpassCount;
3991     const VkSubpassDescription*       pSubpasses;
3992     uint32_t                          dependencyCount;
3993     const VkSubpassDependency*        pDependencies;
3994 } VkRenderPassCreateInfo;
3995 
3996 typedef struct VkCommandPoolCreateInfo {
3997     VkStructureType             sType;
3998     const void*                 pNext;
3999     VkCommandPoolCreateFlags    flags;
4000     uint32_t                    queueFamilyIndex;
4001 } VkCommandPoolCreateInfo;
4002 
4003 typedef struct VkCommandBufferAllocateInfo {
4004     VkStructureType         sType;
4005     const void*             pNext;
4006     VkCommandPool           commandPool;
4007     VkCommandBufferLevel    level;
4008     uint32_t                commandBufferCount;
4009 } VkCommandBufferAllocateInfo;
4010 
4011 typedef struct VkCommandBufferInheritanceInfo {
4012     VkStructureType                  sType;
4013     const void*                      pNext;
4014     VkRenderPass                     renderPass;
4015     uint32_t                         subpass;
4016     VkFramebuffer                    framebuffer;
4017     VkBool32                         occlusionQueryEnable;
4018     VkQueryControlFlags              queryFlags;
4019     VkQueryPipelineStatisticFlags    pipelineStatistics;
4020 } VkCommandBufferInheritanceInfo;
4021 
4022 typedef struct VkCommandBufferBeginInfo {
4023     VkStructureType                          sType;
4024     const void*                              pNext;
4025     VkCommandBufferUsageFlags                flags;
4026     const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
4027 } VkCommandBufferBeginInfo;
4028 
4029 typedef struct VkBufferCopy {
4030     VkDeviceSize    srcOffset;
4031     VkDeviceSize    dstOffset;
4032     VkDeviceSize    size;
4033 } VkBufferCopy;
4034 
4035 typedef struct VkImageSubresourceLayers {
4036     VkImageAspectFlags    aspectMask;
4037     uint32_t              mipLevel;
4038     uint32_t              baseArrayLayer;
4039     uint32_t              layerCount;
4040 } VkImageSubresourceLayers;
4041 
4042 typedef struct VkBufferImageCopy {
4043     VkDeviceSize                bufferOffset;
4044     uint32_t                    bufferRowLength;
4045     uint32_t                    bufferImageHeight;
4046     VkImageSubresourceLayers    imageSubresource;
4047     VkOffset3D                  imageOffset;
4048     VkExtent3D                  imageExtent;
4049 } VkBufferImageCopy;
4050 
4051 typedef union VkClearColorValue {
4052     float       float32[4];
4053     int32_t     int32[4];
4054     uint32_t    uint32[4];
4055 } VkClearColorValue;
4056 
4057 typedef struct VkClearDepthStencilValue {
4058     float       depth;
4059     uint32_t    stencil;
4060 } VkClearDepthStencilValue;
4061 
4062 typedef union VkClearValue {
4063     VkClearColorValue           color;
4064     VkClearDepthStencilValue    depthStencil;
4065 } VkClearValue;
4066 
4067 typedef struct VkClearAttachment {
4068     VkImageAspectFlags    aspectMask;
4069     uint32_t              colorAttachment;
4070     VkClearValue          clearValue;
4071 } VkClearAttachment;
4072 
4073 typedef struct VkClearRect {
4074     VkRect2D    rect;
4075     uint32_t    baseArrayLayer;
4076     uint32_t    layerCount;
4077 } VkClearRect;
4078 
4079 typedef struct VkImageBlit {
4080     VkImageSubresourceLayers    srcSubresource;
4081     VkOffset3D                  srcOffsets[2];
4082     VkImageSubresourceLayers    dstSubresource;
4083     VkOffset3D                  dstOffsets[2];
4084 } VkImageBlit;
4085 
4086 typedef struct VkImageCopy {
4087     VkImageSubresourceLayers    srcSubresource;
4088     VkOffset3D                  srcOffset;
4089     VkImageSubresourceLayers    dstSubresource;
4090     VkOffset3D                  dstOffset;
4091     VkExtent3D                  extent;
4092 } VkImageCopy;
4093 
4094 typedef struct VkImageResolve {
4095     VkImageSubresourceLayers    srcSubresource;
4096     VkOffset3D                  srcOffset;
4097     VkImageSubresourceLayers    dstSubresource;
4098     VkOffset3D                  dstOffset;
4099     VkExtent3D                  extent;
4100 } VkImageResolve;
4101 
4102 typedef struct VkRenderPassBeginInfo {
4103     VkStructureType        sType;
4104     const void*            pNext;
4105     VkRenderPass           renderPass;
4106     VkFramebuffer          framebuffer;
4107     VkRect2D               renderArea;
4108     uint32_t               clearValueCount;
4109     const VkClearValue*    pClearValues;
4110 } VkRenderPassBeginInfo;
4111 
4112 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
4113 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
4114 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
4115 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
4116 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
4117 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
4118 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
4119 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
4120 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4121 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
4122 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
4123 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
4124 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
4125 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4126 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4127 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4128 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4129 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
4130 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
4131 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
4132 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
4133 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
4134 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
4135 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
4136 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
4137 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4138 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4139 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
4140 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4141 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4142 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
4143 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
4144 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4145 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
4146 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
4147 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
4148 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
4149 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
4150 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
4151 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
4152 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
4153 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
4154 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
4155 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
4156 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
4157 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
4158 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
4159 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
4160 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
4161 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);
4162 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
4163 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
4164 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
4165 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
4166 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
4167 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
4168 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
4169 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
4170 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
4171 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
4172 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
4173 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
4174 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
4175 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
4176 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
4177 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4178 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4179 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
4180 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
4181 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
4182 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
4183 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
4184 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
4185 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
4186 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
4187 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
4188 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
4189 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
4190 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
4191 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
4192 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
4193 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
4194 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
4195 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
4196 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
4197 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
4198 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
4199 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
4200 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
4201 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4202 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
4203 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
4204 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
4205 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4206 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
4207 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
4208 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4209 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4210 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
4211 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4212 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
4213 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
4214 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
4215 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);
4216 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4217 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
4218 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
4219 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
4220 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4221 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4222 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4223 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4224 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
4225 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
4226 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
4227 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4228 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4229 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4230 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4231 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4232 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4233 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4234 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4235 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4236 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4237 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);
4238 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);
4239 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4240 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4241 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4242 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4243 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4244 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4245 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4246 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4247 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4248 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4249 
4250 #ifndef VK_NO_PROTOTYPES
4251 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4252     const VkInstanceCreateInfo*                 pCreateInfo,
4253     const VkAllocationCallbacks*                pAllocator,
4254     VkInstance*                                 pInstance);
4255 
4256 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4257     VkInstance                                  instance,
4258     const VkAllocationCallbacks*                pAllocator);
4259 
4260 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4261     VkInstance                                  instance,
4262     uint32_t*                                   pPhysicalDeviceCount,
4263     VkPhysicalDevice*                           pPhysicalDevices);
4264 
4265 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4266     VkPhysicalDevice                            physicalDevice,
4267     VkPhysicalDeviceFeatures*                   pFeatures);
4268 
4269 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4270     VkPhysicalDevice                            physicalDevice,
4271     VkFormat                                    format,
4272     VkFormatProperties*                         pFormatProperties);
4273 
4274 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4275     VkPhysicalDevice                            physicalDevice,
4276     VkFormat                                    format,
4277     VkImageType                                 type,
4278     VkImageTiling                               tiling,
4279     VkImageUsageFlags                           usage,
4280     VkImageCreateFlags                          flags,
4281     VkImageFormatProperties*                    pImageFormatProperties);
4282 
4283 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4284     VkPhysicalDevice                            physicalDevice,
4285     VkPhysicalDeviceProperties*                 pProperties);
4286 
4287 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4288     VkPhysicalDevice                            physicalDevice,
4289     uint32_t*                                   pQueueFamilyPropertyCount,
4290     VkQueueFamilyProperties*                    pQueueFamilyProperties);
4291 
4292 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4293     VkPhysicalDevice                            physicalDevice,
4294     VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
4295 
4296 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4297     VkInstance                                  instance,
4298     const char*                                 pName);
4299 
4300 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4301     VkDevice                                    device,
4302     const char*                                 pName);
4303 
4304 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4305     VkPhysicalDevice                            physicalDevice,
4306     const VkDeviceCreateInfo*                   pCreateInfo,
4307     const VkAllocationCallbacks*                pAllocator,
4308     VkDevice*                                   pDevice);
4309 
4310 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4311     VkDevice                                    device,
4312     const VkAllocationCallbacks*                pAllocator);
4313 
4314 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4315     const char*                                 pLayerName,
4316     uint32_t*                                   pPropertyCount,
4317     VkExtensionProperties*                      pProperties);
4318 
4319 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4320     VkPhysicalDevice                            physicalDevice,
4321     const char*                                 pLayerName,
4322     uint32_t*                                   pPropertyCount,
4323     VkExtensionProperties*                      pProperties);
4324 
4325 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4326     uint32_t*                                   pPropertyCount,
4327     VkLayerProperties*                          pProperties);
4328 
4329 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4330     VkPhysicalDevice                            physicalDevice,
4331     uint32_t*                                   pPropertyCount,
4332     VkLayerProperties*                          pProperties);
4333 
4334 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4335     VkDevice                                    device,
4336     uint32_t                                    queueFamilyIndex,
4337     uint32_t                                    queueIndex,
4338     VkQueue*                                    pQueue);
4339 
4340 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4341     VkQueue                                     queue,
4342     uint32_t                                    submitCount,
4343     const VkSubmitInfo*                         pSubmits,
4344     VkFence                                     fence);
4345 
4346 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4347     VkQueue                                     queue);
4348 
4349 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4350     VkDevice                                    device);
4351 
4352 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4353     VkDevice                                    device,
4354     const VkMemoryAllocateInfo*                 pAllocateInfo,
4355     const VkAllocationCallbacks*                pAllocator,
4356     VkDeviceMemory*                             pMemory);
4357 
4358 VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4359     VkDevice                                    device,
4360     VkDeviceMemory                              memory,
4361     const VkAllocationCallbacks*                pAllocator);
4362 
4363 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4364     VkDevice                                    device,
4365     VkDeviceMemory                              memory,
4366     VkDeviceSize                                offset,
4367     VkDeviceSize                                size,
4368     VkMemoryMapFlags                            flags,
4369     void**                                      ppData);
4370 
4371 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4372     VkDevice                                    device,
4373     VkDeviceMemory                              memory);
4374 
4375 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4376     VkDevice                                    device,
4377     uint32_t                                    memoryRangeCount,
4378     const VkMappedMemoryRange*                  pMemoryRanges);
4379 
4380 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4381     VkDevice                                    device,
4382     uint32_t                                    memoryRangeCount,
4383     const VkMappedMemoryRange*                  pMemoryRanges);
4384 
4385 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4386     VkDevice                                    device,
4387     VkDeviceMemory                              memory,
4388     VkDeviceSize*                               pCommittedMemoryInBytes);
4389 
4390 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4391     VkDevice                                    device,
4392     VkBuffer                                    buffer,
4393     VkDeviceMemory                              memory,
4394     VkDeviceSize                                memoryOffset);
4395 
4396 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4397     VkDevice                                    device,
4398     VkImage                                     image,
4399     VkDeviceMemory                              memory,
4400     VkDeviceSize                                memoryOffset);
4401 
4402 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
4403     VkDevice                                    device,
4404     VkBuffer                                    buffer,
4405     VkMemoryRequirements*                       pMemoryRequirements);
4406 
4407 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
4408     VkDevice                                    device,
4409     VkImage                                     image,
4410     VkMemoryRequirements*                       pMemoryRequirements);
4411 
4412 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
4413     VkDevice                                    device,
4414     VkImage                                     image,
4415     uint32_t*                                   pSparseMemoryRequirementCount,
4416     VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
4417 
4418 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
4419     VkPhysicalDevice                            physicalDevice,
4420     VkFormat                                    format,
4421     VkImageType                                 type,
4422     VkSampleCountFlagBits                       samples,
4423     VkImageUsageFlags                           usage,
4424     VkImageTiling                               tiling,
4425     uint32_t*                                   pPropertyCount,
4426     VkSparseImageFormatProperties*              pProperties);
4427 
4428 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
4429     VkQueue                                     queue,
4430     uint32_t                                    bindInfoCount,
4431     const VkBindSparseInfo*                     pBindInfo,
4432     VkFence                                     fence);
4433 
4434 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
4435     VkDevice                                    device,
4436     const VkFenceCreateInfo*                    pCreateInfo,
4437     const VkAllocationCallbacks*                pAllocator,
4438     VkFence*                                    pFence);
4439 
4440 VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
4441     VkDevice                                    device,
4442     VkFence                                     fence,
4443     const VkAllocationCallbacks*                pAllocator);
4444 
4445 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
4446     VkDevice                                    device,
4447     uint32_t                                    fenceCount,
4448     const VkFence*                              pFences);
4449 
4450 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
4451     VkDevice                                    device,
4452     VkFence                                     fence);
4453 
4454 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
4455     VkDevice                                    device,
4456     uint32_t                                    fenceCount,
4457     const VkFence*                              pFences,
4458     VkBool32                                    waitAll,
4459     uint64_t                                    timeout);
4460 
4461 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
4462     VkDevice                                    device,
4463     const VkSemaphoreCreateInfo*                pCreateInfo,
4464     const VkAllocationCallbacks*                pAllocator,
4465     VkSemaphore*                                pSemaphore);
4466 
4467 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
4468     VkDevice                                    device,
4469     VkSemaphore                                 semaphore,
4470     const VkAllocationCallbacks*                pAllocator);
4471 
4472 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
4473     VkDevice                                    device,
4474     const VkEventCreateInfo*                    pCreateInfo,
4475     const VkAllocationCallbacks*                pAllocator,
4476     VkEvent*                                    pEvent);
4477 
4478 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
4479     VkDevice                                    device,
4480     VkEvent                                     event,
4481     const VkAllocationCallbacks*                pAllocator);
4482 
4483 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
4484     VkDevice                                    device,
4485     VkEvent                                     event);
4486 
4487 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
4488     VkDevice                                    device,
4489     VkEvent                                     event);
4490 
4491 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
4492     VkDevice                                    device,
4493     VkEvent                                     event);
4494 
4495 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
4496     VkDevice                                    device,
4497     const VkQueryPoolCreateInfo*                pCreateInfo,
4498     const VkAllocationCallbacks*                pAllocator,
4499     VkQueryPool*                                pQueryPool);
4500 
4501 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
4502     VkDevice                                    device,
4503     VkQueryPool                                 queryPool,
4504     const VkAllocationCallbacks*                pAllocator);
4505 
4506 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
4507     VkDevice                                    device,
4508     VkQueryPool                                 queryPool,
4509     uint32_t                                    firstQuery,
4510     uint32_t                                    queryCount,
4511     size_t                                      dataSize,
4512     void*                                       pData,
4513     VkDeviceSize                                stride,
4514     VkQueryResultFlags                          flags);
4515 
4516 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
4517     VkDevice                                    device,
4518     const VkBufferCreateInfo*                   pCreateInfo,
4519     const VkAllocationCallbacks*                pAllocator,
4520     VkBuffer*                                   pBuffer);
4521 
4522 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
4523     VkDevice                                    device,
4524     VkBuffer                                    buffer,
4525     const VkAllocationCallbacks*                pAllocator);
4526 
4527 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
4528     VkDevice                                    device,
4529     const VkBufferViewCreateInfo*               pCreateInfo,
4530     const VkAllocationCallbacks*                pAllocator,
4531     VkBufferView*                               pView);
4532 
4533 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
4534     VkDevice                                    device,
4535     VkBufferView                                bufferView,
4536     const VkAllocationCallbacks*                pAllocator);
4537 
4538 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
4539     VkDevice                                    device,
4540     const VkImageCreateInfo*                    pCreateInfo,
4541     const VkAllocationCallbacks*                pAllocator,
4542     VkImage*                                    pImage);
4543 
4544 VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
4545     VkDevice                                    device,
4546     VkImage                                     image,
4547     const VkAllocationCallbacks*                pAllocator);
4548 
4549 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
4550     VkDevice                                    device,
4551     VkImage                                     image,
4552     const VkImageSubresource*                   pSubresource,
4553     VkSubresourceLayout*                        pLayout);
4554 
4555 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
4556     VkDevice                                    device,
4557     const VkImageViewCreateInfo*                pCreateInfo,
4558     const VkAllocationCallbacks*                pAllocator,
4559     VkImageView*                                pView);
4560 
4561 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
4562     VkDevice                                    device,
4563     VkImageView                                 imageView,
4564     const VkAllocationCallbacks*                pAllocator);
4565 
4566 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
4567     VkDevice                                    device,
4568     const VkShaderModuleCreateInfo*             pCreateInfo,
4569     const VkAllocationCallbacks*                pAllocator,
4570     VkShaderModule*                             pShaderModule);
4571 
4572 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
4573     VkDevice                                    device,
4574     VkShaderModule                              shaderModule,
4575     const VkAllocationCallbacks*                pAllocator);
4576 
4577 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
4578     VkDevice                                    device,
4579     const VkPipelineCacheCreateInfo*            pCreateInfo,
4580     const VkAllocationCallbacks*                pAllocator,
4581     VkPipelineCache*                            pPipelineCache);
4582 
4583 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
4584     VkDevice                                    device,
4585     VkPipelineCache                             pipelineCache,
4586     const VkAllocationCallbacks*                pAllocator);
4587 
4588 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
4589     VkDevice                                    device,
4590     VkPipelineCache                             pipelineCache,
4591     size_t*                                     pDataSize,
4592     void*                                       pData);
4593 
4594 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
4595     VkDevice                                    device,
4596     VkPipelineCache                             dstCache,
4597     uint32_t                                    srcCacheCount,
4598     const VkPipelineCache*                      pSrcCaches);
4599 
4600 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
4601     VkDevice                                    device,
4602     VkPipelineCache                             pipelineCache,
4603     uint32_t                                    createInfoCount,
4604     const VkGraphicsPipelineCreateInfo*         pCreateInfos,
4605     const VkAllocationCallbacks*                pAllocator,
4606     VkPipeline*                                 pPipelines);
4607 
4608 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
4609     VkDevice                                    device,
4610     VkPipelineCache                             pipelineCache,
4611     uint32_t                                    createInfoCount,
4612     const VkComputePipelineCreateInfo*          pCreateInfos,
4613     const VkAllocationCallbacks*                pAllocator,
4614     VkPipeline*                                 pPipelines);
4615 
4616 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
4617     VkDevice                                    device,
4618     VkPipeline                                  pipeline,
4619     const VkAllocationCallbacks*                pAllocator);
4620 
4621 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
4622     VkDevice                                    device,
4623     const VkPipelineLayoutCreateInfo*           pCreateInfo,
4624     const VkAllocationCallbacks*                pAllocator,
4625     VkPipelineLayout*                           pPipelineLayout);
4626 
4627 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
4628     VkDevice                                    device,
4629     VkPipelineLayout                            pipelineLayout,
4630     const VkAllocationCallbacks*                pAllocator);
4631 
4632 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
4633     VkDevice                                    device,
4634     const VkSamplerCreateInfo*                  pCreateInfo,
4635     const VkAllocationCallbacks*                pAllocator,
4636     VkSampler*                                  pSampler);
4637 
4638 VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
4639     VkDevice                                    device,
4640     VkSampler                                   sampler,
4641     const VkAllocationCallbacks*                pAllocator);
4642 
4643 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
4644     VkDevice                                    device,
4645     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
4646     const VkAllocationCallbacks*                pAllocator,
4647     VkDescriptorSetLayout*                      pSetLayout);
4648 
4649 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
4650     VkDevice                                    device,
4651     VkDescriptorSetLayout                       descriptorSetLayout,
4652     const VkAllocationCallbacks*                pAllocator);
4653 
4654 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
4655     VkDevice                                    device,
4656     const VkDescriptorPoolCreateInfo*           pCreateInfo,
4657     const VkAllocationCallbacks*                pAllocator,
4658     VkDescriptorPool*                           pDescriptorPool);
4659 
4660 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
4661     VkDevice                                    device,
4662     VkDescriptorPool                            descriptorPool,
4663     const VkAllocationCallbacks*                pAllocator);
4664 
4665 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
4666     VkDevice                                    device,
4667     VkDescriptorPool                            descriptorPool,
4668     VkDescriptorPoolResetFlags                  flags);
4669 
4670 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
4671     VkDevice                                    device,
4672     const VkDescriptorSetAllocateInfo*          pAllocateInfo,
4673     VkDescriptorSet*                            pDescriptorSets);
4674 
4675 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
4676     VkDevice                                    device,
4677     VkDescriptorPool                            descriptorPool,
4678     uint32_t                                    descriptorSetCount,
4679     const VkDescriptorSet*                      pDescriptorSets);
4680 
4681 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
4682     VkDevice                                    device,
4683     uint32_t                                    descriptorWriteCount,
4684     const VkWriteDescriptorSet*                 pDescriptorWrites,
4685     uint32_t                                    descriptorCopyCount,
4686     const VkCopyDescriptorSet*                  pDescriptorCopies);
4687 
4688 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
4689     VkDevice                                    device,
4690     const VkFramebufferCreateInfo*              pCreateInfo,
4691     const VkAllocationCallbacks*                pAllocator,
4692     VkFramebuffer*                              pFramebuffer);
4693 
4694 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
4695     VkDevice                                    device,
4696     VkFramebuffer                               framebuffer,
4697     const VkAllocationCallbacks*                pAllocator);
4698 
4699 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
4700     VkDevice                                    device,
4701     const VkRenderPassCreateInfo*               pCreateInfo,
4702     const VkAllocationCallbacks*                pAllocator,
4703     VkRenderPass*                               pRenderPass);
4704 
4705 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
4706     VkDevice                                    device,
4707     VkRenderPass                                renderPass,
4708     const VkAllocationCallbacks*                pAllocator);
4709 
4710 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
4711     VkDevice                                    device,
4712     VkRenderPass                                renderPass,
4713     VkExtent2D*                                 pGranularity);
4714 
4715 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
4716     VkDevice                                    device,
4717     const VkCommandPoolCreateInfo*              pCreateInfo,
4718     const VkAllocationCallbacks*                pAllocator,
4719     VkCommandPool*                              pCommandPool);
4720 
4721 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
4722     VkDevice                                    device,
4723     VkCommandPool                               commandPool,
4724     const VkAllocationCallbacks*                pAllocator);
4725 
4726 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
4727     VkDevice                                    device,
4728     VkCommandPool                               commandPool,
4729     VkCommandPoolResetFlags                     flags);
4730 
4731 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
4732     VkDevice                                    device,
4733     const VkCommandBufferAllocateInfo*          pAllocateInfo,
4734     VkCommandBuffer*                            pCommandBuffers);
4735 
4736 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
4737     VkDevice                                    device,
4738     VkCommandPool                               commandPool,
4739     uint32_t                                    commandBufferCount,
4740     const VkCommandBuffer*                      pCommandBuffers);
4741 
4742 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
4743     VkCommandBuffer                             commandBuffer,
4744     const VkCommandBufferBeginInfo*             pBeginInfo);
4745 
4746 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
4747     VkCommandBuffer                             commandBuffer);
4748 
4749 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
4750     VkCommandBuffer                             commandBuffer,
4751     VkCommandBufferResetFlags                   flags);
4752 
4753 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
4754     VkCommandBuffer                             commandBuffer,
4755     VkPipelineBindPoint                         pipelineBindPoint,
4756     VkPipeline                                  pipeline);
4757 
4758 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
4759     VkCommandBuffer                             commandBuffer,
4760     uint32_t                                    firstViewport,
4761     uint32_t                                    viewportCount,
4762     const VkViewport*                           pViewports);
4763 
4764 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
4765     VkCommandBuffer                             commandBuffer,
4766     uint32_t                                    firstScissor,
4767     uint32_t                                    scissorCount,
4768     const VkRect2D*                             pScissors);
4769 
4770 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
4771     VkCommandBuffer                             commandBuffer,
4772     float                                       lineWidth);
4773 
4774 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
4775     VkCommandBuffer                             commandBuffer,
4776     float                                       depthBiasConstantFactor,
4777     float                                       depthBiasClamp,
4778     float                                       depthBiasSlopeFactor);
4779 
4780 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
4781     VkCommandBuffer                             commandBuffer,
4782     const float                                 blendConstants[4]);
4783 
4784 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
4785     VkCommandBuffer                             commandBuffer,
4786     float                                       minDepthBounds,
4787     float                                       maxDepthBounds);
4788 
4789 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
4790     VkCommandBuffer                             commandBuffer,
4791     VkStencilFaceFlags                          faceMask,
4792     uint32_t                                    compareMask);
4793 
4794 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
4795     VkCommandBuffer                             commandBuffer,
4796     VkStencilFaceFlags                          faceMask,
4797     uint32_t                                    writeMask);
4798 
4799 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
4800     VkCommandBuffer                             commandBuffer,
4801     VkStencilFaceFlags                          faceMask,
4802     uint32_t                                    reference);
4803 
4804 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
4805     VkCommandBuffer                             commandBuffer,
4806     VkPipelineBindPoint                         pipelineBindPoint,
4807     VkPipelineLayout                            layout,
4808     uint32_t                                    firstSet,
4809     uint32_t                                    descriptorSetCount,
4810     const VkDescriptorSet*                      pDescriptorSets,
4811     uint32_t                                    dynamicOffsetCount,
4812     const uint32_t*                             pDynamicOffsets);
4813 
4814 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
4815     VkCommandBuffer                             commandBuffer,
4816     VkBuffer                                    buffer,
4817     VkDeviceSize                                offset,
4818     VkIndexType                                 indexType);
4819 
4820 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
4821     VkCommandBuffer                             commandBuffer,
4822     uint32_t                                    firstBinding,
4823     uint32_t                                    bindingCount,
4824     const VkBuffer*                             pBuffers,
4825     const VkDeviceSize*                         pOffsets);
4826 
4827 VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
4828     VkCommandBuffer                             commandBuffer,
4829     uint32_t                                    vertexCount,
4830     uint32_t                                    instanceCount,
4831     uint32_t                                    firstVertex,
4832     uint32_t                                    firstInstance);
4833 
4834 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
4835     VkCommandBuffer                             commandBuffer,
4836     uint32_t                                    indexCount,
4837     uint32_t                                    instanceCount,
4838     uint32_t                                    firstIndex,
4839     int32_t                                     vertexOffset,
4840     uint32_t                                    firstInstance);
4841 
4842 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
4843     VkCommandBuffer                             commandBuffer,
4844     VkBuffer                                    buffer,
4845     VkDeviceSize                                offset,
4846     uint32_t                                    drawCount,
4847     uint32_t                                    stride);
4848 
4849 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
4850     VkCommandBuffer                             commandBuffer,
4851     VkBuffer                                    buffer,
4852     VkDeviceSize                                offset,
4853     uint32_t                                    drawCount,
4854     uint32_t                                    stride);
4855 
4856 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
4857     VkCommandBuffer                             commandBuffer,
4858     uint32_t                                    groupCountX,
4859     uint32_t                                    groupCountY,
4860     uint32_t                                    groupCountZ);
4861 
4862 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
4863     VkCommandBuffer                             commandBuffer,
4864     VkBuffer                                    buffer,
4865     VkDeviceSize                                offset);
4866 
4867 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
4868     VkCommandBuffer                             commandBuffer,
4869     VkBuffer                                    srcBuffer,
4870     VkBuffer                                    dstBuffer,
4871     uint32_t                                    regionCount,
4872     const VkBufferCopy*                         pRegions);
4873 
4874 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
4875     VkCommandBuffer                             commandBuffer,
4876     VkImage                                     srcImage,
4877     VkImageLayout                               srcImageLayout,
4878     VkImage                                     dstImage,
4879     VkImageLayout                               dstImageLayout,
4880     uint32_t                                    regionCount,
4881     const VkImageCopy*                          pRegions);
4882 
4883 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
4884     VkCommandBuffer                             commandBuffer,
4885     VkImage                                     srcImage,
4886     VkImageLayout                               srcImageLayout,
4887     VkImage                                     dstImage,
4888     VkImageLayout                               dstImageLayout,
4889     uint32_t                                    regionCount,
4890     const VkImageBlit*                          pRegions,
4891     VkFilter                                    filter);
4892 
4893 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
4894     VkCommandBuffer                             commandBuffer,
4895     VkBuffer                                    srcBuffer,
4896     VkImage                                     dstImage,
4897     VkImageLayout                               dstImageLayout,
4898     uint32_t                                    regionCount,
4899     const VkBufferImageCopy*                    pRegions);
4900 
4901 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
4902     VkCommandBuffer                             commandBuffer,
4903     VkImage                                     srcImage,
4904     VkImageLayout                               srcImageLayout,
4905     VkBuffer                                    dstBuffer,
4906     uint32_t                                    regionCount,
4907     const VkBufferImageCopy*                    pRegions);
4908 
4909 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
4910     VkCommandBuffer                             commandBuffer,
4911     VkBuffer                                    dstBuffer,
4912     VkDeviceSize                                dstOffset,
4913     VkDeviceSize                                dataSize,
4914     const void*                                 pData);
4915 
4916 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
4917     VkCommandBuffer                             commandBuffer,
4918     VkBuffer                                    dstBuffer,
4919     VkDeviceSize                                dstOffset,
4920     VkDeviceSize                                size,
4921     uint32_t                                    data);
4922 
4923 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
4924     VkCommandBuffer                             commandBuffer,
4925     VkImage                                     image,
4926     VkImageLayout                               imageLayout,
4927     const VkClearColorValue*                    pColor,
4928     uint32_t                                    rangeCount,
4929     const VkImageSubresourceRange*              pRanges);
4930 
4931 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
4932     VkCommandBuffer                             commandBuffer,
4933     VkImage                                     image,
4934     VkImageLayout                               imageLayout,
4935     const VkClearDepthStencilValue*             pDepthStencil,
4936     uint32_t                                    rangeCount,
4937     const VkImageSubresourceRange*              pRanges);
4938 
4939 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
4940     VkCommandBuffer                             commandBuffer,
4941     uint32_t                                    attachmentCount,
4942     const VkClearAttachment*                    pAttachments,
4943     uint32_t                                    rectCount,
4944     const VkClearRect*                          pRects);
4945 
4946 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
4947     VkCommandBuffer                             commandBuffer,
4948     VkImage                                     srcImage,
4949     VkImageLayout                               srcImageLayout,
4950     VkImage                                     dstImage,
4951     VkImageLayout                               dstImageLayout,
4952     uint32_t                                    regionCount,
4953     const VkImageResolve*                       pRegions);
4954 
4955 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
4956     VkCommandBuffer                             commandBuffer,
4957     VkEvent                                     event,
4958     VkPipelineStageFlags                        stageMask);
4959 
4960 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
4961     VkCommandBuffer                             commandBuffer,
4962     VkEvent                                     event,
4963     VkPipelineStageFlags                        stageMask);
4964 
4965 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
4966     VkCommandBuffer                             commandBuffer,
4967     uint32_t                                    eventCount,
4968     const VkEvent*                              pEvents,
4969     VkPipelineStageFlags                        srcStageMask,
4970     VkPipelineStageFlags                        dstStageMask,
4971     uint32_t                                    memoryBarrierCount,
4972     const VkMemoryBarrier*                      pMemoryBarriers,
4973     uint32_t                                    bufferMemoryBarrierCount,
4974     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
4975     uint32_t                                    imageMemoryBarrierCount,
4976     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
4977 
4978 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
4979     VkCommandBuffer                             commandBuffer,
4980     VkPipelineStageFlags                        srcStageMask,
4981     VkPipelineStageFlags                        dstStageMask,
4982     VkDependencyFlags                           dependencyFlags,
4983     uint32_t                                    memoryBarrierCount,
4984     const VkMemoryBarrier*                      pMemoryBarriers,
4985     uint32_t                                    bufferMemoryBarrierCount,
4986     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
4987     uint32_t                                    imageMemoryBarrierCount,
4988     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
4989 
4990 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
4991     VkCommandBuffer                             commandBuffer,
4992     VkQueryPool                                 queryPool,
4993     uint32_t                                    query,
4994     VkQueryControlFlags                         flags);
4995 
4996 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
4997     VkCommandBuffer                             commandBuffer,
4998     VkQueryPool                                 queryPool,
4999     uint32_t                                    query);
5000 
5001 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
5002     VkCommandBuffer                             commandBuffer,
5003     VkQueryPool                                 queryPool,
5004     uint32_t                                    firstQuery,
5005     uint32_t                                    queryCount);
5006 
5007 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
5008     VkCommandBuffer                             commandBuffer,
5009     VkPipelineStageFlagBits                     pipelineStage,
5010     VkQueryPool                                 queryPool,
5011     uint32_t                                    query);
5012 
5013 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
5014     VkCommandBuffer                             commandBuffer,
5015     VkQueryPool                                 queryPool,
5016     uint32_t                                    firstQuery,
5017     uint32_t                                    queryCount,
5018     VkBuffer                                    dstBuffer,
5019     VkDeviceSize                                dstOffset,
5020     VkDeviceSize                                stride,
5021     VkQueryResultFlags                          flags);
5022 
5023 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
5024     VkCommandBuffer                             commandBuffer,
5025     VkPipelineLayout                            layout,
5026     VkShaderStageFlags                          stageFlags,
5027     uint32_t                                    offset,
5028     uint32_t                                    size,
5029     const void*                                 pValues);
5030 
5031 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
5032     VkCommandBuffer                             commandBuffer,
5033     const VkRenderPassBeginInfo*                pRenderPassBegin,
5034     VkSubpassContents                           contents);
5035 
5036 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
5037     VkCommandBuffer                             commandBuffer,
5038     VkSubpassContents                           contents);
5039 
5040 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
5041     VkCommandBuffer                             commandBuffer);
5042 
5043 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
5044     VkCommandBuffer                             commandBuffer,
5045     uint32_t                                    commandBufferCount,
5046     const VkCommandBuffer*                      pCommandBuffers);
5047 #endif
5048 
5049 
5050 // VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
5051 #define VK_VERSION_1_1 1
5052 // Vulkan 1.1 version number
5053 #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
5054 
5055 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
5056 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
5057 #define VK_MAX_DEVICE_GROUP_SIZE          32U
5058 #define VK_LUID_SIZE                      8U
5059 #define VK_QUEUE_FAMILY_EXTERNAL          (~1U)
5060 
5061 typedef enum VkPointClippingBehavior {
5062     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
5063     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
5064     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
5065     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
5066     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
5067 } VkPointClippingBehavior;
5068 
5069 typedef enum VkTessellationDomainOrigin {
5070     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
5071     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
5072     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
5073     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
5074     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
5075 } VkTessellationDomainOrigin;
5076 
5077 typedef enum VkSamplerYcbcrModelConversion {
5078     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
5079     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
5080     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
5081     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
5082     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
5083     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
5084     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
5085     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
5086     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
5087     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
5088     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
5089 } VkSamplerYcbcrModelConversion;
5090 
5091 typedef enum VkSamplerYcbcrRange {
5092     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
5093     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
5094     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
5095     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
5096     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
5097 } VkSamplerYcbcrRange;
5098 
5099 typedef enum VkChromaLocation {
5100     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
5101     VK_CHROMA_LOCATION_MIDPOINT = 1,
5102     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
5103     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
5104     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
5105 } VkChromaLocation;
5106 
5107 typedef enum VkDescriptorUpdateTemplateType {
5108     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
5109     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS = 1,
5110     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS,
5111     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
5112     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
5113 } VkDescriptorUpdateTemplateType;
5114 
5115 typedef enum VkSubgroupFeatureFlagBits {
5116     VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
5117     VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
5118     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
5119     VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
5120     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
5121     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
5122     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
5123     VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
5124     VK_SUBGROUP_FEATURE_ROTATE_BIT = 0x00000200,
5125     VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT = 0x00000400,
5126     VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
5127     VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_BIT,
5128     VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT,
5129     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5130 } VkSubgroupFeatureFlagBits;
5131 typedef VkFlags VkSubgroupFeatureFlags;
5132 
5133 typedef enum VkPeerMemoryFeatureFlagBits {
5134     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
5135     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
5136     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
5137     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
5138     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
5139     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
5140     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
5141     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
5142     VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5143 } VkPeerMemoryFeatureFlagBits;
5144 typedef VkFlags VkPeerMemoryFeatureFlags;
5145 
5146 typedef enum VkMemoryAllocateFlagBits {
5147     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
5148     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
5149     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
5150     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
5151     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
5152     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
5153     VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5154 } VkMemoryAllocateFlagBits;
5155 typedef VkFlags VkMemoryAllocateFlags;
5156 typedef VkFlags VkCommandPoolTrimFlags;
5157 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
5158 
5159 typedef enum VkExternalMemoryHandleTypeFlagBits {
5160     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5161     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5162     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5163     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
5164     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
5165     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
5166     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
5167     VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
5168     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
5169     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
5170     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
5171     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
5172     VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
5173     VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
5174     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5175     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5176     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5177     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5178     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5179     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5180     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5181     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5182 } VkExternalMemoryHandleTypeFlagBits;
5183 typedef VkFlags VkExternalMemoryHandleTypeFlags;
5184 
5185 typedef enum VkExternalMemoryFeatureFlagBits {
5186     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
5187     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
5188     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
5189     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5190     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5191     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
5192     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5193 } VkExternalMemoryFeatureFlagBits;
5194 typedef VkFlags VkExternalMemoryFeatureFlags;
5195 
5196 typedef enum VkExternalFenceHandleTypeFlagBits {
5197     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5198     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5199     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5200     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
5201     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5202     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5203     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5204     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
5205     VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5206 } VkExternalFenceHandleTypeFlagBits;
5207 typedef VkFlags VkExternalFenceHandleTypeFlags;
5208 
5209 typedef enum VkExternalFenceFeatureFlagBits {
5210     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5211     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5212     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5213     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
5214     VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5215 } VkExternalFenceFeatureFlagBits;
5216 typedef VkFlags VkExternalFenceFeatureFlags;
5217 
5218 typedef enum VkFenceImportFlagBits {
5219     VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
5220     VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
5221     VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5222 } VkFenceImportFlagBits;
5223 typedef VkFlags VkFenceImportFlags;
5224 
5225 typedef enum VkSemaphoreImportFlagBits {
5226     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
5227     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
5228     VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5229 } VkSemaphoreImportFlagBits;
5230 typedef VkFlags VkSemaphoreImportFlags;
5231 
5232 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
5233     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5234     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5235     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5236     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5237     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5238     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5239     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5240     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5241     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5242     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5243     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5244     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5245     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5246 } VkExternalSemaphoreHandleTypeFlagBits;
5247 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5248 
5249 typedef enum VkExternalSemaphoreFeatureFlagBits {
5250     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5251     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5252     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5253     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5254     VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5255 } VkExternalSemaphoreFeatureFlagBits;
5256 typedef VkFlags VkExternalSemaphoreFeatureFlags;
5257 typedef struct VkPhysicalDeviceSubgroupProperties {
5258     VkStructureType           sType;
5259     void*                     pNext;
5260     uint32_t                  subgroupSize;
5261     VkShaderStageFlags        supportedStages;
5262     VkSubgroupFeatureFlags    supportedOperations;
5263     VkBool32                  quadOperationsInAllStages;
5264 } VkPhysicalDeviceSubgroupProperties;
5265 
5266 typedef struct VkBindBufferMemoryInfo {
5267     VkStructureType    sType;
5268     const void*        pNext;
5269     VkBuffer           buffer;
5270     VkDeviceMemory     memory;
5271     VkDeviceSize       memoryOffset;
5272 } VkBindBufferMemoryInfo;
5273 
5274 typedef struct VkBindImageMemoryInfo {
5275     VkStructureType    sType;
5276     const void*        pNext;
5277     VkImage            image;
5278     VkDeviceMemory     memory;
5279     VkDeviceSize       memoryOffset;
5280 } VkBindImageMemoryInfo;
5281 
5282 typedef struct VkPhysicalDevice16BitStorageFeatures {
5283     VkStructureType    sType;
5284     void*              pNext;
5285     VkBool32           storageBuffer16BitAccess;
5286     VkBool32           uniformAndStorageBuffer16BitAccess;
5287     VkBool32           storagePushConstant16;
5288     VkBool32           storageInputOutput16;
5289 } VkPhysicalDevice16BitStorageFeatures;
5290 
5291 typedef struct VkMemoryDedicatedRequirements {
5292     VkStructureType    sType;
5293     void*              pNext;
5294     VkBool32           prefersDedicatedAllocation;
5295     VkBool32           requiresDedicatedAllocation;
5296 } VkMemoryDedicatedRequirements;
5297 
5298 typedef struct VkMemoryDedicatedAllocateInfo {
5299     VkStructureType    sType;
5300     const void*        pNext;
5301     VkImage            image;
5302     VkBuffer           buffer;
5303 } VkMemoryDedicatedAllocateInfo;
5304 
5305 typedef struct VkMemoryAllocateFlagsInfo {
5306     VkStructureType          sType;
5307     const void*              pNext;
5308     VkMemoryAllocateFlags    flags;
5309     uint32_t                 deviceMask;
5310 } VkMemoryAllocateFlagsInfo;
5311 
5312 typedef struct VkDeviceGroupRenderPassBeginInfo {
5313     VkStructureType    sType;
5314     const void*        pNext;
5315     uint32_t           deviceMask;
5316     uint32_t           deviceRenderAreaCount;
5317     const VkRect2D*    pDeviceRenderAreas;
5318 } VkDeviceGroupRenderPassBeginInfo;
5319 
5320 typedef struct VkDeviceGroupCommandBufferBeginInfo {
5321     VkStructureType    sType;
5322     const void*        pNext;
5323     uint32_t           deviceMask;
5324 } VkDeviceGroupCommandBufferBeginInfo;
5325 
5326 typedef struct VkDeviceGroupSubmitInfo {
5327     VkStructureType    sType;
5328     const void*        pNext;
5329     uint32_t           waitSemaphoreCount;
5330     const uint32_t*    pWaitSemaphoreDeviceIndices;
5331     uint32_t           commandBufferCount;
5332     const uint32_t*    pCommandBufferDeviceMasks;
5333     uint32_t           signalSemaphoreCount;
5334     const uint32_t*    pSignalSemaphoreDeviceIndices;
5335 } VkDeviceGroupSubmitInfo;
5336 
5337 typedef struct VkDeviceGroupBindSparseInfo {
5338     VkStructureType    sType;
5339     const void*        pNext;
5340     uint32_t           resourceDeviceIndex;
5341     uint32_t           memoryDeviceIndex;
5342 } VkDeviceGroupBindSparseInfo;
5343 
5344 typedef struct VkBindBufferMemoryDeviceGroupInfo {
5345     VkStructureType    sType;
5346     const void*        pNext;
5347     uint32_t           deviceIndexCount;
5348     const uint32_t*    pDeviceIndices;
5349 } VkBindBufferMemoryDeviceGroupInfo;
5350 
5351 typedef struct VkBindImageMemoryDeviceGroupInfo {
5352     VkStructureType    sType;
5353     const void*        pNext;
5354     uint32_t           deviceIndexCount;
5355     const uint32_t*    pDeviceIndices;
5356     uint32_t           splitInstanceBindRegionCount;
5357     const VkRect2D*    pSplitInstanceBindRegions;
5358 } VkBindImageMemoryDeviceGroupInfo;
5359 
5360 typedef struct VkPhysicalDeviceGroupProperties {
5361     VkStructureType     sType;
5362     void*               pNext;
5363     uint32_t            physicalDeviceCount;
5364     VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5365     VkBool32            subsetAllocation;
5366 } VkPhysicalDeviceGroupProperties;
5367 
5368 typedef struct VkDeviceGroupDeviceCreateInfo {
5369     VkStructureType            sType;
5370     const void*                pNext;
5371     uint32_t                   physicalDeviceCount;
5372     const VkPhysicalDevice*    pPhysicalDevices;
5373 } VkDeviceGroupDeviceCreateInfo;
5374 
5375 typedef struct VkBufferMemoryRequirementsInfo2 {
5376     VkStructureType    sType;
5377     const void*        pNext;
5378     VkBuffer           buffer;
5379 } VkBufferMemoryRequirementsInfo2;
5380 
5381 typedef struct VkImageMemoryRequirementsInfo2 {
5382     VkStructureType    sType;
5383     const void*        pNext;
5384     VkImage            image;
5385 } VkImageMemoryRequirementsInfo2;
5386 
5387 typedef struct VkImageSparseMemoryRequirementsInfo2 {
5388     VkStructureType    sType;
5389     const void*        pNext;
5390     VkImage            image;
5391 } VkImageSparseMemoryRequirementsInfo2;
5392 
5393 typedef struct VkMemoryRequirements2 {
5394     VkStructureType         sType;
5395     void*                   pNext;
5396     VkMemoryRequirements    memoryRequirements;
5397 } VkMemoryRequirements2;
5398 
5399 typedef struct VkSparseImageMemoryRequirements2 {
5400     VkStructureType                    sType;
5401     void*                              pNext;
5402     VkSparseImageMemoryRequirements    memoryRequirements;
5403 } VkSparseImageMemoryRequirements2;
5404 
5405 typedef struct VkPhysicalDeviceFeatures2 {
5406     VkStructureType             sType;
5407     void*                       pNext;
5408     VkPhysicalDeviceFeatures    features;
5409 } VkPhysicalDeviceFeatures2;
5410 
5411 typedef struct VkPhysicalDeviceProperties2 {
5412     VkStructureType               sType;
5413     void*                         pNext;
5414     VkPhysicalDeviceProperties    properties;
5415 } VkPhysicalDeviceProperties2;
5416 
5417 typedef struct VkFormatProperties2 {
5418     VkStructureType       sType;
5419     void*                 pNext;
5420     VkFormatProperties    formatProperties;
5421 } VkFormatProperties2;
5422 
5423 typedef struct VkImageFormatProperties2 {
5424     VkStructureType            sType;
5425     void*                      pNext;
5426     VkImageFormatProperties    imageFormatProperties;
5427 } VkImageFormatProperties2;
5428 
5429 typedef struct VkPhysicalDeviceImageFormatInfo2 {
5430     VkStructureType       sType;
5431     const void*           pNext;
5432     VkFormat              format;
5433     VkImageType           type;
5434     VkImageTiling         tiling;
5435     VkImageUsageFlags     usage;
5436     VkImageCreateFlags    flags;
5437 } VkPhysicalDeviceImageFormatInfo2;
5438 
5439 typedef struct VkQueueFamilyProperties2 {
5440     VkStructureType            sType;
5441     void*                      pNext;
5442     VkQueueFamilyProperties    queueFamilyProperties;
5443 } VkQueueFamilyProperties2;
5444 
5445 typedef struct VkPhysicalDeviceMemoryProperties2 {
5446     VkStructureType                     sType;
5447     void*                               pNext;
5448     VkPhysicalDeviceMemoryProperties    memoryProperties;
5449 } VkPhysicalDeviceMemoryProperties2;
5450 
5451 typedef struct VkSparseImageFormatProperties2 {
5452     VkStructureType                  sType;
5453     void*                            pNext;
5454     VkSparseImageFormatProperties    properties;
5455 } VkSparseImageFormatProperties2;
5456 
5457 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
5458     VkStructureType          sType;
5459     const void*              pNext;
5460     VkFormat                 format;
5461     VkImageType              type;
5462     VkSampleCountFlagBits    samples;
5463     VkImageUsageFlags        usage;
5464     VkImageTiling            tiling;
5465 } VkPhysicalDeviceSparseImageFormatInfo2;
5466 
5467 typedef struct VkPhysicalDevicePointClippingProperties {
5468     VkStructureType            sType;
5469     void*                      pNext;
5470     VkPointClippingBehavior    pointClippingBehavior;
5471 } VkPhysicalDevicePointClippingProperties;
5472 
5473 typedef struct VkInputAttachmentAspectReference {
5474     uint32_t              subpass;
5475     uint32_t              inputAttachmentIndex;
5476     VkImageAspectFlags    aspectMask;
5477 } VkInputAttachmentAspectReference;
5478 
5479 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
5480     VkStructureType                            sType;
5481     const void*                                pNext;
5482     uint32_t                                   aspectReferenceCount;
5483     const VkInputAttachmentAspectReference*    pAspectReferences;
5484 } VkRenderPassInputAttachmentAspectCreateInfo;
5485 
5486 typedef struct VkImageViewUsageCreateInfo {
5487     VkStructureType      sType;
5488     const void*          pNext;
5489     VkImageUsageFlags    usage;
5490 } VkImageViewUsageCreateInfo;
5491 
5492 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
5493     VkStructureType               sType;
5494     const void*                   pNext;
5495     VkTessellationDomainOrigin    domainOrigin;
5496 } VkPipelineTessellationDomainOriginStateCreateInfo;
5497 
5498 typedef struct VkRenderPassMultiviewCreateInfo {
5499     VkStructureType    sType;
5500     const void*        pNext;
5501     uint32_t           subpassCount;
5502     const uint32_t*    pViewMasks;
5503     uint32_t           dependencyCount;
5504     const int32_t*     pViewOffsets;
5505     uint32_t           correlationMaskCount;
5506     const uint32_t*    pCorrelationMasks;
5507 } VkRenderPassMultiviewCreateInfo;
5508 
5509 typedef struct VkPhysicalDeviceMultiviewFeatures {
5510     VkStructureType    sType;
5511     void*              pNext;
5512     VkBool32           multiview;
5513     VkBool32           multiviewGeometryShader;
5514     VkBool32           multiviewTessellationShader;
5515 } VkPhysicalDeviceMultiviewFeatures;
5516 
5517 typedef struct VkPhysicalDeviceMultiviewProperties {
5518     VkStructureType    sType;
5519     void*              pNext;
5520     uint32_t           maxMultiviewViewCount;
5521     uint32_t           maxMultiviewInstanceIndex;
5522 } VkPhysicalDeviceMultiviewProperties;
5523 
5524 typedef struct VkPhysicalDeviceVariablePointersFeatures {
5525     VkStructureType    sType;
5526     void*              pNext;
5527     VkBool32           variablePointersStorageBuffer;
5528     VkBool32           variablePointers;
5529 } VkPhysicalDeviceVariablePointersFeatures;
5530 
5531 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
5532 
5533 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
5534     VkStructureType    sType;
5535     void*              pNext;
5536     VkBool32           protectedMemory;
5537 } VkPhysicalDeviceProtectedMemoryFeatures;
5538 
5539 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
5540     VkStructureType    sType;
5541     void*              pNext;
5542     VkBool32           protectedNoFault;
5543 } VkPhysicalDeviceProtectedMemoryProperties;
5544 
5545 typedef struct VkDeviceQueueInfo2 {
5546     VkStructureType             sType;
5547     const void*                 pNext;
5548     VkDeviceQueueCreateFlags    flags;
5549     uint32_t                    queueFamilyIndex;
5550     uint32_t                    queueIndex;
5551 } VkDeviceQueueInfo2;
5552 
5553 typedef struct VkProtectedSubmitInfo {
5554     VkStructureType    sType;
5555     const void*        pNext;
5556     VkBool32           protectedSubmit;
5557 } VkProtectedSubmitInfo;
5558 
5559 typedef struct VkSamplerYcbcrConversionCreateInfo {
5560     VkStructureType                  sType;
5561     const void*                      pNext;
5562     VkFormat                         format;
5563     VkSamplerYcbcrModelConversion    ycbcrModel;
5564     VkSamplerYcbcrRange              ycbcrRange;
5565     VkComponentMapping               components;
5566     VkChromaLocation                 xChromaOffset;
5567     VkChromaLocation                 yChromaOffset;
5568     VkFilter                         chromaFilter;
5569     VkBool32                         forceExplicitReconstruction;
5570 } VkSamplerYcbcrConversionCreateInfo;
5571 
5572 typedef struct VkSamplerYcbcrConversionInfo {
5573     VkStructureType             sType;
5574     const void*                 pNext;
5575     VkSamplerYcbcrConversion    conversion;
5576 } VkSamplerYcbcrConversionInfo;
5577 
5578 typedef struct VkBindImagePlaneMemoryInfo {
5579     VkStructureType          sType;
5580     const void*              pNext;
5581     VkImageAspectFlagBits    planeAspect;
5582 } VkBindImagePlaneMemoryInfo;
5583 
5584 typedef struct VkImagePlaneMemoryRequirementsInfo {
5585     VkStructureType          sType;
5586     const void*              pNext;
5587     VkImageAspectFlagBits    planeAspect;
5588 } VkImagePlaneMemoryRequirementsInfo;
5589 
5590 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5591     VkStructureType    sType;
5592     void*              pNext;
5593     VkBool32           samplerYcbcrConversion;
5594 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
5595 
5596 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
5597     VkStructureType    sType;
5598     void*              pNext;
5599     uint32_t           combinedImageSamplerDescriptorCount;
5600 } VkSamplerYcbcrConversionImageFormatProperties;
5601 
5602 typedef struct VkDescriptorUpdateTemplateEntry {
5603     uint32_t            dstBinding;
5604     uint32_t            dstArrayElement;
5605     uint32_t            descriptorCount;
5606     VkDescriptorType    descriptorType;
5607     size_t              offset;
5608     size_t              stride;
5609 } VkDescriptorUpdateTemplateEntry;
5610 
5611 typedef struct VkDescriptorUpdateTemplateCreateInfo {
5612     VkStructureType                           sType;
5613     const void*                               pNext;
5614     VkDescriptorUpdateTemplateCreateFlags     flags;
5615     uint32_t                                  descriptorUpdateEntryCount;
5616     const VkDescriptorUpdateTemplateEntry*    pDescriptorUpdateEntries;
5617     VkDescriptorUpdateTemplateType            templateType;
5618     VkDescriptorSetLayout                     descriptorSetLayout;
5619     VkPipelineBindPoint                       pipelineBindPoint;
5620     VkPipelineLayout                          pipelineLayout;
5621     uint32_t                                  set;
5622 } VkDescriptorUpdateTemplateCreateInfo;
5623 
5624 typedef struct VkExternalMemoryProperties {
5625     VkExternalMemoryFeatureFlags       externalMemoryFeatures;
5626     VkExternalMemoryHandleTypeFlags    exportFromImportedHandleTypes;
5627     VkExternalMemoryHandleTypeFlags    compatibleHandleTypes;
5628 } VkExternalMemoryProperties;
5629 
5630 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
5631     VkStructureType                       sType;
5632     const void*                           pNext;
5633     VkExternalMemoryHandleTypeFlagBits    handleType;
5634 } VkPhysicalDeviceExternalImageFormatInfo;
5635 
5636 typedef struct VkExternalImageFormatProperties {
5637     VkStructureType               sType;
5638     void*                         pNext;
5639     VkExternalMemoryProperties    externalMemoryProperties;
5640 } VkExternalImageFormatProperties;
5641 
5642 typedef struct VkPhysicalDeviceExternalBufferInfo {
5643     VkStructureType                       sType;
5644     const void*                           pNext;
5645     VkBufferCreateFlags                   flags;
5646     VkBufferUsageFlags                    usage;
5647     VkExternalMemoryHandleTypeFlagBits    handleType;
5648 } VkPhysicalDeviceExternalBufferInfo;
5649 
5650 typedef struct VkExternalBufferProperties {
5651     VkStructureType               sType;
5652     void*                         pNext;
5653     VkExternalMemoryProperties    externalMemoryProperties;
5654 } VkExternalBufferProperties;
5655 
5656 typedef struct VkPhysicalDeviceIDProperties {
5657     VkStructureType    sType;
5658     void*              pNext;
5659     uint8_t            deviceUUID[VK_UUID_SIZE];
5660     uint8_t            driverUUID[VK_UUID_SIZE];
5661     uint8_t            deviceLUID[VK_LUID_SIZE];
5662     uint32_t           deviceNodeMask;
5663     VkBool32           deviceLUIDValid;
5664 } VkPhysicalDeviceIDProperties;
5665 
5666 typedef struct VkExternalMemoryImageCreateInfo {
5667     VkStructureType                    sType;
5668     const void*                        pNext;
5669     VkExternalMemoryHandleTypeFlags    handleTypes;
5670 } VkExternalMemoryImageCreateInfo;
5671 
5672 typedef struct VkExternalMemoryBufferCreateInfo {
5673     VkStructureType                    sType;
5674     const void*                        pNext;
5675     VkExternalMemoryHandleTypeFlags    handleTypes;
5676 } VkExternalMemoryBufferCreateInfo;
5677 
5678 typedef struct VkExportMemoryAllocateInfo {
5679     VkStructureType                    sType;
5680     const void*                        pNext;
5681     VkExternalMemoryHandleTypeFlags    handleTypes;
5682 } VkExportMemoryAllocateInfo;
5683 
5684 typedef struct VkPhysicalDeviceExternalFenceInfo {
5685     VkStructureType                      sType;
5686     const void*                          pNext;
5687     VkExternalFenceHandleTypeFlagBits    handleType;
5688 } VkPhysicalDeviceExternalFenceInfo;
5689 
5690 typedef struct VkExternalFenceProperties {
5691     VkStructureType                   sType;
5692     void*                             pNext;
5693     VkExternalFenceHandleTypeFlags    exportFromImportedHandleTypes;
5694     VkExternalFenceHandleTypeFlags    compatibleHandleTypes;
5695     VkExternalFenceFeatureFlags       externalFenceFeatures;
5696 } VkExternalFenceProperties;
5697 
5698 typedef struct VkExportFenceCreateInfo {
5699     VkStructureType                   sType;
5700     const void*                       pNext;
5701     VkExternalFenceHandleTypeFlags    handleTypes;
5702 } VkExportFenceCreateInfo;
5703 
5704 typedef struct VkExportSemaphoreCreateInfo {
5705     VkStructureType                       sType;
5706     const void*                           pNext;
5707     VkExternalSemaphoreHandleTypeFlags    handleTypes;
5708 } VkExportSemaphoreCreateInfo;
5709 
5710 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
5711     VkStructureType                          sType;
5712     const void*                              pNext;
5713     VkExternalSemaphoreHandleTypeFlagBits    handleType;
5714 } VkPhysicalDeviceExternalSemaphoreInfo;
5715 
5716 typedef struct VkExternalSemaphoreProperties {
5717     VkStructureType                       sType;
5718     void*                                 pNext;
5719     VkExternalSemaphoreHandleTypeFlags    exportFromImportedHandleTypes;
5720     VkExternalSemaphoreHandleTypeFlags    compatibleHandleTypes;
5721     VkExternalSemaphoreFeatureFlags       externalSemaphoreFeatures;
5722 } VkExternalSemaphoreProperties;
5723 
5724 typedef struct VkPhysicalDeviceMaintenance3Properties {
5725     VkStructureType    sType;
5726     void*              pNext;
5727     uint32_t           maxPerSetDescriptors;
5728     VkDeviceSize       maxMemoryAllocationSize;
5729 } VkPhysicalDeviceMaintenance3Properties;
5730 
5731 typedef struct VkDescriptorSetLayoutSupport {
5732     VkStructureType    sType;
5733     void*              pNext;
5734     VkBool32           supported;
5735 } VkDescriptorSetLayoutSupport;
5736 
5737 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
5738     VkStructureType    sType;
5739     void*              pNext;
5740     VkBool32           shaderDrawParameters;
5741 } VkPhysicalDeviceShaderDrawParametersFeatures;
5742 
5743 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
5744 
5745 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
5746 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
5747 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
5748 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
5749 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
5750 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);
5751 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
5752 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5753 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5754 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
5755 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
5756 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
5757 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
5758 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
5759 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
5760 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
5761 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
5762 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
5763 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
5764 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
5765 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
5766 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
5767 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
5768 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
5769 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
5770 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
5771 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
5772 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
5773 
5774 #ifndef VK_NO_PROTOTYPES
5775 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
5776     uint32_t*                                   pApiVersion);
5777 
5778 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
5779     VkDevice                                    device,
5780     uint32_t                                    bindInfoCount,
5781     const VkBindBufferMemoryInfo*               pBindInfos);
5782 
5783 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
5784     VkDevice                                    device,
5785     uint32_t                                    bindInfoCount,
5786     const VkBindImageMemoryInfo*                pBindInfos);
5787 
5788 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
5789     VkDevice                                    device,
5790     uint32_t                                    heapIndex,
5791     uint32_t                                    localDeviceIndex,
5792     uint32_t                                    remoteDeviceIndex,
5793     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
5794 
5795 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
5796     VkCommandBuffer                             commandBuffer,
5797     uint32_t                                    deviceMask);
5798 
5799 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
5800     VkCommandBuffer                             commandBuffer,
5801     uint32_t                                    baseGroupX,
5802     uint32_t                                    baseGroupY,
5803     uint32_t                                    baseGroupZ,
5804     uint32_t                                    groupCountX,
5805     uint32_t                                    groupCountY,
5806     uint32_t                                    groupCountZ);
5807 
5808 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
5809     VkInstance                                  instance,
5810     uint32_t*                                   pPhysicalDeviceGroupCount,
5811     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
5812 
5813 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
5814     VkDevice                                    device,
5815     const VkImageMemoryRequirementsInfo2*       pInfo,
5816     VkMemoryRequirements2*                      pMemoryRequirements);
5817 
5818 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
5819     VkDevice                                    device,
5820     const VkBufferMemoryRequirementsInfo2*      pInfo,
5821     VkMemoryRequirements2*                      pMemoryRequirements);
5822 
5823 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
5824     VkDevice                                    device,
5825     const VkImageSparseMemoryRequirementsInfo2* pInfo,
5826     uint32_t*                                   pSparseMemoryRequirementCount,
5827     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
5828 
5829 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
5830     VkPhysicalDevice                            physicalDevice,
5831     VkPhysicalDeviceFeatures2*                  pFeatures);
5832 
5833 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
5834     VkPhysicalDevice                            physicalDevice,
5835     VkPhysicalDeviceProperties2*                pProperties);
5836 
5837 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
5838     VkPhysicalDevice                            physicalDevice,
5839     VkFormat                                    format,
5840     VkFormatProperties2*                        pFormatProperties);
5841 
5842 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
5843     VkPhysicalDevice                            physicalDevice,
5844     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
5845     VkImageFormatProperties2*                   pImageFormatProperties);
5846 
5847 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
5848     VkPhysicalDevice                            physicalDevice,
5849     uint32_t*                                   pQueueFamilyPropertyCount,
5850     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
5851 
5852 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
5853     VkPhysicalDevice                            physicalDevice,
5854     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
5855 
5856 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
5857     VkPhysicalDevice                            physicalDevice,
5858     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
5859     uint32_t*                                   pPropertyCount,
5860     VkSparseImageFormatProperties2*             pProperties);
5861 
5862 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
5863     VkDevice                                    device,
5864     VkCommandPool                               commandPool,
5865     VkCommandPoolTrimFlags                      flags);
5866 
5867 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
5868     VkDevice                                    device,
5869     const VkDeviceQueueInfo2*                   pQueueInfo,
5870     VkQueue*                                    pQueue);
5871 
5872 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
5873     VkDevice                                    device,
5874     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
5875     const VkAllocationCallbacks*                pAllocator,
5876     VkSamplerYcbcrConversion*                   pYcbcrConversion);
5877 
5878 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
5879     VkDevice                                    device,
5880     VkSamplerYcbcrConversion                    ycbcrConversion,
5881     const VkAllocationCallbacks*                pAllocator);
5882 
5883 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
5884     VkDevice                                    device,
5885     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
5886     const VkAllocationCallbacks*                pAllocator,
5887     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
5888 
5889 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
5890     VkDevice                                    device,
5891     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
5892     const VkAllocationCallbacks*                pAllocator);
5893 
5894 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
5895     VkDevice                                    device,
5896     VkDescriptorSet                             descriptorSet,
5897     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
5898     const void*                                 pData);
5899 
5900 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
5901     VkPhysicalDevice                            physicalDevice,
5902     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
5903     VkExternalBufferProperties*                 pExternalBufferProperties);
5904 
5905 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
5906     VkPhysicalDevice                            physicalDevice,
5907     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
5908     VkExternalFenceProperties*                  pExternalFenceProperties);
5909 
5910 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
5911     VkPhysicalDevice                            physicalDevice,
5912     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
5913     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
5914 
5915 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
5916     VkDevice                                    device,
5917     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
5918     VkDescriptorSetLayoutSupport*               pSupport);
5919 #endif
5920 
5921 
5922 // VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
5923 #define VK_VERSION_1_2 1
5924 // Vulkan 1.2 version number
5925 #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
5926 
5927 #define VK_MAX_DRIVER_NAME_SIZE           256U
5928 #define VK_MAX_DRIVER_INFO_SIZE           256U
5929 
5930 typedef enum VkDriverId {
5931     VK_DRIVER_ID_AMD_PROPRIETARY = 1,
5932     VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
5933     VK_DRIVER_ID_MESA_RADV = 3,
5934     VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
5935     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
5936     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
5937     VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
5938     VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
5939     VK_DRIVER_ID_ARM_PROPRIETARY = 9,
5940     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
5941     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
5942     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
5943     VK_DRIVER_ID_MESA_LLVMPIPE = 13,
5944     VK_DRIVER_ID_MOLTENVK = 14,
5945     VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
5946     VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
5947     VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
5948     VK_DRIVER_ID_MESA_TURNIP = 18,
5949     VK_DRIVER_ID_MESA_V3DV = 19,
5950     VK_DRIVER_ID_MESA_PANVK = 20,
5951     VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
5952     VK_DRIVER_ID_MESA_VENUS = 22,
5953     VK_DRIVER_ID_MESA_DOZEN = 23,
5954     VK_DRIVER_ID_MESA_NVK = 24,
5955     VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
5956     VK_DRIVER_ID_MESA_HONEYKRISP = 26,
5957     VK_DRIVER_ID_RESERVED_27 = 27,
5958     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
5959     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
5960     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
5961     VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
5962     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
5963     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
5964     VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
5965     VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
5966     VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
5967     VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
5968     VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
5969     VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
5970     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
5971 } VkDriverId;
5972 
5973 typedef enum VkShaderFloatControlsIndependence {
5974     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
5975     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
5976     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
5977     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
5978     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
5979     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
5980     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
5981 } VkShaderFloatControlsIndependence;
5982 
5983 typedef enum VkSamplerReductionMode {
5984     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
5985     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
5986     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
5987     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
5988     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
5989     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
5990     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
5991     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
5992 } VkSamplerReductionMode;
5993 
5994 typedef enum VkSemaphoreType {
5995     VK_SEMAPHORE_TYPE_BINARY = 0,
5996     VK_SEMAPHORE_TYPE_TIMELINE = 1,
5997     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
5998     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
5999     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
6000 } VkSemaphoreType;
6001 
6002 typedef enum VkResolveModeFlagBits {
6003     VK_RESOLVE_MODE_NONE = 0,
6004     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
6005     VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
6006     VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
6007     VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
6008     VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 0x00000010,
6009     VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
6010     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
6011     VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
6012     VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
6013     VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
6014     VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6015 } VkResolveModeFlagBits;
6016 typedef VkFlags VkResolveModeFlags;
6017 
6018 typedef enum VkDescriptorBindingFlagBits {
6019     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
6020     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
6021     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
6022     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
6023     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
6024     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
6025     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
6026     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
6027     VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6028 } VkDescriptorBindingFlagBits;
6029 typedef VkFlags VkDescriptorBindingFlags;
6030 
6031 typedef enum VkSemaphoreWaitFlagBits {
6032     VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
6033     VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
6034     VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6035 } VkSemaphoreWaitFlagBits;
6036 typedef VkFlags VkSemaphoreWaitFlags;
6037 typedef struct VkPhysicalDeviceVulkan11Features {
6038     VkStructureType    sType;
6039     void*              pNext;
6040     VkBool32           storageBuffer16BitAccess;
6041     VkBool32           uniformAndStorageBuffer16BitAccess;
6042     VkBool32           storagePushConstant16;
6043     VkBool32           storageInputOutput16;
6044     VkBool32           multiview;
6045     VkBool32           multiviewGeometryShader;
6046     VkBool32           multiviewTessellationShader;
6047     VkBool32           variablePointersStorageBuffer;
6048     VkBool32           variablePointers;
6049     VkBool32           protectedMemory;
6050     VkBool32           samplerYcbcrConversion;
6051     VkBool32           shaderDrawParameters;
6052 } VkPhysicalDeviceVulkan11Features;
6053 
6054 typedef struct VkPhysicalDeviceVulkan11Properties {
6055     VkStructureType            sType;
6056     void*                      pNext;
6057     uint8_t                    deviceUUID[VK_UUID_SIZE];
6058     uint8_t                    driverUUID[VK_UUID_SIZE];
6059     uint8_t                    deviceLUID[VK_LUID_SIZE];
6060     uint32_t                   deviceNodeMask;
6061     VkBool32                   deviceLUIDValid;
6062     uint32_t                   subgroupSize;
6063     VkShaderStageFlags         subgroupSupportedStages;
6064     VkSubgroupFeatureFlags     subgroupSupportedOperations;
6065     VkBool32                   subgroupQuadOperationsInAllStages;
6066     VkPointClippingBehavior    pointClippingBehavior;
6067     uint32_t                   maxMultiviewViewCount;
6068     uint32_t                   maxMultiviewInstanceIndex;
6069     VkBool32                   protectedNoFault;
6070     uint32_t                   maxPerSetDescriptors;
6071     VkDeviceSize               maxMemoryAllocationSize;
6072 } VkPhysicalDeviceVulkan11Properties;
6073 
6074 typedef struct VkPhysicalDeviceVulkan12Features {
6075     VkStructureType    sType;
6076     void*              pNext;
6077     VkBool32           samplerMirrorClampToEdge;
6078     VkBool32           drawIndirectCount;
6079     VkBool32           storageBuffer8BitAccess;
6080     VkBool32           uniformAndStorageBuffer8BitAccess;
6081     VkBool32           storagePushConstant8;
6082     VkBool32           shaderBufferInt64Atomics;
6083     VkBool32           shaderSharedInt64Atomics;
6084     VkBool32           shaderFloat16;
6085     VkBool32           shaderInt8;
6086     VkBool32           descriptorIndexing;
6087     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
6088     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
6089     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
6090     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
6091     VkBool32           shaderSampledImageArrayNonUniformIndexing;
6092     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
6093     VkBool32           shaderStorageImageArrayNonUniformIndexing;
6094     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
6095     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
6096     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
6097     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
6098     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
6099     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
6100     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
6101     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
6102     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
6103     VkBool32           descriptorBindingUpdateUnusedWhilePending;
6104     VkBool32           descriptorBindingPartiallyBound;
6105     VkBool32           descriptorBindingVariableDescriptorCount;
6106     VkBool32           runtimeDescriptorArray;
6107     VkBool32           samplerFilterMinmax;
6108     VkBool32           scalarBlockLayout;
6109     VkBool32           imagelessFramebuffer;
6110     VkBool32           uniformBufferStandardLayout;
6111     VkBool32           shaderSubgroupExtendedTypes;
6112     VkBool32           separateDepthStencilLayouts;
6113     VkBool32           hostQueryReset;
6114     VkBool32           timelineSemaphore;
6115     VkBool32           bufferDeviceAddress;
6116     VkBool32           bufferDeviceAddressCaptureReplay;
6117     VkBool32           bufferDeviceAddressMultiDevice;
6118     VkBool32           vulkanMemoryModel;
6119     VkBool32           vulkanMemoryModelDeviceScope;
6120     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
6121     VkBool32           shaderOutputViewportIndex;
6122     VkBool32           shaderOutputLayer;
6123     VkBool32           subgroupBroadcastDynamicId;
6124 } VkPhysicalDeviceVulkan12Features;
6125 
6126 typedef struct VkConformanceVersion {
6127     uint8_t    major;
6128     uint8_t    minor;
6129     uint8_t    subminor;
6130     uint8_t    patch;
6131 } VkConformanceVersion;
6132 
6133 typedef struct VkPhysicalDeviceVulkan12Properties {
6134     VkStructureType                      sType;
6135     void*                                pNext;
6136     VkDriverId                           driverID;
6137     char                                 driverName[VK_MAX_DRIVER_NAME_SIZE];
6138     char                                 driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6139     VkConformanceVersion                 conformanceVersion;
6140     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
6141     VkShaderFloatControlsIndependence    roundingModeIndependence;
6142     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
6143     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
6144     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
6145     VkBool32                             shaderDenormPreserveFloat16;
6146     VkBool32                             shaderDenormPreserveFloat32;
6147     VkBool32                             shaderDenormPreserveFloat64;
6148     VkBool32                             shaderDenormFlushToZeroFloat16;
6149     VkBool32                             shaderDenormFlushToZeroFloat32;
6150     VkBool32                             shaderDenormFlushToZeroFloat64;
6151     VkBool32                             shaderRoundingModeRTEFloat16;
6152     VkBool32                             shaderRoundingModeRTEFloat32;
6153     VkBool32                             shaderRoundingModeRTEFloat64;
6154     VkBool32                             shaderRoundingModeRTZFloat16;
6155     VkBool32                             shaderRoundingModeRTZFloat32;
6156     VkBool32                             shaderRoundingModeRTZFloat64;
6157     uint32_t                             maxUpdateAfterBindDescriptorsInAllPools;
6158     VkBool32                             shaderUniformBufferArrayNonUniformIndexingNative;
6159     VkBool32                             shaderSampledImageArrayNonUniformIndexingNative;
6160     VkBool32                             shaderStorageBufferArrayNonUniformIndexingNative;
6161     VkBool32                             shaderStorageImageArrayNonUniformIndexingNative;
6162     VkBool32                             shaderInputAttachmentArrayNonUniformIndexingNative;
6163     VkBool32                             robustBufferAccessUpdateAfterBind;
6164     VkBool32                             quadDivergentImplicitLod;
6165     uint32_t                             maxPerStageDescriptorUpdateAfterBindSamplers;
6166     uint32_t                             maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6167     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6168     uint32_t                             maxPerStageDescriptorUpdateAfterBindSampledImages;
6169     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageImages;
6170     uint32_t                             maxPerStageDescriptorUpdateAfterBindInputAttachments;
6171     uint32_t                             maxPerStageUpdateAfterBindResources;
6172     uint32_t                             maxDescriptorSetUpdateAfterBindSamplers;
6173     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffers;
6174     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6175     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffers;
6176     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6177     uint32_t                             maxDescriptorSetUpdateAfterBindSampledImages;
6178     uint32_t                             maxDescriptorSetUpdateAfterBindStorageImages;
6179     uint32_t                             maxDescriptorSetUpdateAfterBindInputAttachments;
6180     VkResolveModeFlags                   supportedDepthResolveModes;
6181     VkResolveModeFlags                   supportedStencilResolveModes;
6182     VkBool32                             independentResolveNone;
6183     VkBool32                             independentResolve;
6184     VkBool32                             filterMinmaxSingleComponentFormats;
6185     VkBool32                             filterMinmaxImageComponentMapping;
6186     uint64_t                             maxTimelineSemaphoreValueDifference;
6187     VkSampleCountFlags                   framebufferIntegerColorSampleCounts;
6188 } VkPhysicalDeviceVulkan12Properties;
6189 
6190 typedef struct VkImageFormatListCreateInfo {
6191     VkStructureType    sType;
6192     const void*        pNext;
6193     uint32_t           viewFormatCount;
6194     const VkFormat*    pViewFormats;
6195 } VkImageFormatListCreateInfo;
6196 
6197 typedef struct VkAttachmentDescription2 {
6198     VkStructureType                 sType;
6199     const void*                     pNext;
6200     VkAttachmentDescriptionFlags    flags;
6201     VkFormat                        format;
6202     VkSampleCountFlagBits           samples;
6203     VkAttachmentLoadOp              loadOp;
6204     VkAttachmentStoreOp             storeOp;
6205     VkAttachmentLoadOp              stencilLoadOp;
6206     VkAttachmentStoreOp             stencilStoreOp;
6207     VkImageLayout                   initialLayout;
6208     VkImageLayout                   finalLayout;
6209 } VkAttachmentDescription2;
6210 
6211 typedef struct VkAttachmentReference2 {
6212     VkStructureType       sType;
6213     const void*           pNext;
6214     uint32_t              attachment;
6215     VkImageLayout         layout;
6216     VkImageAspectFlags    aspectMask;
6217 } VkAttachmentReference2;
6218 
6219 typedef struct VkSubpassDescription2 {
6220     VkStructureType                  sType;
6221     const void*                      pNext;
6222     VkSubpassDescriptionFlags        flags;
6223     VkPipelineBindPoint              pipelineBindPoint;
6224     uint32_t                         viewMask;
6225     uint32_t                         inputAttachmentCount;
6226     const VkAttachmentReference2*    pInputAttachments;
6227     uint32_t                         colorAttachmentCount;
6228     const VkAttachmentReference2*    pColorAttachments;
6229     const VkAttachmentReference2*    pResolveAttachments;
6230     const VkAttachmentReference2*    pDepthStencilAttachment;
6231     uint32_t                         preserveAttachmentCount;
6232     const uint32_t*                  pPreserveAttachments;
6233 } VkSubpassDescription2;
6234 
6235 typedef struct VkSubpassDependency2 {
6236     VkStructureType         sType;
6237     const void*             pNext;
6238     uint32_t                srcSubpass;
6239     uint32_t                dstSubpass;
6240     VkPipelineStageFlags    srcStageMask;
6241     VkPipelineStageFlags    dstStageMask;
6242     VkAccessFlags           srcAccessMask;
6243     VkAccessFlags           dstAccessMask;
6244     VkDependencyFlags       dependencyFlags;
6245     int32_t                 viewOffset;
6246 } VkSubpassDependency2;
6247 
6248 typedef struct VkRenderPassCreateInfo2 {
6249     VkStructureType                    sType;
6250     const void*                        pNext;
6251     VkRenderPassCreateFlags            flags;
6252     uint32_t                           attachmentCount;
6253     const VkAttachmentDescription2*    pAttachments;
6254     uint32_t                           subpassCount;
6255     const VkSubpassDescription2*       pSubpasses;
6256     uint32_t                           dependencyCount;
6257     const VkSubpassDependency2*        pDependencies;
6258     uint32_t                           correlatedViewMaskCount;
6259     const uint32_t*                    pCorrelatedViewMasks;
6260 } VkRenderPassCreateInfo2;
6261 
6262 typedef struct VkSubpassBeginInfo {
6263     VkStructureType      sType;
6264     const void*          pNext;
6265     VkSubpassContents    contents;
6266 } VkSubpassBeginInfo;
6267 
6268 typedef struct VkSubpassEndInfo {
6269     VkStructureType    sType;
6270     const void*        pNext;
6271 } VkSubpassEndInfo;
6272 
6273 typedef struct VkPhysicalDevice8BitStorageFeatures {
6274     VkStructureType    sType;
6275     void*              pNext;
6276     VkBool32           storageBuffer8BitAccess;
6277     VkBool32           uniformAndStorageBuffer8BitAccess;
6278     VkBool32           storagePushConstant8;
6279 } VkPhysicalDevice8BitStorageFeatures;
6280 
6281 typedef struct VkPhysicalDeviceDriverProperties {
6282     VkStructureType         sType;
6283     void*                   pNext;
6284     VkDriverId              driverID;
6285     char                    driverName[VK_MAX_DRIVER_NAME_SIZE];
6286     char                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6287     VkConformanceVersion    conformanceVersion;
6288 } VkPhysicalDeviceDriverProperties;
6289 
6290 typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6291     VkStructureType    sType;
6292     void*              pNext;
6293     VkBool32           shaderBufferInt64Atomics;
6294     VkBool32           shaderSharedInt64Atomics;
6295 } VkPhysicalDeviceShaderAtomicInt64Features;
6296 
6297 typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6298     VkStructureType    sType;
6299     void*              pNext;
6300     VkBool32           shaderFloat16;
6301     VkBool32           shaderInt8;
6302 } VkPhysicalDeviceShaderFloat16Int8Features;
6303 
6304 typedef struct VkPhysicalDeviceFloatControlsProperties {
6305     VkStructureType                      sType;
6306     void*                                pNext;
6307     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
6308     VkShaderFloatControlsIndependence    roundingModeIndependence;
6309     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
6310     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
6311     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
6312     VkBool32                             shaderDenormPreserveFloat16;
6313     VkBool32                             shaderDenormPreserveFloat32;
6314     VkBool32                             shaderDenormPreserveFloat64;
6315     VkBool32                             shaderDenormFlushToZeroFloat16;
6316     VkBool32                             shaderDenormFlushToZeroFloat32;
6317     VkBool32                             shaderDenormFlushToZeroFloat64;
6318     VkBool32                             shaderRoundingModeRTEFloat16;
6319     VkBool32                             shaderRoundingModeRTEFloat32;
6320     VkBool32                             shaderRoundingModeRTEFloat64;
6321     VkBool32                             shaderRoundingModeRTZFloat16;
6322     VkBool32                             shaderRoundingModeRTZFloat32;
6323     VkBool32                             shaderRoundingModeRTZFloat64;
6324 } VkPhysicalDeviceFloatControlsProperties;
6325 
6326 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6327     VkStructureType                    sType;
6328     const void*                        pNext;
6329     uint32_t                           bindingCount;
6330     const VkDescriptorBindingFlags*    pBindingFlags;
6331 } VkDescriptorSetLayoutBindingFlagsCreateInfo;
6332 
6333 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6334     VkStructureType    sType;
6335     void*              pNext;
6336     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
6337     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
6338     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
6339     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
6340     VkBool32           shaderSampledImageArrayNonUniformIndexing;
6341     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
6342     VkBool32           shaderStorageImageArrayNonUniformIndexing;
6343     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
6344     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
6345     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
6346     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
6347     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
6348     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
6349     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
6350     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
6351     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
6352     VkBool32           descriptorBindingUpdateUnusedWhilePending;
6353     VkBool32           descriptorBindingPartiallyBound;
6354     VkBool32           descriptorBindingVariableDescriptorCount;
6355     VkBool32           runtimeDescriptorArray;
6356 } VkPhysicalDeviceDescriptorIndexingFeatures;
6357 
6358 typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6359     VkStructureType    sType;
6360     void*              pNext;
6361     uint32_t           maxUpdateAfterBindDescriptorsInAllPools;
6362     VkBool32           shaderUniformBufferArrayNonUniformIndexingNative;
6363     VkBool32           shaderSampledImageArrayNonUniformIndexingNative;
6364     VkBool32           shaderStorageBufferArrayNonUniformIndexingNative;
6365     VkBool32           shaderStorageImageArrayNonUniformIndexingNative;
6366     VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative;
6367     VkBool32           robustBufferAccessUpdateAfterBind;
6368     VkBool32           quadDivergentImplicitLod;
6369     uint32_t           maxPerStageDescriptorUpdateAfterBindSamplers;
6370     uint32_t           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6371     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6372     uint32_t           maxPerStageDescriptorUpdateAfterBindSampledImages;
6373     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageImages;
6374     uint32_t           maxPerStageDescriptorUpdateAfterBindInputAttachments;
6375     uint32_t           maxPerStageUpdateAfterBindResources;
6376     uint32_t           maxDescriptorSetUpdateAfterBindSamplers;
6377     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffers;
6378     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6379     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffers;
6380     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6381     uint32_t           maxDescriptorSetUpdateAfterBindSampledImages;
6382     uint32_t           maxDescriptorSetUpdateAfterBindStorageImages;
6383     uint32_t           maxDescriptorSetUpdateAfterBindInputAttachments;
6384 } VkPhysicalDeviceDescriptorIndexingProperties;
6385 
6386 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6387     VkStructureType    sType;
6388     const void*        pNext;
6389     uint32_t           descriptorSetCount;
6390     const uint32_t*    pDescriptorCounts;
6391 } VkDescriptorSetVariableDescriptorCountAllocateInfo;
6392 
6393 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6394     VkStructureType    sType;
6395     void*              pNext;
6396     uint32_t           maxVariableDescriptorCount;
6397 } VkDescriptorSetVariableDescriptorCountLayoutSupport;
6398 
6399 typedef struct VkSubpassDescriptionDepthStencilResolve {
6400     VkStructureType                  sType;
6401     const void*                      pNext;
6402     VkResolveModeFlagBits            depthResolveMode;
6403     VkResolveModeFlagBits            stencilResolveMode;
6404     const VkAttachmentReference2*    pDepthStencilResolveAttachment;
6405 } VkSubpassDescriptionDepthStencilResolve;
6406 
6407 typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6408     VkStructureType       sType;
6409     void*                 pNext;
6410     VkResolveModeFlags    supportedDepthResolveModes;
6411     VkResolveModeFlags    supportedStencilResolveModes;
6412     VkBool32              independentResolveNone;
6413     VkBool32              independentResolve;
6414 } VkPhysicalDeviceDepthStencilResolveProperties;
6415 
6416 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
6417     VkStructureType    sType;
6418     void*              pNext;
6419     VkBool32           scalarBlockLayout;
6420 } VkPhysicalDeviceScalarBlockLayoutFeatures;
6421 
6422 typedef struct VkImageStencilUsageCreateInfo {
6423     VkStructureType      sType;
6424     const void*          pNext;
6425     VkImageUsageFlags    stencilUsage;
6426 } VkImageStencilUsageCreateInfo;
6427 
6428 typedef struct VkSamplerReductionModeCreateInfo {
6429     VkStructureType           sType;
6430     const void*               pNext;
6431     VkSamplerReductionMode    reductionMode;
6432 } VkSamplerReductionModeCreateInfo;
6433 
6434 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
6435     VkStructureType    sType;
6436     void*              pNext;
6437     VkBool32           filterMinmaxSingleComponentFormats;
6438     VkBool32           filterMinmaxImageComponentMapping;
6439 } VkPhysicalDeviceSamplerFilterMinmaxProperties;
6440 
6441 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
6442     VkStructureType    sType;
6443     void*              pNext;
6444     VkBool32           vulkanMemoryModel;
6445     VkBool32           vulkanMemoryModelDeviceScope;
6446     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
6447 } VkPhysicalDeviceVulkanMemoryModelFeatures;
6448 
6449 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
6450     VkStructureType    sType;
6451     void*              pNext;
6452     VkBool32           imagelessFramebuffer;
6453 } VkPhysicalDeviceImagelessFramebufferFeatures;
6454 
6455 typedef struct VkFramebufferAttachmentImageInfo {
6456     VkStructureType       sType;
6457     const void*           pNext;
6458     VkImageCreateFlags    flags;
6459     VkImageUsageFlags     usage;
6460     uint32_t              width;
6461     uint32_t              height;
6462     uint32_t              layerCount;
6463     uint32_t              viewFormatCount;
6464     const VkFormat*       pViewFormats;
6465 } VkFramebufferAttachmentImageInfo;
6466 
6467 typedef struct VkFramebufferAttachmentsCreateInfo {
6468     VkStructureType                            sType;
6469     const void*                                pNext;
6470     uint32_t                                   attachmentImageInfoCount;
6471     const VkFramebufferAttachmentImageInfo*    pAttachmentImageInfos;
6472 } VkFramebufferAttachmentsCreateInfo;
6473 
6474 typedef struct VkRenderPassAttachmentBeginInfo {
6475     VkStructureType       sType;
6476     const void*           pNext;
6477     uint32_t              attachmentCount;
6478     const VkImageView*    pAttachments;
6479 } VkRenderPassAttachmentBeginInfo;
6480 
6481 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
6482     VkStructureType    sType;
6483     void*              pNext;
6484     VkBool32           uniformBufferStandardLayout;
6485 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
6486 
6487 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6488     VkStructureType    sType;
6489     void*              pNext;
6490     VkBool32           shaderSubgroupExtendedTypes;
6491 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6492 
6493 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
6494     VkStructureType    sType;
6495     void*              pNext;
6496     VkBool32           separateDepthStencilLayouts;
6497 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
6498 
6499 typedef struct VkAttachmentReferenceStencilLayout {
6500     VkStructureType    sType;
6501     void*              pNext;
6502     VkImageLayout      stencilLayout;
6503 } VkAttachmentReferenceStencilLayout;
6504 
6505 typedef struct VkAttachmentDescriptionStencilLayout {
6506     VkStructureType    sType;
6507     void*              pNext;
6508     VkImageLayout      stencilInitialLayout;
6509     VkImageLayout      stencilFinalLayout;
6510 } VkAttachmentDescriptionStencilLayout;
6511 
6512 typedef struct VkPhysicalDeviceHostQueryResetFeatures {
6513     VkStructureType    sType;
6514     void*              pNext;
6515     VkBool32           hostQueryReset;
6516 } VkPhysicalDeviceHostQueryResetFeatures;
6517 
6518 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
6519     VkStructureType    sType;
6520     void*              pNext;
6521     VkBool32           timelineSemaphore;
6522 } VkPhysicalDeviceTimelineSemaphoreFeatures;
6523 
6524 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
6525     VkStructureType    sType;
6526     void*              pNext;
6527     uint64_t           maxTimelineSemaphoreValueDifference;
6528 } VkPhysicalDeviceTimelineSemaphoreProperties;
6529 
6530 typedef struct VkSemaphoreTypeCreateInfo {
6531     VkStructureType    sType;
6532     const void*        pNext;
6533     VkSemaphoreType    semaphoreType;
6534     uint64_t           initialValue;
6535 } VkSemaphoreTypeCreateInfo;
6536 
6537 typedef struct VkTimelineSemaphoreSubmitInfo {
6538     VkStructureType    sType;
6539     const void*        pNext;
6540     uint32_t           waitSemaphoreValueCount;
6541     const uint64_t*    pWaitSemaphoreValues;
6542     uint32_t           signalSemaphoreValueCount;
6543     const uint64_t*    pSignalSemaphoreValues;
6544 } VkTimelineSemaphoreSubmitInfo;
6545 
6546 typedef struct VkSemaphoreWaitInfo {
6547     VkStructureType         sType;
6548     const void*             pNext;
6549     VkSemaphoreWaitFlags    flags;
6550     uint32_t                semaphoreCount;
6551     const VkSemaphore*      pSemaphores;
6552     const uint64_t*         pValues;
6553 } VkSemaphoreWaitInfo;
6554 
6555 typedef struct VkSemaphoreSignalInfo {
6556     VkStructureType    sType;
6557     const void*        pNext;
6558     VkSemaphore        semaphore;
6559     uint64_t           value;
6560 } VkSemaphoreSignalInfo;
6561 
6562 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
6563     VkStructureType    sType;
6564     void*              pNext;
6565     VkBool32           bufferDeviceAddress;
6566     VkBool32           bufferDeviceAddressCaptureReplay;
6567     VkBool32           bufferDeviceAddressMultiDevice;
6568 } VkPhysicalDeviceBufferDeviceAddressFeatures;
6569 
6570 typedef struct VkBufferDeviceAddressInfo {
6571     VkStructureType    sType;
6572     const void*        pNext;
6573     VkBuffer           buffer;
6574 } VkBufferDeviceAddressInfo;
6575 
6576 typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
6577     VkStructureType    sType;
6578     const void*        pNext;
6579     uint64_t           opaqueCaptureAddress;
6580 } VkBufferOpaqueCaptureAddressCreateInfo;
6581 
6582 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
6583     VkStructureType    sType;
6584     const void*        pNext;
6585     uint64_t           opaqueCaptureAddress;
6586 } VkMemoryOpaqueCaptureAddressAllocateInfo;
6587 
6588 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
6589     VkStructureType    sType;
6590     const void*        pNext;
6591     VkDeviceMemory     memory;
6592 } VkDeviceMemoryOpaqueCaptureAddressInfo;
6593 
6594 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6595 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6596 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6597 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
6598 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
6599 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
6600 typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
6601 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
6602 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
6603 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
6604 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6605 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6606 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6607 
6608 #ifndef VK_NO_PROTOTYPES
6609 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
6610     VkCommandBuffer                             commandBuffer,
6611     VkBuffer                                    buffer,
6612     VkDeviceSize                                offset,
6613     VkBuffer                                    countBuffer,
6614     VkDeviceSize                                countBufferOffset,
6615     uint32_t                                    maxDrawCount,
6616     uint32_t                                    stride);
6617 
6618 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
6619     VkCommandBuffer                             commandBuffer,
6620     VkBuffer                                    buffer,
6621     VkDeviceSize                                offset,
6622     VkBuffer                                    countBuffer,
6623     VkDeviceSize                                countBufferOffset,
6624     uint32_t                                    maxDrawCount,
6625     uint32_t                                    stride);
6626 
6627 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
6628     VkDevice                                    device,
6629     const VkRenderPassCreateInfo2*              pCreateInfo,
6630     const VkAllocationCallbacks*                pAllocator,
6631     VkRenderPass*                               pRenderPass);
6632 
6633 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
6634     VkCommandBuffer                             commandBuffer,
6635     const VkRenderPassBeginInfo*                pRenderPassBegin,
6636     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
6637 
6638 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
6639     VkCommandBuffer                             commandBuffer,
6640     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
6641     const VkSubpassEndInfo*                     pSubpassEndInfo);
6642 
6643 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
6644     VkCommandBuffer                             commandBuffer,
6645     const VkSubpassEndInfo*                     pSubpassEndInfo);
6646 
6647 VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
6648     VkDevice                                    device,
6649     VkQueryPool                                 queryPool,
6650     uint32_t                                    firstQuery,
6651     uint32_t                                    queryCount);
6652 
6653 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
6654     VkDevice                                    device,
6655     VkSemaphore                                 semaphore,
6656     uint64_t*                                   pValue);
6657 
6658 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
6659     VkDevice                                    device,
6660     const VkSemaphoreWaitInfo*                  pWaitInfo,
6661     uint64_t                                    timeout);
6662 
6663 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
6664     VkDevice                                    device,
6665     const VkSemaphoreSignalInfo*                pSignalInfo);
6666 
6667 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
6668     VkDevice                                    device,
6669     const VkBufferDeviceAddressInfo*            pInfo);
6670 
6671 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
6672     VkDevice                                    device,
6673     const VkBufferDeviceAddressInfo*            pInfo);
6674 
6675 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
6676     VkDevice                                    device,
6677     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6678 #endif
6679 
6680 
6681 // VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
6682 #define VK_VERSION_1_3 1
6683 // Vulkan 1.3 version number
6684 #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
6685 
6686 typedef uint64_t VkFlags64;
6687 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
6688 
6689 typedef enum VkPipelineCreationFeedbackFlagBits {
6690     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
6691     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
6692     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
6693     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
6694     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
6695     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
6696     VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6697 } VkPipelineCreationFeedbackFlagBits;
6698 typedef VkFlags VkPipelineCreationFeedbackFlags;
6699 
6700 typedef enum VkToolPurposeFlagBits {
6701     VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
6702     VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
6703     VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
6704     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
6705     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
6706     VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
6707     VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
6708     VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
6709     VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
6710     VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
6711     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
6712     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
6713     VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6714 } VkToolPurposeFlagBits;
6715 typedef VkFlags VkToolPurposeFlags;
6716 typedef VkFlags VkPrivateDataSlotCreateFlags;
6717 typedef VkFlags64 VkPipelineStageFlags2;
6718 
6719 // Flag bits for VkPipelineStageFlagBits2
6720 typedef VkFlags64 VkPipelineStageFlagBits2;
6721 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
6722 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
6723 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
6724 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
6725 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
6726 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
6727 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
6728 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
6729 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
6730 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
6731 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
6732 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
6733 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
6734 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
6735 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
6736 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
6737 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
6738 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
6739 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
6740 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
6741 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
6742 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
6743 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
6744 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
6745 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
6746 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
6747 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
6748 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
6749 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
6750 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
6751 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
6752 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
6753 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
6754 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
6755 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
6756 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
6757 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
6758 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
6759 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
6760 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
6761 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
6762 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
6763 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
6764 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
6765 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
6766 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
6767 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
6768 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
6769 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
6770 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
6771 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
6772 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
6773 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
6774 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
6775 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
6776 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
6777 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
6778 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT = 0x00020000ULL;
6779 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
6780 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
6781 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
6782 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
6783 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
6784 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
6785 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
6786 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
6787 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
6788 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
6789 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
6790 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
6791 // VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI is a deprecated alias
6792 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
6793 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
6794 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
6795 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
6796 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
6797 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
6798 
6799 typedef VkFlags64 VkAccessFlags2;
6800 
6801 // Flag bits for VkAccessFlagBits2
6802 typedef VkFlags64 VkAccessFlagBits2;
6803 static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
6804 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
6805 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
6806 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
6807 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
6808 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
6809 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
6810 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
6811 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
6812 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
6813 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
6814 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
6815 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
6816 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
6817 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
6818 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
6819 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
6820 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
6821 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
6822 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
6823 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
6824 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
6825 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
6826 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
6827 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
6828 static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
6829 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
6830 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
6831 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
6832 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
6833 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
6834 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
6835 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
6836 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
6837 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
6838 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
6839 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
6840 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
6841 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
6842 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
6843 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
6844 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
6845 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
6846 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
6847 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
6848 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
6849 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
6850 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
6851 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
6852 static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
6853 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
6854 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
6855 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000ULL;
6856 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000ULL;
6857 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
6858 static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
6859 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
6860 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
6861 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
6862 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
6863 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
6864 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
6865 static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
6866 static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
6867 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
6868 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
6869 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
6870 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
6871 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
6872 
6873 
6874 typedef enum VkSubmitFlagBits {
6875     VK_SUBMIT_PROTECTED_BIT = 0x00000001,
6876     VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
6877     VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6878 } VkSubmitFlagBits;
6879 typedef VkFlags VkSubmitFlags;
6880 
6881 typedef enum VkRenderingFlagBits {
6882     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
6883     VK_RENDERING_SUSPENDING_BIT = 0x00000002,
6884     VK_RENDERING_RESUMING_BIT = 0x00000004,
6885     VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
6886     VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010,
6887     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
6888     VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
6889     VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
6890     VK_RENDERING_CONTENTS_INLINE_BIT_EXT = VK_RENDERING_CONTENTS_INLINE_BIT_KHR,
6891     VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6892 } VkRenderingFlagBits;
6893 typedef VkFlags VkRenderingFlags;
6894 typedef VkFlags64 VkFormatFeatureFlags2;
6895 
6896 // Flag bits for VkFormatFeatureFlagBits2
6897 typedef VkFlags64 VkFormatFeatureFlagBits2;
6898 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
6899 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
6900 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
6901 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
6902 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
6903 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
6904 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
6905 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
6906 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
6907 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
6908 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
6909 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
6910 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
6911 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
6912 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
6913 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
6914 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
6915 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
6916 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
6917 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
6918 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
6919 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
6920 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
6921 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
6922 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
6923 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
6924 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
6925 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT = 0x400000000000ULL;
6926 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
6927 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
6928 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
6929 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
6930 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
6931 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
6932 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
6933 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
6934 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
6935 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
6936 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
6937 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
6938 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
6939 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
6940 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
6941 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
6942 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
6943 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
6944 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
6945 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
6946 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
6947 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
6948 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
6949 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
6950 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
6951 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
6952 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
6953 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
6954 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
6955 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
6956 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
6957 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
6958 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
6959 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
6960 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
6961 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
6962 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
6963 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
6964 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
6965 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
6966 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
6967 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
6968 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
6969 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000000000ULL;
6970 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000000000ULL;
6971 
6972 typedef struct VkPhysicalDeviceVulkan13Features {
6973     VkStructureType    sType;
6974     void*              pNext;
6975     VkBool32           robustImageAccess;
6976     VkBool32           inlineUniformBlock;
6977     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
6978     VkBool32           pipelineCreationCacheControl;
6979     VkBool32           privateData;
6980     VkBool32           shaderDemoteToHelperInvocation;
6981     VkBool32           shaderTerminateInvocation;
6982     VkBool32           subgroupSizeControl;
6983     VkBool32           computeFullSubgroups;
6984     VkBool32           synchronization2;
6985     VkBool32           textureCompressionASTC_HDR;
6986     VkBool32           shaderZeroInitializeWorkgroupMemory;
6987     VkBool32           dynamicRendering;
6988     VkBool32           shaderIntegerDotProduct;
6989     VkBool32           maintenance4;
6990 } VkPhysicalDeviceVulkan13Features;
6991 
6992 typedef struct VkPhysicalDeviceVulkan13Properties {
6993     VkStructureType       sType;
6994     void*                 pNext;
6995     uint32_t              minSubgroupSize;
6996     uint32_t              maxSubgroupSize;
6997     uint32_t              maxComputeWorkgroupSubgroups;
6998     VkShaderStageFlags    requiredSubgroupSizeStages;
6999     uint32_t              maxInlineUniformBlockSize;
7000     uint32_t              maxPerStageDescriptorInlineUniformBlocks;
7001     uint32_t              maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7002     uint32_t              maxDescriptorSetInlineUniformBlocks;
7003     uint32_t              maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7004     uint32_t              maxInlineUniformTotalSize;
7005     VkBool32              integerDotProduct8BitUnsignedAccelerated;
7006     VkBool32              integerDotProduct8BitSignedAccelerated;
7007     VkBool32              integerDotProduct8BitMixedSignednessAccelerated;
7008     VkBool32              integerDotProduct4x8BitPackedUnsignedAccelerated;
7009     VkBool32              integerDotProduct4x8BitPackedSignedAccelerated;
7010     VkBool32              integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7011     VkBool32              integerDotProduct16BitUnsignedAccelerated;
7012     VkBool32              integerDotProduct16BitSignedAccelerated;
7013     VkBool32              integerDotProduct16BitMixedSignednessAccelerated;
7014     VkBool32              integerDotProduct32BitUnsignedAccelerated;
7015     VkBool32              integerDotProduct32BitSignedAccelerated;
7016     VkBool32              integerDotProduct32BitMixedSignednessAccelerated;
7017     VkBool32              integerDotProduct64BitUnsignedAccelerated;
7018     VkBool32              integerDotProduct64BitSignedAccelerated;
7019     VkBool32              integerDotProduct64BitMixedSignednessAccelerated;
7020     VkBool32              integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7021     VkBool32              integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7022     VkBool32              integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7023     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7024     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7025     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7026     VkBool32              integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7027     VkBool32              integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7028     VkBool32              integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7029     VkBool32              integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7030     VkBool32              integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7031     VkBool32              integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7032     VkBool32              integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7033     VkBool32              integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7034     VkBool32              integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7035     VkDeviceSize          storageTexelBufferOffsetAlignmentBytes;
7036     VkBool32              storageTexelBufferOffsetSingleTexelAlignment;
7037     VkDeviceSize          uniformTexelBufferOffsetAlignmentBytes;
7038     VkBool32              uniformTexelBufferOffsetSingleTexelAlignment;
7039     VkDeviceSize          maxBufferSize;
7040 } VkPhysicalDeviceVulkan13Properties;
7041 
7042 typedef struct VkPipelineCreationFeedback {
7043     VkPipelineCreationFeedbackFlags    flags;
7044     uint64_t                           duration;
7045 } VkPipelineCreationFeedback;
7046 
7047 typedef struct VkPipelineCreationFeedbackCreateInfo {
7048     VkStructureType                sType;
7049     const void*                    pNext;
7050     VkPipelineCreationFeedback*    pPipelineCreationFeedback;
7051     uint32_t                       pipelineStageCreationFeedbackCount;
7052     VkPipelineCreationFeedback*    pPipelineStageCreationFeedbacks;
7053 } VkPipelineCreationFeedbackCreateInfo;
7054 
7055 typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
7056     VkStructureType    sType;
7057     void*              pNext;
7058     VkBool32           shaderTerminateInvocation;
7059 } VkPhysicalDeviceShaderTerminateInvocationFeatures;
7060 
7061 typedef struct VkPhysicalDeviceToolProperties {
7062     VkStructureType       sType;
7063     void*                 pNext;
7064     char                  name[VK_MAX_EXTENSION_NAME_SIZE];
7065     char                  version[VK_MAX_EXTENSION_NAME_SIZE];
7066     VkToolPurposeFlags    purposes;
7067     char                  description[VK_MAX_DESCRIPTION_SIZE];
7068     char                  layer[VK_MAX_EXTENSION_NAME_SIZE];
7069 } VkPhysicalDeviceToolProperties;
7070 
7071 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
7072     VkStructureType    sType;
7073     void*              pNext;
7074     VkBool32           shaderDemoteToHelperInvocation;
7075 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
7076 
7077 typedef struct VkPhysicalDevicePrivateDataFeatures {
7078     VkStructureType    sType;
7079     void*              pNext;
7080     VkBool32           privateData;
7081 } VkPhysicalDevicePrivateDataFeatures;
7082 
7083 typedef struct VkDevicePrivateDataCreateInfo {
7084     VkStructureType    sType;
7085     const void*        pNext;
7086     uint32_t           privateDataSlotRequestCount;
7087 } VkDevicePrivateDataCreateInfo;
7088 
7089 typedef struct VkPrivateDataSlotCreateInfo {
7090     VkStructureType                 sType;
7091     const void*                     pNext;
7092     VkPrivateDataSlotCreateFlags    flags;
7093 } VkPrivateDataSlotCreateInfo;
7094 
7095 typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
7096     VkStructureType    sType;
7097     void*              pNext;
7098     VkBool32           pipelineCreationCacheControl;
7099 } VkPhysicalDevicePipelineCreationCacheControlFeatures;
7100 
7101 typedef struct VkMemoryBarrier2 {
7102     VkStructureType          sType;
7103     const void*              pNext;
7104     VkPipelineStageFlags2    srcStageMask;
7105     VkAccessFlags2           srcAccessMask;
7106     VkPipelineStageFlags2    dstStageMask;
7107     VkAccessFlags2           dstAccessMask;
7108 } VkMemoryBarrier2;
7109 
7110 typedef struct VkBufferMemoryBarrier2 {
7111     VkStructureType          sType;
7112     const void*              pNext;
7113     VkPipelineStageFlags2    srcStageMask;
7114     VkAccessFlags2           srcAccessMask;
7115     VkPipelineStageFlags2    dstStageMask;
7116     VkAccessFlags2           dstAccessMask;
7117     uint32_t                 srcQueueFamilyIndex;
7118     uint32_t                 dstQueueFamilyIndex;
7119     VkBuffer                 buffer;
7120     VkDeviceSize             offset;
7121     VkDeviceSize             size;
7122 } VkBufferMemoryBarrier2;
7123 
7124 typedef struct VkImageMemoryBarrier2 {
7125     VkStructureType            sType;
7126     const void*                pNext;
7127     VkPipelineStageFlags2      srcStageMask;
7128     VkAccessFlags2             srcAccessMask;
7129     VkPipelineStageFlags2      dstStageMask;
7130     VkAccessFlags2             dstAccessMask;
7131     VkImageLayout              oldLayout;
7132     VkImageLayout              newLayout;
7133     uint32_t                   srcQueueFamilyIndex;
7134     uint32_t                   dstQueueFamilyIndex;
7135     VkImage                    image;
7136     VkImageSubresourceRange    subresourceRange;
7137 } VkImageMemoryBarrier2;
7138 
7139 typedef struct VkDependencyInfo {
7140     VkStructureType                  sType;
7141     const void*                      pNext;
7142     VkDependencyFlags                dependencyFlags;
7143     uint32_t                         memoryBarrierCount;
7144     const VkMemoryBarrier2*          pMemoryBarriers;
7145     uint32_t                         bufferMemoryBarrierCount;
7146     const VkBufferMemoryBarrier2*    pBufferMemoryBarriers;
7147     uint32_t                         imageMemoryBarrierCount;
7148     const VkImageMemoryBarrier2*     pImageMemoryBarriers;
7149 } VkDependencyInfo;
7150 
7151 typedef struct VkSemaphoreSubmitInfo {
7152     VkStructureType          sType;
7153     const void*              pNext;
7154     VkSemaphore              semaphore;
7155     uint64_t                 value;
7156     VkPipelineStageFlags2    stageMask;
7157     uint32_t                 deviceIndex;
7158 } VkSemaphoreSubmitInfo;
7159 
7160 typedef struct VkCommandBufferSubmitInfo {
7161     VkStructureType    sType;
7162     const void*        pNext;
7163     VkCommandBuffer    commandBuffer;
7164     uint32_t           deviceMask;
7165 } VkCommandBufferSubmitInfo;
7166 
7167 typedef struct VkSubmitInfo2 {
7168     VkStructureType                     sType;
7169     const void*                         pNext;
7170     VkSubmitFlags                       flags;
7171     uint32_t                            waitSemaphoreInfoCount;
7172     const VkSemaphoreSubmitInfo*        pWaitSemaphoreInfos;
7173     uint32_t                            commandBufferInfoCount;
7174     const VkCommandBufferSubmitInfo*    pCommandBufferInfos;
7175     uint32_t                            signalSemaphoreInfoCount;
7176     const VkSemaphoreSubmitInfo*        pSignalSemaphoreInfos;
7177 } VkSubmitInfo2;
7178 
7179 typedef struct VkPhysicalDeviceSynchronization2Features {
7180     VkStructureType    sType;
7181     void*              pNext;
7182     VkBool32           synchronization2;
7183 } VkPhysicalDeviceSynchronization2Features;
7184 
7185 typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
7186     VkStructureType    sType;
7187     void*              pNext;
7188     VkBool32           shaderZeroInitializeWorkgroupMemory;
7189 } VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
7190 
7191 typedef struct VkPhysicalDeviceImageRobustnessFeatures {
7192     VkStructureType    sType;
7193     void*              pNext;
7194     VkBool32           robustImageAccess;
7195 } VkPhysicalDeviceImageRobustnessFeatures;
7196 
7197 typedef struct VkBufferCopy2 {
7198     VkStructureType    sType;
7199     const void*        pNext;
7200     VkDeviceSize       srcOffset;
7201     VkDeviceSize       dstOffset;
7202     VkDeviceSize       size;
7203 } VkBufferCopy2;
7204 
7205 typedef struct VkCopyBufferInfo2 {
7206     VkStructureType         sType;
7207     const void*             pNext;
7208     VkBuffer                srcBuffer;
7209     VkBuffer                dstBuffer;
7210     uint32_t                regionCount;
7211     const VkBufferCopy2*    pRegions;
7212 } VkCopyBufferInfo2;
7213 
7214 typedef struct VkImageCopy2 {
7215     VkStructureType             sType;
7216     const void*                 pNext;
7217     VkImageSubresourceLayers    srcSubresource;
7218     VkOffset3D                  srcOffset;
7219     VkImageSubresourceLayers    dstSubresource;
7220     VkOffset3D                  dstOffset;
7221     VkExtent3D                  extent;
7222 } VkImageCopy2;
7223 
7224 typedef struct VkCopyImageInfo2 {
7225     VkStructureType        sType;
7226     const void*            pNext;
7227     VkImage                srcImage;
7228     VkImageLayout          srcImageLayout;
7229     VkImage                dstImage;
7230     VkImageLayout          dstImageLayout;
7231     uint32_t               regionCount;
7232     const VkImageCopy2*    pRegions;
7233 } VkCopyImageInfo2;
7234 
7235 typedef struct VkBufferImageCopy2 {
7236     VkStructureType             sType;
7237     const void*                 pNext;
7238     VkDeviceSize                bufferOffset;
7239     uint32_t                    bufferRowLength;
7240     uint32_t                    bufferImageHeight;
7241     VkImageSubresourceLayers    imageSubresource;
7242     VkOffset3D                  imageOffset;
7243     VkExtent3D                  imageExtent;
7244 } VkBufferImageCopy2;
7245 
7246 typedef struct VkCopyBufferToImageInfo2 {
7247     VkStructureType              sType;
7248     const void*                  pNext;
7249     VkBuffer                     srcBuffer;
7250     VkImage                      dstImage;
7251     VkImageLayout                dstImageLayout;
7252     uint32_t                     regionCount;
7253     const VkBufferImageCopy2*    pRegions;
7254 } VkCopyBufferToImageInfo2;
7255 
7256 typedef struct VkCopyImageToBufferInfo2 {
7257     VkStructureType              sType;
7258     const void*                  pNext;
7259     VkImage                      srcImage;
7260     VkImageLayout                srcImageLayout;
7261     VkBuffer                     dstBuffer;
7262     uint32_t                     regionCount;
7263     const VkBufferImageCopy2*    pRegions;
7264 } VkCopyImageToBufferInfo2;
7265 
7266 typedef struct VkImageBlit2 {
7267     VkStructureType             sType;
7268     const void*                 pNext;
7269     VkImageSubresourceLayers    srcSubresource;
7270     VkOffset3D                  srcOffsets[2];
7271     VkImageSubresourceLayers    dstSubresource;
7272     VkOffset3D                  dstOffsets[2];
7273 } VkImageBlit2;
7274 
7275 typedef struct VkBlitImageInfo2 {
7276     VkStructureType        sType;
7277     const void*            pNext;
7278     VkImage                srcImage;
7279     VkImageLayout          srcImageLayout;
7280     VkImage                dstImage;
7281     VkImageLayout          dstImageLayout;
7282     uint32_t               regionCount;
7283     const VkImageBlit2*    pRegions;
7284     VkFilter               filter;
7285 } VkBlitImageInfo2;
7286 
7287 typedef struct VkImageResolve2 {
7288     VkStructureType             sType;
7289     const void*                 pNext;
7290     VkImageSubresourceLayers    srcSubresource;
7291     VkOffset3D                  srcOffset;
7292     VkImageSubresourceLayers    dstSubresource;
7293     VkOffset3D                  dstOffset;
7294     VkExtent3D                  extent;
7295 } VkImageResolve2;
7296 
7297 typedef struct VkResolveImageInfo2 {
7298     VkStructureType           sType;
7299     const void*               pNext;
7300     VkImage                   srcImage;
7301     VkImageLayout             srcImageLayout;
7302     VkImage                   dstImage;
7303     VkImageLayout             dstImageLayout;
7304     uint32_t                  regionCount;
7305     const VkImageResolve2*    pRegions;
7306 } VkResolveImageInfo2;
7307 
7308 typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7309     VkStructureType    sType;
7310     void*              pNext;
7311     VkBool32           subgroupSizeControl;
7312     VkBool32           computeFullSubgroups;
7313 } VkPhysicalDeviceSubgroupSizeControlFeatures;
7314 
7315 typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7316     VkStructureType       sType;
7317     void*                 pNext;
7318     uint32_t              minSubgroupSize;
7319     uint32_t              maxSubgroupSize;
7320     uint32_t              maxComputeWorkgroupSubgroups;
7321     VkShaderStageFlags    requiredSubgroupSizeStages;
7322 } VkPhysicalDeviceSubgroupSizeControlProperties;
7323 
7324 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7325     VkStructureType    sType;
7326     void*              pNext;
7327     uint32_t           requiredSubgroupSize;
7328 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7329 
7330 typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7331     VkStructureType    sType;
7332     void*              pNext;
7333     VkBool32           inlineUniformBlock;
7334     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
7335 } VkPhysicalDeviceInlineUniformBlockFeatures;
7336 
7337 typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7338     VkStructureType    sType;
7339     void*              pNext;
7340     uint32_t           maxInlineUniformBlockSize;
7341     uint32_t           maxPerStageDescriptorInlineUniformBlocks;
7342     uint32_t           maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7343     uint32_t           maxDescriptorSetInlineUniformBlocks;
7344     uint32_t           maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7345 } VkPhysicalDeviceInlineUniformBlockProperties;
7346 
7347 typedef struct VkWriteDescriptorSetInlineUniformBlock {
7348     VkStructureType    sType;
7349     const void*        pNext;
7350     uint32_t           dataSize;
7351     const void*        pData;
7352 } VkWriteDescriptorSetInlineUniformBlock;
7353 
7354 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7355     VkStructureType    sType;
7356     const void*        pNext;
7357     uint32_t           maxInlineUniformBlockBindings;
7358 } VkDescriptorPoolInlineUniformBlockCreateInfo;
7359 
7360 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7361     VkStructureType    sType;
7362     void*              pNext;
7363     VkBool32           textureCompressionASTC_HDR;
7364 } VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7365 
7366 typedef struct VkRenderingAttachmentInfo {
7367     VkStructureType          sType;
7368     const void*              pNext;
7369     VkImageView              imageView;
7370     VkImageLayout            imageLayout;
7371     VkResolveModeFlagBits    resolveMode;
7372     VkImageView              resolveImageView;
7373     VkImageLayout            resolveImageLayout;
7374     VkAttachmentLoadOp       loadOp;
7375     VkAttachmentStoreOp      storeOp;
7376     VkClearValue             clearValue;
7377 } VkRenderingAttachmentInfo;
7378 
7379 typedef struct VkRenderingInfo {
7380     VkStructureType                     sType;
7381     const void*                         pNext;
7382     VkRenderingFlags                    flags;
7383     VkRect2D                            renderArea;
7384     uint32_t                            layerCount;
7385     uint32_t                            viewMask;
7386     uint32_t                            colorAttachmentCount;
7387     const VkRenderingAttachmentInfo*    pColorAttachments;
7388     const VkRenderingAttachmentInfo*    pDepthAttachment;
7389     const VkRenderingAttachmentInfo*    pStencilAttachment;
7390 } VkRenderingInfo;
7391 
7392 typedef struct VkPipelineRenderingCreateInfo {
7393     VkStructureType    sType;
7394     const void*        pNext;
7395     uint32_t           viewMask;
7396     uint32_t           colorAttachmentCount;
7397     const VkFormat*    pColorAttachmentFormats;
7398     VkFormat           depthAttachmentFormat;
7399     VkFormat           stencilAttachmentFormat;
7400 } VkPipelineRenderingCreateInfo;
7401 
7402 typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7403     VkStructureType    sType;
7404     void*              pNext;
7405     VkBool32           dynamicRendering;
7406 } VkPhysicalDeviceDynamicRenderingFeatures;
7407 
7408 typedef struct VkCommandBufferInheritanceRenderingInfo {
7409     VkStructureType          sType;
7410     const void*              pNext;
7411     VkRenderingFlags         flags;
7412     uint32_t                 viewMask;
7413     uint32_t                 colorAttachmentCount;
7414     const VkFormat*          pColorAttachmentFormats;
7415     VkFormat                 depthAttachmentFormat;
7416     VkFormat                 stencilAttachmentFormat;
7417     VkSampleCountFlagBits    rasterizationSamples;
7418 } VkCommandBufferInheritanceRenderingInfo;
7419 
7420 typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7421     VkStructureType    sType;
7422     void*              pNext;
7423     VkBool32           shaderIntegerDotProduct;
7424 } VkPhysicalDeviceShaderIntegerDotProductFeatures;
7425 
7426 typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
7427     VkStructureType    sType;
7428     void*              pNext;
7429     VkBool32           integerDotProduct8BitUnsignedAccelerated;
7430     VkBool32           integerDotProduct8BitSignedAccelerated;
7431     VkBool32           integerDotProduct8BitMixedSignednessAccelerated;
7432     VkBool32           integerDotProduct4x8BitPackedUnsignedAccelerated;
7433     VkBool32           integerDotProduct4x8BitPackedSignedAccelerated;
7434     VkBool32           integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7435     VkBool32           integerDotProduct16BitUnsignedAccelerated;
7436     VkBool32           integerDotProduct16BitSignedAccelerated;
7437     VkBool32           integerDotProduct16BitMixedSignednessAccelerated;
7438     VkBool32           integerDotProduct32BitUnsignedAccelerated;
7439     VkBool32           integerDotProduct32BitSignedAccelerated;
7440     VkBool32           integerDotProduct32BitMixedSignednessAccelerated;
7441     VkBool32           integerDotProduct64BitUnsignedAccelerated;
7442     VkBool32           integerDotProduct64BitSignedAccelerated;
7443     VkBool32           integerDotProduct64BitMixedSignednessAccelerated;
7444     VkBool32           integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7445     VkBool32           integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7446     VkBool32           integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7447     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7448     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7449     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7450     VkBool32           integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7451     VkBool32           integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7452     VkBool32           integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7453     VkBool32           integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7454     VkBool32           integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7455     VkBool32           integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7456     VkBool32           integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7457     VkBool32           integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7458     VkBool32           integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7459 } VkPhysicalDeviceShaderIntegerDotProductProperties;
7460 
7461 typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
7462     VkStructureType    sType;
7463     void*              pNext;
7464     VkDeviceSize       storageTexelBufferOffsetAlignmentBytes;
7465     VkBool32           storageTexelBufferOffsetSingleTexelAlignment;
7466     VkDeviceSize       uniformTexelBufferOffsetAlignmentBytes;
7467     VkBool32           uniformTexelBufferOffsetSingleTexelAlignment;
7468 } VkPhysicalDeviceTexelBufferAlignmentProperties;
7469 
7470 typedef struct VkFormatProperties3 {
7471     VkStructureType          sType;
7472     void*                    pNext;
7473     VkFormatFeatureFlags2    linearTilingFeatures;
7474     VkFormatFeatureFlags2    optimalTilingFeatures;
7475     VkFormatFeatureFlags2    bufferFeatures;
7476 } VkFormatProperties3;
7477 
7478 typedef struct VkPhysicalDeviceMaintenance4Features {
7479     VkStructureType    sType;
7480     void*              pNext;
7481     VkBool32           maintenance4;
7482 } VkPhysicalDeviceMaintenance4Features;
7483 
7484 typedef struct VkPhysicalDeviceMaintenance4Properties {
7485     VkStructureType    sType;
7486     void*              pNext;
7487     VkDeviceSize       maxBufferSize;
7488 } VkPhysicalDeviceMaintenance4Properties;
7489 
7490 typedef struct VkDeviceBufferMemoryRequirements {
7491     VkStructureType              sType;
7492     const void*                  pNext;
7493     const VkBufferCreateInfo*    pCreateInfo;
7494 } VkDeviceBufferMemoryRequirements;
7495 
7496 typedef struct VkDeviceImageMemoryRequirements {
7497     VkStructureType             sType;
7498     const void*                 pNext;
7499     const VkImageCreateInfo*    pCreateInfo;
7500     VkImageAspectFlagBits       planeAspect;
7501 } VkDeviceImageMemoryRequirements;
7502 
7503 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
7504 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
7505 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
7506 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
7507 typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
7508 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
7509 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
7510 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
7511 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
7512 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
7513 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
7514 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
7515 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
7516 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7517 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7518 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
7519 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
7520 typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
7521 typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer                   commandBuffer);
7522 typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
7523 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
7524 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
7525 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
7526 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
7527 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);
7528 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
7529 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
7530 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
7531 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
7532 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
7533 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
7534 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
7535 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
7536 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
7537 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7538 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7539 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7540 
7541 #ifndef VK_NO_PROTOTYPES
7542 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
7543     VkPhysicalDevice                            physicalDevice,
7544     uint32_t*                                   pToolCount,
7545     VkPhysicalDeviceToolProperties*             pToolProperties);
7546 
7547 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
7548     VkDevice                                    device,
7549     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
7550     const VkAllocationCallbacks*                pAllocator,
7551     VkPrivateDataSlot*                          pPrivateDataSlot);
7552 
7553 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
7554     VkDevice                                    device,
7555     VkPrivateDataSlot                           privateDataSlot,
7556     const VkAllocationCallbacks*                pAllocator);
7557 
7558 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
7559     VkDevice                                    device,
7560     VkObjectType                                objectType,
7561     uint64_t                                    objectHandle,
7562     VkPrivateDataSlot                           privateDataSlot,
7563     uint64_t                                    data);
7564 
7565 VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
7566     VkDevice                                    device,
7567     VkObjectType                                objectType,
7568     uint64_t                                    objectHandle,
7569     VkPrivateDataSlot                           privateDataSlot,
7570     uint64_t*                                   pData);
7571 
7572 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
7573     VkCommandBuffer                             commandBuffer,
7574     VkEvent                                     event,
7575     const VkDependencyInfo*                     pDependencyInfo);
7576 
7577 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
7578     VkCommandBuffer                             commandBuffer,
7579     VkEvent                                     event,
7580     VkPipelineStageFlags2                       stageMask);
7581 
7582 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
7583     VkCommandBuffer                             commandBuffer,
7584     uint32_t                                    eventCount,
7585     const VkEvent*                              pEvents,
7586     const VkDependencyInfo*                     pDependencyInfos);
7587 
7588 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
7589     VkCommandBuffer                             commandBuffer,
7590     const VkDependencyInfo*                     pDependencyInfo);
7591 
7592 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
7593     VkCommandBuffer                             commandBuffer,
7594     VkPipelineStageFlags2                       stage,
7595     VkQueryPool                                 queryPool,
7596     uint32_t                                    query);
7597 
7598 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
7599     VkQueue                                     queue,
7600     uint32_t                                    submitCount,
7601     const VkSubmitInfo2*                        pSubmits,
7602     VkFence                                     fence);
7603 
7604 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
7605     VkCommandBuffer                             commandBuffer,
7606     const VkCopyBufferInfo2*                    pCopyBufferInfo);
7607 
7608 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
7609     VkCommandBuffer                             commandBuffer,
7610     const VkCopyImageInfo2*                     pCopyImageInfo);
7611 
7612 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
7613     VkCommandBuffer                             commandBuffer,
7614     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
7615 
7616 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
7617     VkCommandBuffer                             commandBuffer,
7618     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
7619 
7620 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
7621     VkCommandBuffer                             commandBuffer,
7622     const VkBlitImageInfo2*                     pBlitImageInfo);
7623 
7624 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
7625     VkCommandBuffer                             commandBuffer,
7626     const VkResolveImageInfo2*                  pResolveImageInfo);
7627 
7628 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
7629     VkCommandBuffer                             commandBuffer,
7630     const VkRenderingInfo*                      pRenderingInfo);
7631 
7632 VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
7633     VkCommandBuffer                             commandBuffer);
7634 
7635 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
7636     VkCommandBuffer                             commandBuffer,
7637     VkCullModeFlags                             cullMode);
7638 
7639 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
7640     VkCommandBuffer                             commandBuffer,
7641     VkFrontFace                                 frontFace);
7642 
7643 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
7644     VkCommandBuffer                             commandBuffer,
7645     VkPrimitiveTopology                         primitiveTopology);
7646 
7647 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
7648     VkCommandBuffer                             commandBuffer,
7649     uint32_t                                    viewportCount,
7650     const VkViewport*                           pViewports);
7651 
7652 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
7653     VkCommandBuffer                             commandBuffer,
7654     uint32_t                                    scissorCount,
7655     const VkRect2D*                             pScissors);
7656 
7657 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
7658     VkCommandBuffer                             commandBuffer,
7659     uint32_t                                    firstBinding,
7660     uint32_t                                    bindingCount,
7661     const VkBuffer*                             pBuffers,
7662     const VkDeviceSize*                         pOffsets,
7663     const VkDeviceSize*                         pSizes,
7664     const VkDeviceSize*                         pStrides);
7665 
7666 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
7667     VkCommandBuffer                             commandBuffer,
7668     VkBool32                                    depthTestEnable);
7669 
7670 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
7671     VkCommandBuffer                             commandBuffer,
7672     VkBool32                                    depthWriteEnable);
7673 
7674 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
7675     VkCommandBuffer                             commandBuffer,
7676     VkCompareOp                                 depthCompareOp);
7677 
7678 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
7679     VkCommandBuffer                             commandBuffer,
7680     VkBool32                                    depthBoundsTestEnable);
7681 
7682 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
7683     VkCommandBuffer                             commandBuffer,
7684     VkBool32                                    stencilTestEnable);
7685 
7686 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
7687     VkCommandBuffer                             commandBuffer,
7688     VkStencilFaceFlags                          faceMask,
7689     VkStencilOp                                 failOp,
7690     VkStencilOp                                 passOp,
7691     VkStencilOp                                 depthFailOp,
7692     VkCompareOp                                 compareOp);
7693 
7694 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
7695     VkCommandBuffer                             commandBuffer,
7696     VkBool32                                    rasterizerDiscardEnable);
7697 
7698 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
7699     VkCommandBuffer                             commandBuffer,
7700     VkBool32                                    depthBiasEnable);
7701 
7702 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
7703     VkCommandBuffer                             commandBuffer,
7704     VkBool32                                    primitiveRestartEnable);
7705 
7706 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
7707     VkDevice                                    device,
7708     const VkDeviceBufferMemoryRequirements*     pInfo,
7709     VkMemoryRequirements2*                      pMemoryRequirements);
7710 
7711 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
7712     VkDevice                                    device,
7713     const VkDeviceImageMemoryRequirements*      pInfo,
7714     VkMemoryRequirements2*                      pMemoryRequirements);
7715 
7716 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
7717     VkDevice                                    device,
7718     const VkDeviceImageMemoryRequirements*      pInfo,
7719     uint32_t*                                   pSparseMemoryRequirementCount,
7720     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
7721 #endif
7722 
7723 
7724 // VK_VERSION_1_4 is a preprocessor guard. Do not pass it to API calls.
7725 #define VK_VERSION_1_4 1
7726 // Vulkan 1.4 version number
7727 #define VK_API_VERSION_1_4 VK_MAKE_API_VERSION(0, 1, 4, 0)// Patch version should always be set to 0
7728 
7729 #define VK_MAX_GLOBAL_PRIORITY_SIZE       16U
7730 
7731 typedef enum VkPipelineRobustnessBufferBehavior {
7732     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT = 0,
7733     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED = 1,
7734     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS = 2,
7735     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 = 3,
7736     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT,
7737     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
7738     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,
7739     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,
7740     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
7741 } VkPipelineRobustnessBufferBehavior;
7742 
7743 typedef enum VkPipelineRobustnessImageBehavior {
7744     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT = 0,
7745     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED = 1,
7746     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS = 2,
7747     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2 = 3,
7748     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT,
7749     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED,
7750     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS,
7751     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
7752     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
7753 } VkPipelineRobustnessImageBehavior;
7754 
7755 typedef enum VkQueueGlobalPriority {
7756     VK_QUEUE_GLOBAL_PRIORITY_LOW = 128,
7757     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM = 256,
7758     VK_QUEUE_GLOBAL_PRIORITY_HIGH = 512,
7759     VK_QUEUE_GLOBAL_PRIORITY_REALTIME = 1024,
7760     VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW,
7761     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
7762     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
7763     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
7764     VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = VK_QUEUE_GLOBAL_PRIORITY_LOW,
7765     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
7766     VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
7767     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
7768     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM = 0x7FFFFFFF
7769 } VkQueueGlobalPriority;
7770 
7771 typedef enum VkLineRasterizationMode {
7772     VK_LINE_RASTERIZATION_MODE_DEFAULT = 0,
7773     VK_LINE_RASTERIZATION_MODE_RECTANGULAR = 1,
7774     VK_LINE_RASTERIZATION_MODE_BRESENHAM = 2,
7775     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH = 3,
7776     VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT,
7777     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
7778     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
7779     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
7780     VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = VK_LINE_RASTERIZATION_MODE_DEFAULT,
7781     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
7782     VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
7783     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
7784     VK_LINE_RASTERIZATION_MODE_MAX_ENUM = 0x7FFFFFFF
7785 } VkLineRasterizationMode;
7786 
7787 typedef enum VkMemoryUnmapFlagBits {
7788     VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
7789     VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7790 } VkMemoryUnmapFlagBits;
7791 typedef VkFlags VkMemoryUnmapFlags;
7792 typedef VkFlags64 VkPipelineCreateFlags2;
7793 
7794 // Flag bits for VkPipelineCreateFlagBits2
7795 typedef VkFlags64 VkPipelineCreateFlagBits2;
7796 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT = 0x00000001ULL;
7797 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT = 0x00000002ULL;
7798 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT = 0x00000004ULL;
7799 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008ULL;
7800 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT = 0x00000010ULL;
7801 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100ULL;
7802 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200ULL;
7803 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT = 0x08000000ULL;
7804 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT = 0x40000000ULL;
7805 #ifdef VK_ENABLE_BETA_EXTENSIONS
7806 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX = 0x100000000ULL;
7807 #endif
7808 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL;
7809 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
7810 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
7811 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
7812 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
7813 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
7814 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
7815 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
7816 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
7817 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
7818 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
7819 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
7820 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
7821 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
7822 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
7823 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
7824 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
7825 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
7826 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
7827 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
7828 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
7829 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
7830 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
7831 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
7832 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
7833 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
7834 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
7835 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
7836 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
7837 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
7838 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
7839 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
7840 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
7841 static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = 0x4000000000ULL;
7842 
7843 typedef VkFlags64 VkBufferUsageFlags2;
7844 
7845 // Flag bits for VkBufferUsageFlagBits2
7846 typedef VkFlags64 VkBufferUsageFlagBits2;
7847 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT = 0x00000001ULL;
7848 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT = 0x00000002ULL;
7849 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004ULL;
7850 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000008ULL;
7851 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT = 0x00000010ULL;
7852 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT = 0x00000020ULL;
7853 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT = 0x00000040ULL;
7854 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT = 0x00000080ULL;
7855 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT = 0x00000100ULL;
7856 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT = 0x00020000ULL;
7857 #ifdef VK_ENABLE_BETA_EXTENSIONS
7858 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
7859 #endif
7860 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
7861 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
7862 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
7863 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
7864 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
7865 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
7866 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
7867 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
7868 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
7869 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
7870 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
7871 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
7872 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
7873 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
7874 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
7875 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
7876 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
7877 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
7878 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
7879 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
7880 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
7881 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
7882 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
7883 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
7884 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
7885 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
7886 static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = 0x80000000ULL;
7887 
7888 
7889 typedef enum VkHostImageCopyFlagBits {
7890     VK_HOST_IMAGE_COPY_MEMCPY = 0x00000001,
7891     VK_HOST_IMAGE_COPY_MEMCPY_EXT = VK_HOST_IMAGE_COPY_MEMCPY,
7892     VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7893 } VkHostImageCopyFlagBits;
7894 typedef VkFlags VkHostImageCopyFlags;
7895 typedef struct VkPhysicalDeviceVulkan14Features {
7896     VkStructureType    sType;
7897     void*              pNext;
7898     VkBool32           globalPriorityQuery;
7899     VkBool32           shaderSubgroupRotate;
7900     VkBool32           shaderSubgroupRotateClustered;
7901     VkBool32           shaderFloatControls2;
7902     VkBool32           shaderExpectAssume;
7903     VkBool32           rectangularLines;
7904     VkBool32           bresenhamLines;
7905     VkBool32           smoothLines;
7906     VkBool32           stippledRectangularLines;
7907     VkBool32           stippledBresenhamLines;
7908     VkBool32           stippledSmoothLines;
7909     VkBool32           vertexAttributeInstanceRateDivisor;
7910     VkBool32           vertexAttributeInstanceRateZeroDivisor;
7911     VkBool32           indexTypeUint8;
7912     VkBool32           dynamicRenderingLocalRead;
7913     VkBool32           maintenance5;
7914     VkBool32           maintenance6;
7915     VkBool32           pipelineProtectedAccess;
7916     VkBool32           pipelineRobustness;
7917     VkBool32           hostImageCopy;
7918     VkBool32           pushDescriptor;
7919 } VkPhysicalDeviceVulkan14Features;
7920 
7921 typedef struct VkPhysicalDeviceVulkan14Properties {
7922     VkStructureType                       sType;
7923     void*                                 pNext;
7924     uint32_t                              lineSubPixelPrecisionBits;
7925     uint32_t                              maxVertexAttribDivisor;
7926     VkBool32                              supportsNonZeroFirstInstance;
7927     uint32_t                              maxPushDescriptors;
7928     VkBool32                              dynamicRenderingLocalReadDepthStencilAttachments;
7929     VkBool32                              dynamicRenderingLocalReadMultisampledAttachments;
7930     VkBool32                              earlyFragmentMultisampleCoverageAfterSampleCounting;
7931     VkBool32                              earlyFragmentSampleMaskTestBeforeSampleCounting;
7932     VkBool32                              depthStencilSwizzleOneSupport;
7933     VkBool32                              polygonModePointSize;
7934     VkBool32                              nonStrictSinglePixelWideLinesUseParallelogram;
7935     VkBool32                              nonStrictWideLinesUseParallelogram;
7936     VkBool32                              blockTexelViewCompatibleMultipleLayers;
7937     uint32_t                              maxCombinedImageSamplerDescriptorCount;
7938     VkBool32                              fragmentShadingRateClampCombinerInputs;
7939     VkPipelineRobustnessBufferBehavior    defaultRobustnessStorageBuffers;
7940     VkPipelineRobustnessBufferBehavior    defaultRobustnessUniformBuffers;
7941     VkPipelineRobustnessBufferBehavior    defaultRobustnessVertexInputs;
7942     VkPipelineRobustnessImageBehavior     defaultRobustnessImages;
7943     uint32_t                              copySrcLayoutCount;
7944     VkImageLayout*                        pCopySrcLayouts;
7945     uint32_t                              copyDstLayoutCount;
7946     VkImageLayout*                        pCopyDstLayouts;
7947     uint8_t                               optimalTilingLayoutUUID[VK_UUID_SIZE];
7948     VkBool32                              identicalMemoryTypeRequirements;
7949 } VkPhysicalDeviceVulkan14Properties;
7950 
7951 typedef struct VkDeviceQueueGlobalPriorityCreateInfo {
7952     VkStructureType          sType;
7953     const void*              pNext;
7954     VkQueueGlobalPriority    globalPriority;
7955 } VkDeviceQueueGlobalPriorityCreateInfo;
7956 
7957 typedef struct VkPhysicalDeviceGlobalPriorityQueryFeatures {
7958     VkStructureType    sType;
7959     void*              pNext;
7960     VkBool32           globalPriorityQuery;
7961 } VkPhysicalDeviceGlobalPriorityQueryFeatures;
7962 
7963 typedef struct VkQueueFamilyGlobalPriorityProperties {
7964     VkStructureType          sType;
7965     void*                    pNext;
7966     uint32_t                 priorityCount;
7967     VkQueueGlobalPriority    priorities[VK_MAX_GLOBAL_PRIORITY_SIZE];
7968 } VkQueueFamilyGlobalPriorityProperties;
7969 
7970 typedef struct VkPhysicalDeviceShaderSubgroupRotateFeatures {
7971     VkStructureType    sType;
7972     void*              pNext;
7973     VkBool32           shaderSubgroupRotate;
7974     VkBool32           shaderSubgroupRotateClustered;
7975 } VkPhysicalDeviceShaderSubgroupRotateFeatures;
7976 
7977 typedef struct VkPhysicalDeviceShaderFloatControls2Features {
7978     VkStructureType    sType;
7979     void*              pNext;
7980     VkBool32           shaderFloatControls2;
7981 } VkPhysicalDeviceShaderFloatControls2Features;
7982 
7983 typedef struct VkPhysicalDeviceShaderExpectAssumeFeatures {
7984     VkStructureType    sType;
7985     void*              pNext;
7986     VkBool32           shaderExpectAssume;
7987 } VkPhysicalDeviceShaderExpectAssumeFeatures;
7988 
7989 typedef struct VkPhysicalDeviceLineRasterizationFeatures {
7990     VkStructureType    sType;
7991     void*              pNext;
7992     VkBool32           rectangularLines;
7993     VkBool32           bresenhamLines;
7994     VkBool32           smoothLines;
7995     VkBool32           stippledRectangularLines;
7996     VkBool32           stippledBresenhamLines;
7997     VkBool32           stippledSmoothLines;
7998 } VkPhysicalDeviceLineRasterizationFeatures;
7999 
8000 typedef struct VkPhysicalDeviceLineRasterizationProperties {
8001     VkStructureType    sType;
8002     void*              pNext;
8003     uint32_t           lineSubPixelPrecisionBits;
8004 } VkPhysicalDeviceLineRasterizationProperties;
8005 
8006 typedef struct VkPipelineRasterizationLineStateCreateInfo {
8007     VkStructureType            sType;
8008     const void*                pNext;
8009     VkLineRasterizationMode    lineRasterizationMode;
8010     VkBool32                   stippledLineEnable;
8011     uint32_t                   lineStippleFactor;
8012     uint16_t                   lineStipplePattern;
8013 } VkPipelineRasterizationLineStateCreateInfo;
8014 
8015 typedef struct VkPhysicalDeviceVertexAttributeDivisorProperties {
8016     VkStructureType    sType;
8017     void*              pNext;
8018     uint32_t           maxVertexAttribDivisor;
8019     VkBool32           supportsNonZeroFirstInstance;
8020 } VkPhysicalDeviceVertexAttributeDivisorProperties;
8021 
8022 typedef struct VkVertexInputBindingDivisorDescription {
8023     uint32_t    binding;
8024     uint32_t    divisor;
8025 } VkVertexInputBindingDivisorDescription;
8026 
8027 typedef struct VkPipelineVertexInputDivisorStateCreateInfo {
8028     VkStructureType                                  sType;
8029     const void*                                      pNext;
8030     uint32_t                                         vertexBindingDivisorCount;
8031     const VkVertexInputBindingDivisorDescription*    pVertexBindingDivisors;
8032 } VkPipelineVertexInputDivisorStateCreateInfo;
8033 
8034 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeatures {
8035     VkStructureType    sType;
8036     void*              pNext;
8037     VkBool32           vertexAttributeInstanceRateDivisor;
8038     VkBool32           vertexAttributeInstanceRateZeroDivisor;
8039 } VkPhysicalDeviceVertexAttributeDivisorFeatures;
8040 
8041 typedef struct VkPhysicalDeviceIndexTypeUint8Features {
8042     VkStructureType    sType;
8043     void*              pNext;
8044     VkBool32           indexTypeUint8;
8045 } VkPhysicalDeviceIndexTypeUint8Features;
8046 
8047 typedef struct VkMemoryMapInfo {
8048     VkStructureType     sType;
8049     const void*         pNext;
8050     VkMemoryMapFlags    flags;
8051     VkDeviceMemory      memory;
8052     VkDeviceSize        offset;
8053     VkDeviceSize        size;
8054 } VkMemoryMapInfo;
8055 
8056 typedef struct VkMemoryUnmapInfo {
8057     VkStructureType       sType;
8058     const void*           pNext;
8059     VkMemoryUnmapFlags    flags;
8060     VkDeviceMemory        memory;
8061 } VkMemoryUnmapInfo;
8062 
8063 typedef struct VkPhysicalDeviceMaintenance5Features {
8064     VkStructureType    sType;
8065     void*              pNext;
8066     VkBool32           maintenance5;
8067 } VkPhysicalDeviceMaintenance5Features;
8068 
8069 typedef struct VkPhysicalDeviceMaintenance5Properties {
8070     VkStructureType    sType;
8071     void*              pNext;
8072     VkBool32           earlyFragmentMultisampleCoverageAfterSampleCounting;
8073     VkBool32           earlyFragmentSampleMaskTestBeforeSampleCounting;
8074     VkBool32           depthStencilSwizzleOneSupport;
8075     VkBool32           polygonModePointSize;
8076     VkBool32           nonStrictSinglePixelWideLinesUseParallelogram;
8077     VkBool32           nonStrictWideLinesUseParallelogram;
8078 } VkPhysicalDeviceMaintenance5Properties;
8079 
8080 typedef struct VkRenderingAreaInfo {
8081     VkStructureType    sType;
8082     const void*        pNext;
8083     uint32_t           viewMask;
8084     uint32_t           colorAttachmentCount;
8085     const VkFormat*    pColorAttachmentFormats;
8086     VkFormat           depthAttachmentFormat;
8087     VkFormat           stencilAttachmentFormat;
8088 } VkRenderingAreaInfo;
8089 
8090 typedef struct VkImageSubresource2 {
8091     VkStructureType       sType;
8092     void*                 pNext;
8093     VkImageSubresource    imageSubresource;
8094 } VkImageSubresource2;
8095 
8096 typedef struct VkDeviceImageSubresourceInfo {
8097     VkStructureType               sType;
8098     const void*                   pNext;
8099     const VkImageCreateInfo*      pCreateInfo;
8100     const VkImageSubresource2*    pSubresource;
8101 } VkDeviceImageSubresourceInfo;
8102 
8103 typedef struct VkSubresourceLayout2 {
8104     VkStructureType        sType;
8105     void*                  pNext;
8106     VkSubresourceLayout    subresourceLayout;
8107 } VkSubresourceLayout2;
8108 
8109 typedef struct VkPipelineCreateFlags2CreateInfo {
8110     VkStructureType           sType;
8111     const void*               pNext;
8112     VkPipelineCreateFlags2    flags;
8113 } VkPipelineCreateFlags2CreateInfo;
8114 
8115 typedef struct VkBufferUsageFlags2CreateInfo {
8116     VkStructureType        sType;
8117     const void*            pNext;
8118     VkBufferUsageFlags2    usage;
8119 } VkBufferUsageFlags2CreateInfo;
8120 
8121 typedef struct VkPhysicalDevicePushDescriptorProperties {
8122     VkStructureType    sType;
8123     void*              pNext;
8124     uint32_t           maxPushDescriptors;
8125 } VkPhysicalDevicePushDescriptorProperties;
8126 
8127 typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeatures {
8128     VkStructureType    sType;
8129     void*              pNext;
8130     VkBool32           dynamicRenderingLocalRead;
8131 } VkPhysicalDeviceDynamicRenderingLocalReadFeatures;
8132 
8133 typedef struct VkRenderingAttachmentLocationInfo {
8134     VkStructureType    sType;
8135     const void*        pNext;
8136     uint32_t           colorAttachmentCount;
8137     const uint32_t*    pColorAttachmentLocations;
8138 } VkRenderingAttachmentLocationInfo;
8139 
8140 typedef struct VkRenderingInputAttachmentIndexInfo {
8141     VkStructureType    sType;
8142     const void*        pNext;
8143     uint32_t           colorAttachmentCount;
8144     const uint32_t*    pColorAttachmentInputIndices;
8145     const uint32_t*    pDepthInputAttachmentIndex;
8146     const uint32_t*    pStencilInputAttachmentIndex;
8147 } VkRenderingInputAttachmentIndexInfo;
8148 
8149 typedef struct VkPhysicalDeviceMaintenance6Features {
8150     VkStructureType    sType;
8151     void*              pNext;
8152     VkBool32           maintenance6;
8153 } VkPhysicalDeviceMaintenance6Features;
8154 
8155 typedef struct VkPhysicalDeviceMaintenance6Properties {
8156     VkStructureType    sType;
8157     void*              pNext;
8158     VkBool32           blockTexelViewCompatibleMultipleLayers;
8159     uint32_t           maxCombinedImageSamplerDescriptorCount;
8160     VkBool32           fragmentShadingRateClampCombinerInputs;
8161 } VkPhysicalDeviceMaintenance6Properties;
8162 
8163 typedef struct VkBindMemoryStatus {
8164     VkStructureType    sType;
8165     const void*        pNext;
8166     VkResult*          pResult;
8167 } VkBindMemoryStatus;
8168 
8169 typedef struct VkBindDescriptorSetsInfo {
8170     VkStructureType           sType;
8171     const void*               pNext;
8172     VkShaderStageFlags        stageFlags;
8173     VkPipelineLayout          layout;
8174     uint32_t                  firstSet;
8175     uint32_t                  descriptorSetCount;
8176     const VkDescriptorSet*    pDescriptorSets;
8177     uint32_t                  dynamicOffsetCount;
8178     const uint32_t*           pDynamicOffsets;
8179 } VkBindDescriptorSetsInfo;
8180 
8181 typedef struct VkPushConstantsInfo {
8182     VkStructureType       sType;
8183     const void*           pNext;
8184     VkPipelineLayout      layout;
8185     VkShaderStageFlags    stageFlags;
8186     uint32_t              offset;
8187     uint32_t              size;
8188     const void*           pValues;
8189 } VkPushConstantsInfo;
8190 
8191 typedef struct VkPushDescriptorSetInfo {
8192     VkStructureType                sType;
8193     const void*                    pNext;
8194     VkShaderStageFlags             stageFlags;
8195     VkPipelineLayout               layout;
8196     uint32_t                       set;
8197     uint32_t                       descriptorWriteCount;
8198     const VkWriteDescriptorSet*    pDescriptorWrites;
8199 } VkPushDescriptorSetInfo;
8200 
8201 typedef struct VkPushDescriptorSetWithTemplateInfo {
8202     VkStructureType               sType;
8203     const void*                   pNext;
8204     VkDescriptorUpdateTemplate    descriptorUpdateTemplate;
8205     VkPipelineLayout              layout;
8206     uint32_t                      set;
8207     const void*                   pData;
8208 } VkPushDescriptorSetWithTemplateInfo;
8209 
8210 typedef struct VkPhysicalDevicePipelineProtectedAccessFeatures {
8211     VkStructureType    sType;
8212     void*              pNext;
8213     VkBool32           pipelineProtectedAccess;
8214 } VkPhysicalDevicePipelineProtectedAccessFeatures;
8215 
8216 typedef struct VkPhysicalDevicePipelineRobustnessFeatures {
8217     VkStructureType    sType;
8218     void*              pNext;
8219     VkBool32           pipelineRobustness;
8220 } VkPhysicalDevicePipelineRobustnessFeatures;
8221 
8222 typedef struct VkPhysicalDevicePipelineRobustnessProperties {
8223     VkStructureType                       sType;
8224     void*                                 pNext;
8225     VkPipelineRobustnessBufferBehavior    defaultRobustnessStorageBuffers;
8226     VkPipelineRobustnessBufferBehavior    defaultRobustnessUniformBuffers;
8227     VkPipelineRobustnessBufferBehavior    defaultRobustnessVertexInputs;
8228     VkPipelineRobustnessImageBehavior     defaultRobustnessImages;
8229 } VkPhysicalDevicePipelineRobustnessProperties;
8230 
8231 typedef struct VkPipelineRobustnessCreateInfo {
8232     VkStructureType                       sType;
8233     const void*                           pNext;
8234     VkPipelineRobustnessBufferBehavior    storageBuffers;
8235     VkPipelineRobustnessBufferBehavior    uniformBuffers;
8236     VkPipelineRobustnessBufferBehavior    vertexInputs;
8237     VkPipelineRobustnessImageBehavior     images;
8238 } VkPipelineRobustnessCreateInfo;
8239 
8240 typedef struct VkPhysicalDeviceHostImageCopyFeatures {
8241     VkStructureType    sType;
8242     void*              pNext;
8243     VkBool32           hostImageCopy;
8244 } VkPhysicalDeviceHostImageCopyFeatures;
8245 
8246 typedef struct VkPhysicalDeviceHostImageCopyProperties {
8247     VkStructureType    sType;
8248     void*              pNext;
8249     uint32_t           copySrcLayoutCount;
8250     VkImageLayout*     pCopySrcLayouts;
8251     uint32_t           copyDstLayoutCount;
8252     VkImageLayout*     pCopyDstLayouts;
8253     uint8_t            optimalTilingLayoutUUID[VK_UUID_SIZE];
8254     VkBool32           identicalMemoryTypeRequirements;
8255 } VkPhysicalDeviceHostImageCopyProperties;
8256 
8257 typedef struct VkMemoryToImageCopy {
8258     VkStructureType             sType;
8259     const void*                 pNext;
8260     const void*                 pHostPointer;
8261     uint32_t                    memoryRowLength;
8262     uint32_t                    memoryImageHeight;
8263     VkImageSubresourceLayers    imageSubresource;
8264     VkOffset3D                  imageOffset;
8265     VkExtent3D                  imageExtent;
8266 } VkMemoryToImageCopy;
8267 
8268 typedef struct VkImageToMemoryCopy {
8269     VkStructureType             sType;
8270     const void*                 pNext;
8271     void*                       pHostPointer;
8272     uint32_t                    memoryRowLength;
8273     uint32_t                    memoryImageHeight;
8274     VkImageSubresourceLayers    imageSubresource;
8275     VkOffset3D                  imageOffset;
8276     VkExtent3D                  imageExtent;
8277 } VkImageToMemoryCopy;
8278 
8279 typedef struct VkCopyMemoryToImageInfo {
8280     VkStructureType               sType;
8281     const void*                   pNext;
8282     VkHostImageCopyFlags          flags;
8283     VkImage                       dstImage;
8284     VkImageLayout                 dstImageLayout;
8285     uint32_t                      regionCount;
8286     const VkMemoryToImageCopy*    pRegions;
8287 } VkCopyMemoryToImageInfo;
8288 
8289 typedef struct VkCopyImageToMemoryInfo {
8290     VkStructureType               sType;
8291     const void*                   pNext;
8292     VkHostImageCopyFlags          flags;
8293     VkImage                       srcImage;
8294     VkImageLayout                 srcImageLayout;
8295     uint32_t                      regionCount;
8296     const VkImageToMemoryCopy*    pRegions;
8297 } VkCopyImageToMemoryInfo;
8298 
8299 typedef struct VkCopyImageToImageInfo {
8300     VkStructureType         sType;
8301     const void*             pNext;
8302     VkHostImageCopyFlags    flags;
8303     VkImage                 srcImage;
8304     VkImageLayout           srcImageLayout;
8305     VkImage                 dstImage;
8306     VkImageLayout           dstImageLayout;
8307     uint32_t                regionCount;
8308     const VkImageCopy2*     pRegions;
8309 } VkCopyImageToImageInfo;
8310 
8311 typedef struct VkHostImageLayoutTransitionInfo {
8312     VkStructureType            sType;
8313     const void*                pNext;
8314     VkImage                    image;
8315     VkImageLayout              oldLayout;
8316     VkImageLayout              newLayout;
8317     VkImageSubresourceRange    subresourceRange;
8318 } VkHostImageLayoutTransitionInfo;
8319 
8320 typedef struct VkSubresourceHostMemcpySize {
8321     VkStructureType    sType;
8322     void*              pNext;
8323     VkDeviceSize       size;
8324 } VkSubresourceHostMemcpySize;
8325 
8326 typedef struct VkHostImageCopyDevicePerformanceQuery {
8327     VkStructureType    sType;
8328     void*              pNext;
8329     VkBool32           optimalDeviceAccess;
8330     VkBool32           identicalMemoryLayout;
8331 } VkHostImageCopyDevicePerformanceQuery;
8332 
8333 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStipple)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
8334 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
8335 typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8336 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
8337 typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularity)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
8338 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayout)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
8339 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
8340 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
8341 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
8342 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocations)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
8343 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndices)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8344 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo*   pBindDescriptorSetsInfo);
8345 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo*        pPushConstantsInfo);
8346 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo*    pPushDescriptorSetInfo);
8347 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8348 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImage)(VkDevice device, const VkCopyMemoryToImageInfo*    pCopyMemoryToImageInfo);
8349 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemory)(VkDevice device, const VkCopyImageToMemoryInfo*    pCopyImageToMemoryInfo);
8350 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImage)(VkDevice device, const VkCopyImageToImageInfo*    pCopyImageToImageInfo);
8351 typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayout)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo*    pTransitions);
8352 
8353 #ifndef VK_NO_PROTOTYPES
8354 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStipple(
8355     VkCommandBuffer                             commandBuffer,
8356     uint32_t                                    lineStippleFactor,
8357     uint16_t                                    lineStipplePattern);
8358 
8359 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2(
8360     VkDevice                                    device,
8361     const VkMemoryMapInfo*                      pMemoryMapInfo,
8362     void**                                      ppData);
8363 
8364 VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2(
8365     VkDevice                                    device,
8366     const VkMemoryUnmapInfo*                    pMemoryUnmapInfo);
8367 
8368 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2(
8369     VkCommandBuffer                             commandBuffer,
8370     VkBuffer                                    buffer,
8371     VkDeviceSize                                offset,
8372     VkDeviceSize                                size,
8373     VkIndexType                                 indexType);
8374 
8375 VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularity(
8376     VkDevice                                    device,
8377     const VkRenderingAreaInfo*                  pRenderingAreaInfo,
8378     VkExtent2D*                                 pGranularity);
8379 
8380 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayout(
8381     VkDevice                                    device,
8382     const VkDeviceImageSubresourceInfo*         pInfo,
8383     VkSubresourceLayout2*                       pLayout);
8384 
8385 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2(
8386     VkDevice                                    device,
8387     VkImage                                     image,
8388     const VkImageSubresource2*                  pSubresource,
8389     VkSubresourceLayout2*                       pLayout);
8390 
8391 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet(
8392     VkCommandBuffer                             commandBuffer,
8393     VkPipelineBindPoint                         pipelineBindPoint,
8394     VkPipelineLayout                            layout,
8395     uint32_t                                    set,
8396     uint32_t                                    descriptorWriteCount,
8397     const VkWriteDescriptorSet*                 pDescriptorWrites);
8398 
8399 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate(
8400     VkCommandBuffer                             commandBuffer,
8401     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
8402     VkPipelineLayout                            layout,
8403     uint32_t                                    set,
8404     const void*                                 pData);
8405 
8406 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocations(
8407     VkCommandBuffer                             commandBuffer,
8408     const VkRenderingAttachmentLocationInfo*    pLocationInfo);
8409 
8410 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndices(
8411     VkCommandBuffer                             commandBuffer,
8412     const VkRenderingInputAttachmentIndexInfo*  pInputAttachmentIndexInfo);
8413 
8414 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2(
8415     VkCommandBuffer                             commandBuffer,
8416     const VkBindDescriptorSetsInfo*             pBindDescriptorSetsInfo);
8417 
8418 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2(
8419     VkCommandBuffer                             commandBuffer,
8420     const VkPushConstantsInfo*                  pPushConstantsInfo);
8421 
8422 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2(
8423     VkCommandBuffer                             commandBuffer,
8424     const VkPushDescriptorSetInfo*              pPushDescriptorSetInfo);
8425 
8426 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2(
8427     VkCommandBuffer                             commandBuffer,
8428     const VkPushDescriptorSetWithTemplateInfo*  pPushDescriptorSetWithTemplateInfo);
8429 
8430 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImage(
8431     VkDevice                                    device,
8432     const VkCopyMemoryToImageInfo*              pCopyMemoryToImageInfo);
8433 
8434 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemory(
8435     VkDevice                                    device,
8436     const VkCopyImageToMemoryInfo*              pCopyImageToMemoryInfo);
8437 
8438 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImage(
8439     VkDevice                                    device,
8440     const VkCopyImageToImageInfo*               pCopyImageToImageInfo);
8441 
8442 VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayout(
8443     VkDevice                                    device,
8444     uint32_t                                    transitionCount,
8445     const VkHostImageLayoutTransitionInfo*      pTransitions);
8446 #endif
8447 
8448 
8449 // VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
8450 #define VK_KHR_surface 1
8451 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
8452 #define VK_KHR_SURFACE_SPEC_VERSION       25
8453 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
8454 
8455 typedef enum VkPresentModeKHR {
8456     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
8457     VK_PRESENT_MODE_MAILBOX_KHR = 1,
8458     VK_PRESENT_MODE_FIFO_KHR = 2,
8459     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
8460     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
8461     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
8462     VK_PRESENT_MODE_FIFO_LATEST_READY_EXT = 1000361000,
8463     VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
8464 } VkPresentModeKHR;
8465 
8466 typedef enum VkColorSpaceKHR {
8467     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
8468     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
8469     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
8470     VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
8471     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
8472     VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
8473     VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
8474     VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
8475     VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
8476   // VK_COLOR_SPACE_DOLBYVISION_EXT is deprecated, but no reason was given in the API XML
8477     VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
8478     VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
8479     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
8480     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
8481     VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
8482     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
8483     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
8484   // VK_COLORSPACE_SRGB_NONLINEAR_KHR is a deprecated alias
8485     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
8486   // VK_COLOR_SPACE_DCI_P3_LINEAR_EXT is a deprecated alias
8487     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
8488     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
8489 } VkColorSpaceKHR;
8490 
8491 typedef enum VkSurfaceTransformFlagBitsKHR {
8492     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
8493     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
8494     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
8495     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
8496     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
8497     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
8498     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
8499     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
8500     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
8501     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8502 } VkSurfaceTransformFlagBitsKHR;
8503 
8504 typedef enum VkCompositeAlphaFlagBitsKHR {
8505     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8506     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
8507     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
8508     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
8509     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8510 } VkCompositeAlphaFlagBitsKHR;
8511 typedef VkFlags VkCompositeAlphaFlagsKHR;
8512 typedef VkFlags VkSurfaceTransformFlagsKHR;
8513 typedef struct VkSurfaceCapabilitiesKHR {
8514     uint32_t                         minImageCount;
8515     uint32_t                         maxImageCount;
8516     VkExtent2D                       currentExtent;
8517     VkExtent2D                       minImageExtent;
8518     VkExtent2D                       maxImageExtent;
8519     uint32_t                         maxImageArrayLayers;
8520     VkSurfaceTransformFlagsKHR       supportedTransforms;
8521     VkSurfaceTransformFlagBitsKHR    currentTransform;
8522     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
8523     VkImageUsageFlags                supportedUsageFlags;
8524 } VkSurfaceCapabilitiesKHR;
8525 
8526 typedef struct VkSurfaceFormatKHR {
8527     VkFormat           format;
8528     VkColorSpaceKHR    colorSpace;
8529 } VkSurfaceFormatKHR;
8530 
8531 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
8532 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
8533 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
8534 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
8535 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
8536 
8537 #ifndef VK_NO_PROTOTYPES
8538 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
8539     VkInstance                                  instance,
8540     VkSurfaceKHR                                surface,
8541     const VkAllocationCallbacks*                pAllocator);
8542 
8543 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
8544     VkPhysicalDevice                            physicalDevice,
8545     uint32_t                                    queueFamilyIndex,
8546     VkSurfaceKHR                                surface,
8547     VkBool32*                                   pSupported);
8548 
8549 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
8550     VkPhysicalDevice                            physicalDevice,
8551     VkSurfaceKHR                                surface,
8552     VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
8553 
8554 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
8555     VkPhysicalDevice                            physicalDevice,
8556     VkSurfaceKHR                                surface,
8557     uint32_t*                                   pSurfaceFormatCount,
8558     VkSurfaceFormatKHR*                         pSurfaceFormats);
8559 
8560 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
8561     VkPhysicalDevice                            physicalDevice,
8562     VkSurfaceKHR                                surface,
8563     uint32_t*                                   pPresentModeCount,
8564     VkPresentModeKHR*                           pPresentModes);
8565 #endif
8566 
8567 
8568 // VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
8569 #define VK_KHR_swapchain 1
8570 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
8571 #define VK_KHR_SWAPCHAIN_SPEC_VERSION     70
8572 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
8573 
8574 typedef enum VkSwapchainCreateFlagBitsKHR {
8575     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
8576     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
8577     VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
8578     VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0x00000008,
8579     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8580 } VkSwapchainCreateFlagBitsKHR;
8581 typedef VkFlags VkSwapchainCreateFlagsKHR;
8582 
8583 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
8584     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
8585     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
8586     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
8587     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
8588     VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8589 } VkDeviceGroupPresentModeFlagBitsKHR;
8590 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
8591 typedef struct VkSwapchainCreateInfoKHR {
8592     VkStructureType                  sType;
8593     const void*                      pNext;
8594     VkSwapchainCreateFlagsKHR        flags;
8595     VkSurfaceKHR                     surface;
8596     uint32_t                         minImageCount;
8597     VkFormat                         imageFormat;
8598     VkColorSpaceKHR                  imageColorSpace;
8599     VkExtent2D                       imageExtent;
8600     uint32_t                         imageArrayLayers;
8601     VkImageUsageFlags                imageUsage;
8602     VkSharingMode                    imageSharingMode;
8603     uint32_t                         queueFamilyIndexCount;
8604     const uint32_t*                  pQueueFamilyIndices;
8605     VkSurfaceTransformFlagBitsKHR    preTransform;
8606     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
8607     VkPresentModeKHR                 presentMode;
8608     VkBool32                         clipped;
8609     VkSwapchainKHR                   oldSwapchain;
8610 } VkSwapchainCreateInfoKHR;
8611 
8612 typedef struct VkPresentInfoKHR {
8613     VkStructureType          sType;
8614     const void*              pNext;
8615     uint32_t                 waitSemaphoreCount;
8616     const VkSemaphore*       pWaitSemaphores;
8617     uint32_t                 swapchainCount;
8618     const VkSwapchainKHR*    pSwapchains;
8619     const uint32_t*          pImageIndices;
8620     VkResult*                pResults;
8621 } VkPresentInfoKHR;
8622 
8623 typedef struct VkImageSwapchainCreateInfoKHR {
8624     VkStructureType    sType;
8625     const void*        pNext;
8626     VkSwapchainKHR     swapchain;
8627 } VkImageSwapchainCreateInfoKHR;
8628 
8629 typedef struct VkBindImageMemorySwapchainInfoKHR {
8630     VkStructureType    sType;
8631     const void*        pNext;
8632     VkSwapchainKHR     swapchain;
8633     uint32_t           imageIndex;
8634 } VkBindImageMemorySwapchainInfoKHR;
8635 
8636 typedef struct VkAcquireNextImageInfoKHR {
8637     VkStructureType    sType;
8638     const void*        pNext;
8639     VkSwapchainKHR     swapchain;
8640     uint64_t           timeout;
8641     VkSemaphore        semaphore;
8642     VkFence            fence;
8643     uint32_t           deviceMask;
8644 } VkAcquireNextImageInfoKHR;
8645 
8646 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
8647     VkStructureType                     sType;
8648     void*                               pNext;
8649     uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE];
8650     VkDeviceGroupPresentModeFlagsKHR    modes;
8651 } VkDeviceGroupPresentCapabilitiesKHR;
8652 
8653 typedef struct VkDeviceGroupPresentInfoKHR {
8654     VkStructureType                        sType;
8655     const void*                            pNext;
8656     uint32_t                               swapchainCount;
8657     const uint32_t*                        pDeviceMasks;
8658     VkDeviceGroupPresentModeFlagBitsKHR    mode;
8659 } VkDeviceGroupPresentInfoKHR;
8660 
8661 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
8662     VkStructureType                     sType;
8663     const void*                         pNext;
8664     VkDeviceGroupPresentModeFlagsKHR    modes;
8665 } VkDeviceGroupSwapchainCreateInfoKHR;
8666 
8667 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
8668 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
8669 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
8670 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
8671 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
8672 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
8673 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
8674 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
8675 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
8676 
8677 #ifndef VK_NO_PROTOTYPES
8678 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
8679     VkDevice                                    device,
8680     const VkSwapchainCreateInfoKHR*             pCreateInfo,
8681     const VkAllocationCallbacks*                pAllocator,
8682     VkSwapchainKHR*                             pSwapchain);
8683 
8684 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
8685     VkDevice                                    device,
8686     VkSwapchainKHR                              swapchain,
8687     const VkAllocationCallbacks*                pAllocator);
8688 
8689 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
8690     VkDevice                                    device,
8691     VkSwapchainKHR                              swapchain,
8692     uint32_t*                                   pSwapchainImageCount,
8693     VkImage*                                    pSwapchainImages);
8694 
8695 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
8696     VkDevice                                    device,
8697     VkSwapchainKHR                              swapchain,
8698     uint64_t                                    timeout,
8699     VkSemaphore                                 semaphore,
8700     VkFence                                     fence,
8701     uint32_t*                                   pImageIndex);
8702 
8703 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
8704     VkQueue                                     queue,
8705     const VkPresentInfoKHR*                     pPresentInfo);
8706 
8707 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
8708     VkDevice                                    device,
8709     VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
8710 
8711 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
8712     VkDevice                                    device,
8713     VkSurfaceKHR                                surface,
8714     VkDeviceGroupPresentModeFlagsKHR*           pModes);
8715 
8716 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
8717     VkPhysicalDevice                            physicalDevice,
8718     VkSurfaceKHR                                surface,
8719     uint32_t*                                   pRectCount,
8720     VkRect2D*                                   pRects);
8721 
8722 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
8723     VkDevice                                    device,
8724     const VkAcquireNextImageInfoKHR*            pAcquireInfo,
8725     uint32_t*                                   pImageIndex);
8726 #endif
8727 
8728 
8729 // VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
8730 #define VK_KHR_display 1
8731 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
8732 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
8733 #define VK_KHR_DISPLAY_SPEC_VERSION       23
8734 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
8735 typedef VkFlags VkDisplayModeCreateFlagsKHR;
8736 
8737 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
8738     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8739     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
8740     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
8741     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
8742     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8743 } VkDisplayPlaneAlphaFlagBitsKHR;
8744 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
8745 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
8746 typedef struct VkDisplayModeParametersKHR {
8747     VkExtent2D    visibleRegion;
8748     uint32_t      refreshRate;
8749 } VkDisplayModeParametersKHR;
8750 
8751 typedef struct VkDisplayModeCreateInfoKHR {
8752     VkStructureType                sType;
8753     const void*                    pNext;
8754     VkDisplayModeCreateFlagsKHR    flags;
8755     VkDisplayModeParametersKHR     parameters;
8756 } VkDisplayModeCreateInfoKHR;
8757 
8758 typedef struct VkDisplayModePropertiesKHR {
8759     VkDisplayModeKHR              displayMode;
8760     VkDisplayModeParametersKHR    parameters;
8761 } VkDisplayModePropertiesKHR;
8762 
8763 typedef struct VkDisplayPlaneCapabilitiesKHR {
8764     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
8765     VkOffset2D                     minSrcPosition;
8766     VkOffset2D                     maxSrcPosition;
8767     VkExtent2D                     minSrcExtent;
8768     VkExtent2D                     maxSrcExtent;
8769     VkOffset2D                     minDstPosition;
8770     VkOffset2D                     maxDstPosition;
8771     VkExtent2D                     minDstExtent;
8772     VkExtent2D                     maxDstExtent;
8773 } VkDisplayPlaneCapabilitiesKHR;
8774 
8775 typedef struct VkDisplayPlanePropertiesKHR {
8776     VkDisplayKHR    currentDisplay;
8777     uint32_t        currentStackIndex;
8778 } VkDisplayPlanePropertiesKHR;
8779 
8780 typedef struct VkDisplayPropertiesKHR {
8781     VkDisplayKHR                  display;
8782     const char*                   displayName;
8783     VkExtent2D                    physicalDimensions;
8784     VkExtent2D                    physicalResolution;
8785     VkSurfaceTransformFlagsKHR    supportedTransforms;
8786     VkBool32                      planeReorderPossible;
8787     VkBool32                      persistentContent;
8788 } VkDisplayPropertiesKHR;
8789 
8790 typedef struct VkDisplaySurfaceCreateInfoKHR {
8791     VkStructureType                   sType;
8792     const void*                       pNext;
8793     VkDisplaySurfaceCreateFlagsKHR    flags;
8794     VkDisplayModeKHR                  displayMode;
8795     uint32_t                          planeIndex;
8796     uint32_t                          planeStackIndex;
8797     VkSurfaceTransformFlagBitsKHR     transform;
8798     float                             globalAlpha;
8799     VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
8800     VkExtent2D                        imageExtent;
8801 } VkDisplaySurfaceCreateInfoKHR;
8802 
8803 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
8804 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
8805 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
8806 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
8807 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
8808 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
8809 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
8810 
8811 #ifndef VK_NO_PROTOTYPES
8812 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
8813     VkPhysicalDevice                            physicalDevice,
8814     uint32_t*                                   pPropertyCount,
8815     VkDisplayPropertiesKHR*                     pProperties);
8816 
8817 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
8818     VkPhysicalDevice                            physicalDevice,
8819     uint32_t*                                   pPropertyCount,
8820     VkDisplayPlanePropertiesKHR*                pProperties);
8821 
8822 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
8823     VkPhysicalDevice                            physicalDevice,
8824     uint32_t                                    planeIndex,
8825     uint32_t*                                   pDisplayCount,
8826     VkDisplayKHR*                               pDisplays);
8827 
8828 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
8829     VkPhysicalDevice                            physicalDevice,
8830     VkDisplayKHR                                display,
8831     uint32_t*                                   pPropertyCount,
8832     VkDisplayModePropertiesKHR*                 pProperties);
8833 
8834 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
8835     VkPhysicalDevice                            physicalDevice,
8836     VkDisplayKHR                                display,
8837     const VkDisplayModeCreateInfoKHR*           pCreateInfo,
8838     const VkAllocationCallbacks*                pAllocator,
8839     VkDisplayModeKHR*                           pMode);
8840 
8841 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
8842     VkPhysicalDevice                            physicalDevice,
8843     VkDisplayModeKHR                            mode,
8844     uint32_t                                    planeIndex,
8845     VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
8846 
8847 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
8848     VkInstance                                  instance,
8849     const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
8850     const VkAllocationCallbacks*                pAllocator,
8851     VkSurfaceKHR*                               pSurface);
8852 #endif
8853 
8854 
8855 // VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
8856 #define VK_KHR_display_swapchain 1
8857 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
8858 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
8859 typedef struct VkDisplayPresentInfoKHR {
8860     VkStructureType    sType;
8861     const void*        pNext;
8862     VkRect2D           srcRect;
8863     VkRect2D           dstRect;
8864     VkBool32           persistent;
8865 } VkDisplayPresentInfoKHR;
8866 
8867 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
8868 
8869 #ifndef VK_NO_PROTOTYPES
8870 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
8871     VkDevice                                    device,
8872     uint32_t                                    swapchainCount,
8873     const VkSwapchainCreateInfoKHR*             pCreateInfos,
8874     const VkAllocationCallbacks*                pAllocator,
8875     VkSwapchainKHR*                             pSwapchains);
8876 #endif
8877 
8878 
8879 // VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
8880 #define VK_KHR_sampler_mirror_clamp_to_edge 1
8881 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
8882 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
8883 
8884 
8885 // VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
8886 #define VK_KHR_video_queue 1
8887 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
8888 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
8889 #define VK_KHR_VIDEO_QUEUE_SPEC_VERSION   8
8890 #define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
8891 
8892 typedef enum VkQueryResultStatusKHR {
8893     VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
8894     VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
8895     VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
8896     VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
8897     VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
8898 } VkQueryResultStatusKHR;
8899 
8900 typedef enum VkVideoCodecOperationFlagBitsKHR {
8901     VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
8902     VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
8903     VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
8904     VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
8905     VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
8906     VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
8907     VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR = 0x00040000,
8908     VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8909 } VkVideoCodecOperationFlagBitsKHR;
8910 typedef VkFlags VkVideoCodecOperationFlagsKHR;
8911 
8912 typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
8913     VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
8914     VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
8915     VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
8916     VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
8917     VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
8918     VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8919 } VkVideoChromaSubsamplingFlagBitsKHR;
8920 typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
8921 
8922 typedef enum VkVideoComponentBitDepthFlagBitsKHR {
8923     VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
8924     VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
8925     VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
8926     VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
8927     VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8928 } VkVideoComponentBitDepthFlagBitsKHR;
8929 typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
8930 
8931 typedef enum VkVideoCapabilityFlagBitsKHR {
8932     VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
8933     VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
8934     VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8935 } VkVideoCapabilityFlagBitsKHR;
8936 typedef VkFlags VkVideoCapabilityFlagsKHR;
8937 
8938 typedef enum VkVideoSessionCreateFlagBitsKHR {
8939     VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
8940     VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
8941     VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
8942     VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000008,
8943     VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x00000010,
8944     VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8945 } VkVideoSessionCreateFlagBitsKHR;
8946 typedef VkFlags VkVideoSessionCreateFlagsKHR;
8947 
8948 typedef enum VkVideoSessionParametersCreateFlagBitsKHR {
8949     VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR = 0x00000001,
8950     VK_VIDEO_SESSION_PARAMETERS_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8951 } VkVideoSessionParametersCreateFlagBitsKHR;
8952 typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
8953 typedef VkFlags VkVideoBeginCodingFlagsKHR;
8954 typedef VkFlags VkVideoEndCodingFlagsKHR;
8955 
8956 typedef enum VkVideoCodingControlFlagBitsKHR {
8957     VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
8958     VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
8959     VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
8960     VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8961 } VkVideoCodingControlFlagBitsKHR;
8962 typedef VkFlags VkVideoCodingControlFlagsKHR;
8963 typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
8964     VkStructureType    sType;
8965     void*              pNext;
8966     VkBool32           queryResultStatusSupport;
8967 } VkQueueFamilyQueryResultStatusPropertiesKHR;
8968 
8969 typedef struct VkQueueFamilyVideoPropertiesKHR {
8970     VkStructureType                  sType;
8971     void*                            pNext;
8972     VkVideoCodecOperationFlagsKHR    videoCodecOperations;
8973 } VkQueueFamilyVideoPropertiesKHR;
8974 
8975 typedef struct VkVideoProfileInfoKHR {
8976     VkStructureType                     sType;
8977     const void*                         pNext;
8978     VkVideoCodecOperationFlagBitsKHR    videoCodecOperation;
8979     VkVideoChromaSubsamplingFlagsKHR    chromaSubsampling;
8980     VkVideoComponentBitDepthFlagsKHR    lumaBitDepth;
8981     VkVideoComponentBitDepthFlagsKHR    chromaBitDepth;
8982 } VkVideoProfileInfoKHR;
8983 
8984 typedef struct VkVideoProfileListInfoKHR {
8985     VkStructureType                 sType;
8986     const void*                     pNext;
8987     uint32_t                        profileCount;
8988     const VkVideoProfileInfoKHR*    pProfiles;
8989 } VkVideoProfileListInfoKHR;
8990 
8991 typedef struct VkVideoCapabilitiesKHR {
8992     VkStructureType              sType;
8993     void*                        pNext;
8994     VkVideoCapabilityFlagsKHR    flags;
8995     VkDeviceSize                 minBitstreamBufferOffsetAlignment;
8996     VkDeviceSize                 minBitstreamBufferSizeAlignment;
8997     VkExtent2D                   pictureAccessGranularity;
8998     VkExtent2D                   minCodedExtent;
8999     VkExtent2D                   maxCodedExtent;
9000     uint32_t                     maxDpbSlots;
9001     uint32_t                     maxActiveReferencePictures;
9002     VkExtensionProperties        stdHeaderVersion;
9003 } VkVideoCapabilitiesKHR;
9004 
9005 typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
9006     VkStructureType      sType;
9007     const void*          pNext;
9008     VkImageUsageFlags    imageUsage;
9009 } VkPhysicalDeviceVideoFormatInfoKHR;
9010 
9011 typedef struct VkVideoFormatPropertiesKHR {
9012     VkStructureType       sType;
9013     void*                 pNext;
9014     VkFormat              format;
9015     VkComponentMapping    componentMapping;
9016     VkImageCreateFlags    imageCreateFlags;
9017     VkImageType           imageType;
9018     VkImageTiling         imageTiling;
9019     VkImageUsageFlags     imageUsageFlags;
9020 } VkVideoFormatPropertiesKHR;
9021 
9022 typedef struct VkVideoPictureResourceInfoKHR {
9023     VkStructureType    sType;
9024     const void*        pNext;
9025     VkOffset2D         codedOffset;
9026     VkExtent2D         codedExtent;
9027     uint32_t           baseArrayLayer;
9028     VkImageView        imageViewBinding;
9029 } VkVideoPictureResourceInfoKHR;
9030 
9031 typedef struct VkVideoReferenceSlotInfoKHR {
9032     VkStructureType                         sType;
9033     const void*                             pNext;
9034     int32_t                                 slotIndex;
9035     const VkVideoPictureResourceInfoKHR*    pPictureResource;
9036 } VkVideoReferenceSlotInfoKHR;
9037 
9038 typedef struct VkVideoSessionMemoryRequirementsKHR {
9039     VkStructureType         sType;
9040     void*                   pNext;
9041     uint32_t                memoryBindIndex;
9042     VkMemoryRequirements    memoryRequirements;
9043 } VkVideoSessionMemoryRequirementsKHR;
9044 
9045 typedef struct VkBindVideoSessionMemoryInfoKHR {
9046     VkStructureType    sType;
9047     const void*        pNext;
9048     uint32_t           memoryBindIndex;
9049     VkDeviceMemory     memory;
9050     VkDeviceSize       memoryOffset;
9051     VkDeviceSize       memorySize;
9052 } VkBindVideoSessionMemoryInfoKHR;
9053 
9054 typedef struct VkVideoSessionCreateInfoKHR {
9055     VkStructureType                 sType;
9056     const void*                     pNext;
9057     uint32_t                        queueFamilyIndex;
9058     VkVideoSessionCreateFlagsKHR    flags;
9059     const VkVideoProfileInfoKHR*    pVideoProfile;
9060     VkFormat                        pictureFormat;
9061     VkExtent2D                      maxCodedExtent;
9062     VkFormat                        referencePictureFormat;
9063     uint32_t                        maxDpbSlots;
9064     uint32_t                        maxActiveReferencePictures;
9065     const VkExtensionProperties*    pStdHeaderVersion;
9066 } VkVideoSessionCreateInfoKHR;
9067 
9068 typedef struct VkVideoSessionParametersCreateInfoKHR {
9069     VkStructureType                           sType;
9070     const void*                               pNext;
9071     VkVideoSessionParametersCreateFlagsKHR    flags;
9072     VkVideoSessionParametersKHR               videoSessionParametersTemplate;
9073     VkVideoSessionKHR                         videoSession;
9074 } VkVideoSessionParametersCreateInfoKHR;
9075 
9076 typedef struct VkVideoSessionParametersUpdateInfoKHR {
9077     VkStructureType    sType;
9078     const void*        pNext;
9079     uint32_t           updateSequenceCount;
9080 } VkVideoSessionParametersUpdateInfoKHR;
9081 
9082 typedef struct VkVideoBeginCodingInfoKHR {
9083     VkStructureType                       sType;
9084     const void*                           pNext;
9085     VkVideoBeginCodingFlagsKHR            flags;
9086     VkVideoSessionKHR                     videoSession;
9087     VkVideoSessionParametersKHR           videoSessionParameters;
9088     uint32_t                              referenceSlotCount;
9089     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
9090 } VkVideoBeginCodingInfoKHR;
9091 
9092 typedef struct VkVideoEndCodingInfoKHR {
9093     VkStructureType             sType;
9094     const void*                 pNext;
9095     VkVideoEndCodingFlagsKHR    flags;
9096 } VkVideoEndCodingInfoKHR;
9097 
9098 typedef struct VkVideoCodingControlInfoKHR {
9099     VkStructureType                 sType;
9100     const void*                     pNext;
9101     VkVideoCodingControlFlagsKHR    flags;
9102 } VkVideoCodingControlInfoKHR;
9103 
9104 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
9105 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9106 typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
9107 typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
9108 typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9109 typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9110 typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
9111 typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9112 typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
9113 typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
9114 typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9115 typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9116 
9117 #ifndef VK_NO_PROTOTYPES
9118 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
9119     VkPhysicalDevice                            physicalDevice,
9120     const VkVideoProfileInfoKHR*                pVideoProfile,
9121     VkVideoCapabilitiesKHR*                     pCapabilities);
9122 
9123 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
9124     VkPhysicalDevice                            physicalDevice,
9125     const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
9126     uint32_t*                                   pVideoFormatPropertyCount,
9127     VkVideoFormatPropertiesKHR*                 pVideoFormatProperties);
9128 
9129 VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
9130     VkDevice                                    device,
9131     const VkVideoSessionCreateInfoKHR*          pCreateInfo,
9132     const VkAllocationCallbacks*                pAllocator,
9133     VkVideoSessionKHR*                          pVideoSession);
9134 
9135 VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
9136     VkDevice                                    device,
9137     VkVideoSessionKHR                           videoSession,
9138     const VkAllocationCallbacks*                pAllocator);
9139 
9140 VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
9141     VkDevice                                    device,
9142     VkVideoSessionKHR                           videoSession,
9143     uint32_t*                                   pMemoryRequirementsCount,
9144     VkVideoSessionMemoryRequirementsKHR*        pMemoryRequirements);
9145 
9146 VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
9147     VkDevice                                    device,
9148     VkVideoSessionKHR                           videoSession,
9149     uint32_t                                    bindSessionMemoryInfoCount,
9150     const VkBindVideoSessionMemoryInfoKHR*      pBindSessionMemoryInfos);
9151 
9152 VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
9153     VkDevice                                    device,
9154     const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
9155     const VkAllocationCallbacks*                pAllocator,
9156     VkVideoSessionParametersKHR*                pVideoSessionParameters);
9157 
9158 VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
9159     VkDevice                                    device,
9160     VkVideoSessionParametersKHR                 videoSessionParameters,
9161     const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9162 
9163 VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
9164     VkDevice                                    device,
9165     VkVideoSessionParametersKHR                 videoSessionParameters,
9166     const VkAllocationCallbacks*                pAllocator);
9167 
9168 VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
9169     VkCommandBuffer                             commandBuffer,
9170     const VkVideoBeginCodingInfoKHR*            pBeginInfo);
9171 
9172 VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
9173     VkCommandBuffer                             commandBuffer,
9174     const VkVideoEndCodingInfoKHR*              pEndCodingInfo);
9175 
9176 VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
9177     VkCommandBuffer                             commandBuffer,
9178     const VkVideoCodingControlInfoKHR*          pCodingControlInfo);
9179 #endif
9180 
9181 
9182 // VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
9183 #define VK_KHR_video_decode_queue 1
9184 #define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
9185 #define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
9186 
9187 typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
9188     VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
9189     VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
9190     VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9191 } VkVideoDecodeCapabilityFlagBitsKHR;
9192 typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
9193 
9194 typedef enum VkVideoDecodeUsageFlagBitsKHR {
9195     VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
9196     VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
9197     VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
9198     VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
9199     VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9200 } VkVideoDecodeUsageFlagBitsKHR;
9201 typedef VkFlags VkVideoDecodeUsageFlagsKHR;
9202 typedef VkFlags VkVideoDecodeFlagsKHR;
9203 typedef struct VkVideoDecodeCapabilitiesKHR {
9204     VkStructureType                    sType;
9205     void*                              pNext;
9206     VkVideoDecodeCapabilityFlagsKHR    flags;
9207 } VkVideoDecodeCapabilitiesKHR;
9208 
9209 typedef struct VkVideoDecodeUsageInfoKHR {
9210     VkStructureType               sType;
9211     const void*                   pNext;
9212     VkVideoDecodeUsageFlagsKHR    videoUsageHints;
9213 } VkVideoDecodeUsageInfoKHR;
9214 
9215 typedef struct VkVideoDecodeInfoKHR {
9216     VkStructureType                       sType;
9217     const void*                           pNext;
9218     VkVideoDecodeFlagsKHR                 flags;
9219     VkBuffer                              srcBuffer;
9220     VkDeviceSize                          srcBufferOffset;
9221     VkDeviceSize                          srcBufferRange;
9222     VkVideoPictureResourceInfoKHR         dstPictureResource;
9223     const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
9224     uint32_t                              referenceSlotCount;
9225     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
9226 } VkVideoDecodeInfoKHR;
9227 
9228 typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
9229 
9230 #ifndef VK_NO_PROTOTYPES
9231 VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
9232     VkCommandBuffer                             commandBuffer,
9233     const VkVideoDecodeInfoKHR*                 pDecodeInfo);
9234 #endif
9235 
9236 
9237 // VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
9238 #define VK_KHR_video_encode_h264 1
9239 #include "vk_video/vulkan_video_codec_h264std.h"
9240 #include "vk_video/vulkan_video_codec_h264std_encode.h"
9241 #define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
9242 #define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
9243 
9244 typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
9245     VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9246     VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9247     VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
9248     VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
9249     VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9250     VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9251     VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9252     VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
9253     VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
9254     VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000200,
9255     VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9256 } VkVideoEncodeH264CapabilityFlagBitsKHR;
9257 typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
9258 
9259 typedef enum VkVideoEncodeH264StdFlagBitsKHR {
9260     VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9261     VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
9262     VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9263     VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
9264     VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
9265     VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9266     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9267     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
9268     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
9269     VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
9270     VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
9271     VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
9272     VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
9273     VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
9274     VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9275     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
9276     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
9277     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
9278     VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9279     VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9280     VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9281 } VkVideoEncodeH264StdFlagBitsKHR;
9282 typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
9283 
9284 typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
9285     VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9286     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9287     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9288     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9289     VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9290     VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9291 } VkVideoEncodeH264RateControlFlagBitsKHR;
9292 typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
9293 typedef struct VkVideoEncodeH264CapabilitiesKHR {
9294     VkStructureType                        sType;
9295     void*                                  pNext;
9296     VkVideoEncodeH264CapabilityFlagsKHR    flags;
9297     StdVideoH264LevelIdc                   maxLevelIdc;
9298     uint32_t                               maxSliceCount;
9299     uint32_t                               maxPPictureL0ReferenceCount;
9300     uint32_t                               maxBPictureL0ReferenceCount;
9301     uint32_t                               maxL1ReferenceCount;
9302     uint32_t                               maxTemporalLayerCount;
9303     VkBool32                               expectDyadicTemporalLayerPattern;
9304     int32_t                                minQp;
9305     int32_t                                maxQp;
9306     VkBool32                               prefersGopRemainingFrames;
9307     VkBool32                               requiresGopRemainingFrames;
9308     VkVideoEncodeH264StdFlagsKHR           stdSyntaxFlags;
9309 } VkVideoEncodeH264CapabilitiesKHR;
9310 
9311 typedef struct VkVideoEncodeH264QpKHR {
9312     int32_t    qpI;
9313     int32_t    qpP;
9314     int32_t    qpB;
9315 } VkVideoEncodeH264QpKHR;
9316 
9317 typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
9318     VkStructureType                         sType;
9319     void*                                   pNext;
9320     VkVideoEncodeH264RateControlFlagsKHR    preferredRateControlFlags;
9321     uint32_t                                preferredGopFrameCount;
9322     uint32_t                                preferredIdrPeriod;
9323     uint32_t                                preferredConsecutiveBFrameCount;
9324     uint32_t                                preferredTemporalLayerCount;
9325     VkVideoEncodeH264QpKHR                  preferredConstantQp;
9326     uint32_t                                preferredMaxL0ReferenceCount;
9327     uint32_t                                preferredMaxL1ReferenceCount;
9328     VkBool32                                preferredStdEntropyCodingModeFlag;
9329 } VkVideoEncodeH264QualityLevelPropertiesKHR;
9330 
9331 typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
9332     VkStructureType         sType;
9333     const void*             pNext;
9334     VkBool32                useMaxLevelIdc;
9335     StdVideoH264LevelIdc    maxLevelIdc;
9336 } VkVideoEncodeH264SessionCreateInfoKHR;
9337 
9338 typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
9339     VkStructureType                            sType;
9340     const void*                                pNext;
9341     uint32_t                                   stdSPSCount;
9342     const StdVideoH264SequenceParameterSet*    pStdSPSs;
9343     uint32_t                                   stdPPSCount;
9344     const StdVideoH264PictureParameterSet*     pStdPPSs;
9345 } VkVideoEncodeH264SessionParametersAddInfoKHR;
9346 
9347 typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
9348     VkStructureType                                        sType;
9349     const void*                                            pNext;
9350     uint32_t                                               maxStdSPSCount;
9351     uint32_t                                               maxStdPPSCount;
9352     const VkVideoEncodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
9353 } VkVideoEncodeH264SessionParametersCreateInfoKHR;
9354 
9355 typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
9356     VkStructureType    sType;
9357     const void*        pNext;
9358     VkBool32           writeStdSPS;
9359     VkBool32           writeStdPPS;
9360     uint32_t           stdSPSId;
9361     uint32_t           stdPPSId;
9362 } VkVideoEncodeH264SessionParametersGetInfoKHR;
9363 
9364 typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
9365     VkStructureType    sType;
9366     void*              pNext;
9367     VkBool32           hasStdSPSOverrides;
9368     VkBool32           hasStdPPSOverrides;
9369 } VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
9370 
9371 typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
9372     VkStructureType                         sType;
9373     const void*                             pNext;
9374     int32_t                                 constantQp;
9375     const StdVideoEncodeH264SliceHeader*    pStdSliceHeader;
9376 } VkVideoEncodeH264NaluSliceInfoKHR;
9377 
9378 typedef struct VkVideoEncodeH264PictureInfoKHR {
9379     VkStructureType                             sType;
9380     const void*                                 pNext;
9381     uint32_t                                    naluSliceEntryCount;
9382     const VkVideoEncodeH264NaluSliceInfoKHR*    pNaluSliceEntries;
9383     const StdVideoEncodeH264PictureInfo*        pStdPictureInfo;
9384     VkBool32                                    generatePrefixNalu;
9385 } VkVideoEncodeH264PictureInfoKHR;
9386 
9387 typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
9388     VkStructureType                           sType;
9389     const void*                               pNext;
9390     const StdVideoEncodeH264ReferenceInfo*    pStdReferenceInfo;
9391 } VkVideoEncodeH264DpbSlotInfoKHR;
9392 
9393 typedef struct VkVideoEncodeH264ProfileInfoKHR {
9394     VkStructureType           sType;
9395     const void*               pNext;
9396     StdVideoH264ProfileIdc    stdProfileIdc;
9397 } VkVideoEncodeH264ProfileInfoKHR;
9398 
9399 typedef struct VkVideoEncodeH264RateControlInfoKHR {
9400     VkStructureType                         sType;
9401     const void*                             pNext;
9402     VkVideoEncodeH264RateControlFlagsKHR    flags;
9403     uint32_t                                gopFrameCount;
9404     uint32_t                                idrPeriod;
9405     uint32_t                                consecutiveBFrameCount;
9406     uint32_t                                temporalLayerCount;
9407 } VkVideoEncodeH264RateControlInfoKHR;
9408 
9409 typedef struct VkVideoEncodeH264FrameSizeKHR {
9410     uint32_t    frameISize;
9411     uint32_t    framePSize;
9412     uint32_t    frameBSize;
9413 } VkVideoEncodeH264FrameSizeKHR;
9414 
9415 typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
9416     VkStructureType                  sType;
9417     const void*                      pNext;
9418     VkBool32                         useMinQp;
9419     VkVideoEncodeH264QpKHR           minQp;
9420     VkBool32                         useMaxQp;
9421     VkVideoEncodeH264QpKHR           maxQp;
9422     VkBool32                         useMaxFrameSize;
9423     VkVideoEncodeH264FrameSizeKHR    maxFrameSize;
9424 } VkVideoEncodeH264RateControlLayerInfoKHR;
9425 
9426 typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
9427     VkStructureType    sType;
9428     const void*        pNext;
9429     VkBool32           useGopRemainingFrames;
9430     uint32_t           gopRemainingI;
9431     uint32_t           gopRemainingP;
9432     uint32_t           gopRemainingB;
9433 } VkVideoEncodeH264GopRemainingFrameInfoKHR;
9434 
9435 
9436 
9437 // VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
9438 #define VK_KHR_video_encode_h265 1
9439 #include "vk_video/vulkan_video_codec_h265std.h"
9440 #include "vk_video/vulkan_video_codec_h265std_encode.h"
9441 #define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
9442 #define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
9443 
9444 typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
9445     VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9446     VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9447     VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
9448     VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
9449     VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9450     VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9451     VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9452     VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
9453     VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
9454     VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
9455     VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000400,
9456     VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9457 } VkVideoEncodeH265CapabilityFlagBitsKHR;
9458 typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
9459 
9460 typedef enum VkVideoEncodeH265StdFlagBitsKHR {
9461     VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9462     VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
9463     VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9464     VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
9465     VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
9466     VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9467     VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9468     VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
9469     VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
9470     VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
9471     VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
9472     VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
9473     VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
9474     VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
9475     VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9476     VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
9477     VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
9478     VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
9479     VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
9480     VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9481     VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9482     VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9483 } VkVideoEncodeH265StdFlagBitsKHR;
9484 typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
9485 
9486 typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
9487     VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
9488     VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
9489     VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
9490     VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9491 } VkVideoEncodeH265CtbSizeFlagBitsKHR;
9492 typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
9493 
9494 typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
9495     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
9496     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
9497     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
9498     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
9499     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9500 } VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
9501 typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
9502 
9503 typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
9504     VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9505     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9506     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9507     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9508     VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9509     VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9510 } VkVideoEncodeH265RateControlFlagBitsKHR;
9511 typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
9512 typedef struct VkVideoEncodeH265CapabilitiesKHR {
9513     VkStructureType                                sType;
9514     void*                                          pNext;
9515     VkVideoEncodeH265CapabilityFlagsKHR            flags;
9516     StdVideoH265LevelIdc                           maxLevelIdc;
9517     uint32_t                                       maxSliceSegmentCount;
9518     VkExtent2D                                     maxTiles;
9519     VkVideoEncodeH265CtbSizeFlagsKHR               ctbSizes;
9520     VkVideoEncodeH265TransformBlockSizeFlagsKHR    transformBlockSizes;
9521     uint32_t                                       maxPPictureL0ReferenceCount;
9522     uint32_t                                       maxBPictureL0ReferenceCount;
9523     uint32_t                                       maxL1ReferenceCount;
9524     uint32_t                                       maxSubLayerCount;
9525     VkBool32                                       expectDyadicTemporalSubLayerPattern;
9526     int32_t                                        minQp;
9527     int32_t                                        maxQp;
9528     VkBool32                                       prefersGopRemainingFrames;
9529     VkBool32                                       requiresGopRemainingFrames;
9530     VkVideoEncodeH265StdFlagsKHR                   stdSyntaxFlags;
9531 } VkVideoEncodeH265CapabilitiesKHR;
9532 
9533 typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
9534     VkStructureType         sType;
9535     const void*             pNext;
9536     VkBool32                useMaxLevelIdc;
9537     StdVideoH265LevelIdc    maxLevelIdc;
9538 } VkVideoEncodeH265SessionCreateInfoKHR;
9539 
9540 typedef struct VkVideoEncodeH265QpKHR {
9541     int32_t    qpI;
9542     int32_t    qpP;
9543     int32_t    qpB;
9544 } VkVideoEncodeH265QpKHR;
9545 
9546 typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
9547     VkStructureType                         sType;
9548     void*                                   pNext;
9549     VkVideoEncodeH265RateControlFlagsKHR    preferredRateControlFlags;
9550     uint32_t                                preferredGopFrameCount;
9551     uint32_t                                preferredIdrPeriod;
9552     uint32_t                                preferredConsecutiveBFrameCount;
9553     uint32_t                                preferredSubLayerCount;
9554     VkVideoEncodeH265QpKHR                  preferredConstantQp;
9555     uint32_t                                preferredMaxL0ReferenceCount;
9556     uint32_t                                preferredMaxL1ReferenceCount;
9557 } VkVideoEncodeH265QualityLevelPropertiesKHR;
9558 
9559 typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
9560     VkStructureType                            sType;
9561     const void*                                pNext;
9562     uint32_t                                   stdVPSCount;
9563     const StdVideoH265VideoParameterSet*       pStdVPSs;
9564     uint32_t                                   stdSPSCount;
9565     const StdVideoH265SequenceParameterSet*    pStdSPSs;
9566     uint32_t                                   stdPPSCount;
9567     const StdVideoH265PictureParameterSet*     pStdPPSs;
9568 } VkVideoEncodeH265SessionParametersAddInfoKHR;
9569 
9570 typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
9571     VkStructureType                                        sType;
9572     const void*                                            pNext;
9573     uint32_t                                               maxStdVPSCount;
9574     uint32_t                                               maxStdSPSCount;
9575     uint32_t                                               maxStdPPSCount;
9576     const VkVideoEncodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
9577 } VkVideoEncodeH265SessionParametersCreateInfoKHR;
9578 
9579 typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
9580     VkStructureType    sType;
9581     const void*        pNext;
9582     VkBool32           writeStdVPS;
9583     VkBool32           writeStdSPS;
9584     VkBool32           writeStdPPS;
9585     uint32_t           stdVPSId;
9586     uint32_t           stdSPSId;
9587     uint32_t           stdPPSId;
9588 } VkVideoEncodeH265SessionParametersGetInfoKHR;
9589 
9590 typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
9591     VkStructureType    sType;
9592     void*              pNext;
9593     VkBool32           hasStdVPSOverrides;
9594     VkBool32           hasStdSPSOverrides;
9595     VkBool32           hasStdPPSOverrides;
9596 } VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
9597 
9598 typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
9599     VkStructureType                                sType;
9600     const void*                                    pNext;
9601     int32_t                                        constantQp;
9602     const StdVideoEncodeH265SliceSegmentHeader*    pStdSliceSegmentHeader;
9603 } VkVideoEncodeH265NaluSliceSegmentInfoKHR;
9604 
9605 typedef struct VkVideoEncodeH265PictureInfoKHR {
9606     VkStructureType                                    sType;
9607     const void*                                        pNext;
9608     uint32_t                                           naluSliceSegmentEntryCount;
9609     const VkVideoEncodeH265NaluSliceSegmentInfoKHR*    pNaluSliceSegmentEntries;
9610     const StdVideoEncodeH265PictureInfo*               pStdPictureInfo;
9611 } VkVideoEncodeH265PictureInfoKHR;
9612 
9613 typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
9614     VkStructureType                           sType;
9615     const void*                               pNext;
9616     const StdVideoEncodeH265ReferenceInfo*    pStdReferenceInfo;
9617 } VkVideoEncodeH265DpbSlotInfoKHR;
9618 
9619 typedef struct VkVideoEncodeH265ProfileInfoKHR {
9620     VkStructureType           sType;
9621     const void*               pNext;
9622     StdVideoH265ProfileIdc    stdProfileIdc;
9623 } VkVideoEncodeH265ProfileInfoKHR;
9624 
9625 typedef struct VkVideoEncodeH265RateControlInfoKHR {
9626     VkStructureType                         sType;
9627     const void*                             pNext;
9628     VkVideoEncodeH265RateControlFlagsKHR    flags;
9629     uint32_t                                gopFrameCount;
9630     uint32_t                                idrPeriod;
9631     uint32_t                                consecutiveBFrameCount;
9632     uint32_t                                subLayerCount;
9633 } VkVideoEncodeH265RateControlInfoKHR;
9634 
9635 typedef struct VkVideoEncodeH265FrameSizeKHR {
9636     uint32_t    frameISize;
9637     uint32_t    framePSize;
9638     uint32_t    frameBSize;
9639 } VkVideoEncodeH265FrameSizeKHR;
9640 
9641 typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
9642     VkStructureType                  sType;
9643     const void*                      pNext;
9644     VkBool32                         useMinQp;
9645     VkVideoEncodeH265QpKHR           minQp;
9646     VkBool32                         useMaxQp;
9647     VkVideoEncodeH265QpKHR           maxQp;
9648     VkBool32                         useMaxFrameSize;
9649     VkVideoEncodeH265FrameSizeKHR    maxFrameSize;
9650 } VkVideoEncodeH265RateControlLayerInfoKHR;
9651 
9652 typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
9653     VkStructureType    sType;
9654     const void*        pNext;
9655     VkBool32           useGopRemainingFrames;
9656     uint32_t           gopRemainingI;
9657     uint32_t           gopRemainingP;
9658     uint32_t           gopRemainingB;
9659 } VkVideoEncodeH265GopRemainingFrameInfoKHR;
9660 
9661 
9662 
9663 // VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
9664 #define VK_KHR_video_decode_h264 1
9665 #include "vk_video/vulkan_video_codec_h264std_decode.h"
9666 #define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
9667 #define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
9668 
9669 typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
9670     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
9671     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
9672     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
9673     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9674 } VkVideoDecodeH264PictureLayoutFlagBitsKHR;
9675 typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
9676 typedef struct VkVideoDecodeH264ProfileInfoKHR {
9677     VkStructureType                              sType;
9678     const void*                                  pNext;
9679     StdVideoH264ProfileIdc                       stdProfileIdc;
9680     VkVideoDecodeH264PictureLayoutFlagBitsKHR    pictureLayout;
9681 } VkVideoDecodeH264ProfileInfoKHR;
9682 
9683 typedef struct VkVideoDecodeH264CapabilitiesKHR {
9684     VkStructureType         sType;
9685     void*                   pNext;
9686     StdVideoH264LevelIdc    maxLevelIdc;
9687     VkOffset2D              fieldOffsetGranularity;
9688 } VkVideoDecodeH264CapabilitiesKHR;
9689 
9690 typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
9691     VkStructureType                            sType;
9692     const void*                                pNext;
9693     uint32_t                                   stdSPSCount;
9694     const StdVideoH264SequenceParameterSet*    pStdSPSs;
9695     uint32_t                                   stdPPSCount;
9696     const StdVideoH264PictureParameterSet*     pStdPPSs;
9697 } VkVideoDecodeH264SessionParametersAddInfoKHR;
9698 
9699 typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
9700     VkStructureType                                        sType;
9701     const void*                                            pNext;
9702     uint32_t                                               maxStdSPSCount;
9703     uint32_t                                               maxStdPPSCount;
9704     const VkVideoDecodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
9705 } VkVideoDecodeH264SessionParametersCreateInfoKHR;
9706 
9707 typedef struct VkVideoDecodeH264PictureInfoKHR {
9708     VkStructureType                         sType;
9709     const void*                             pNext;
9710     const StdVideoDecodeH264PictureInfo*    pStdPictureInfo;
9711     uint32_t                                sliceCount;
9712     const uint32_t*                         pSliceOffsets;
9713 } VkVideoDecodeH264PictureInfoKHR;
9714 
9715 typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
9716     VkStructureType                           sType;
9717     const void*                               pNext;
9718     const StdVideoDecodeH264ReferenceInfo*    pStdReferenceInfo;
9719 } VkVideoDecodeH264DpbSlotInfoKHR;
9720 
9721 
9722 
9723 // VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
9724 #define VK_KHR_dynamic_rendering 1
9725 #define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
9726 #define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
9727 typedef VkRenderingFlags VkRenderingFlagsKHR;
9728 
9729 typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
9730 
9731 typedef VkRenderingInfo VkRenderingInfoKHR;
9732 
9733 typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
9734 
9735 typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
9736 
9737 typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
9738 
9739 typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
9740 
9741 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
9742 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer                   commandBuffer);
9743 
9744 #ifndef VK_NO_PROTOTYPES
9745 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
9746     VkCommandBuffer                             commandBuffer,
9747     const VkRenderingInfo*                      pRenderingInfo);
9748 
9749 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
9750     VkCommandBuffer                             commandBuffer);
9751 #endif
9752 
9753 
9754 // VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
9755 #define VK_KHR_multiview 1
9756 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
9757 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
9758 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
9759 
9760 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
9761 
9762 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
9763 
9764 
9765 
9766 // VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
9767 #define VK_KHR_get_physical_device_properties2 1
9768 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
9769 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
9770 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
9771 
9772 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
9773 
9774 typedef VkFormatProperties2 VkFormatProperties2KHR;
9775 
9776 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
9777 
9778 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
9779 
9780 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
9781 
9782 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
9783 
9784 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
9785 
9786 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
9787 
9788 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
9789 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
9790 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
9791 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
9792 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
9793 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
9794 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
9795 
9796 #ifndef VK_NO_PROTOTYPES
9797 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
9798     VkPhysicalDevice                            physicalDevice,
9799     VkPhysicalDeviceFeatures2*                  pFeatures);
9800 
9801 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
9802     VkPhysicalDevice                            physicalDevice,
9803     VkPhysicalDeviceProperties2*                pProperties);
9804 
9805 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
9806     VkPhysicalDevice                            physicalDevice,
9807     VkFormat                                    format,
9808     VkFormatProperties2*                        pFormatProperties);
9809 
9810 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
9811     VkPhysicalDevice                            physicalDevice,
9812     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
9813     VkImageFormatProperties2*                   pImageFormatProperties);
9814 
9815 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
9816     VkPhysicalDevice                            physicalDevice,
9817     uint32_t*                                   pQueueFamilyPropertyCount,
9818     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
9819 
9820 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
9821     VkPhysicalDevice                            physicalDevice,
9822     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
9823 
9824 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
9825     VkPhysicalDevice                            physicalDevice,
9826     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
9827     uint32_t*                                   pPropertyCount,
9828     VkSparseImageFormatProperties2*             pProperties);
9829 #endif
9830 
9831 
9832 // VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
9833 #define VK_KHR_device_group 1
9834 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  4
9835 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
9836 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
9837 
9838 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
9839 
9840 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
9841 
9842 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
9843 
9844 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
9845 
9846 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
9847 
9848 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
9849 
9850 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
9851 
9852 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
9853 
9854 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
9855 
9856 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
9857 
9858 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
9859 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
9860 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);
9861 
9862 #ifndef VK_NO_PROTOTYPES
9863 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
9864     VkDevice                                    device,
9865     uint32_t                                    heapIndex,
9866     uint32_t                                    localDeviceIndex,
9867     uint32_t                                    remoteDeviceIndex,
9868     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
9869 
9870 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
9871     VkCommandBuffer                             commandBuffer,
9872     uint32_t                                    deviceMask);
9873 
9874 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
9875     VkCommandBuffer                             commandBuffer,
9876     uint32_t                                    baseGroupX,
9877     uint32_t                                    baseGroupY,
9878     uint32_t                                    baseGroupZ,
9879     uint32_t                                    groupCountX,
9880     uint32_t                                    groupCountY,
9881     uint32_t                                    groupCountZ);
9882 #endif
9883 
9884 
9885 // VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
9886 #define VK_KHR_shader_draw_parameters 1
9887 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
9888 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
9889 
9890 
9891 // VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
9892 #define VK_KHR_maintenance1 1
9893 #define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
9894 #define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
9895 // VK_KHR_MAINTENANCE1_SPEC_VERSION is a deprecated alias
9896 #define VK_KHR_MAINTENANCE1_SPEC_VERSION  VK_KHR_MAINTENANCE_1_SPEC_VERSION
9897 // VK_KHR_MAINTENANCE1_EXTENSION_NAME is a deprecated alias
9898 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
9899 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
9900 
9901 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
9902 
9903 #ifndef VK_NO_PROTOTYPES
9904 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
9905     VkDevice                                    device,
9906     VkCommandPool                               commandPool,
9907     VkCommandPoolTrimFlags                      flags);
9908 #endif
9909 
9910 
9911 // VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
9912 #define VK_KHR_device_group_creation 1
9913 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
9914 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
9915 #define VK_MAX_DEVICE_GROUP_SIZE_KHR      VK_MAX_DEVICE_GROUP_SIZE
9916 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
9917 
9918 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
9919 
9920 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
9921 
9922 #ifndef VK_NO_PROTOTYPES
9923 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
9924     VkInstance                                  instance,
9925     uint32_t*                                   pPhysicalDeviceGroupCount,
9926     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
9927 #endif
9928 
9929 
9930 // VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
9931 #define VK_KHR_external_memory_capabilities 1
9932 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
9933 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
9934 #define VK_LUID_SIZE_KHR                  VK_LUID_SIZE
9935 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
9936 
9937 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
9938 
9939 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
9940 
9941 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
9942 
9943 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
9944 
9945 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
9946 
9947 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
9948 
9949 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
9950 
9951 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
9952 
9953 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
9954 
9955 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
9956 
9957 #ifndef VK_NO_PROTOTYPES
9958 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
9959     VkPhysicalDevice                            physicalDevice,
9960     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
9961     VkExternalBufferProperties*                 pExternalBufferProperties);
9962 #endif
9963 
9964 
9965 // VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
9966 #define VK_KHR_external_memory 1
9967 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
9968 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
9969 #define VK_QUEUE_FAMILY_EXTERNAL_KHR      VK_QUEUE_FAMILY_EXTERNAL
9970 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
9971 
9972 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
9973 
9974 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
9975 
9976 
9977 
9978 // VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
9979 #define VK_KHR_external_memory_fd 1
9980 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
9981 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
9982 typedef struct VkImportMemoryFdInfoKHR {
9983     VkStructureType                       sType;
9984     const void*                           pNext;
9985     VkExternalMemoryHandleTypeFlagBits    handleType;
9986     int                                   fd;
9987 } VkImportMemoryFdInfoKHR;
9988 
9989 typedef struct VkMemoryFdPropertiesKHR {
9990     VkStructureType    sType;
9991     void*              pNext;
9992     uint32_t           memoryTypeBits;
9993 } VkMemoryFdPropertiesKHR;
9994 
9995 typedef struct VkMemoryGetFdInfoKHR {
9996     VkStructureType                       sType;
9997     const void*                           pNext;
9998     VkDeviceMemory                        memory;
9999     VkExternalMemoryHandleTypeFlagBits    handleType;
10000 } VkMemoryGetFdInfoKHR;
10001 
10002 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
10003 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
10004 
10005 #ifndef VK_NO_PROTOTYPES
10006 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
10007     VkDevice                                    device,
10008     const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
10009     int*                                        pFd);
10010 
10011 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
10012     VkDevice                                    device,
10013     VkExternalMemoryHandleTypeFlagBits          handleType,
10014     int                                         fd,
10015     VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
10016 #endif
10017 
10018 
10019 // VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
10020 #define VK_KHR_external_semaphore_capabilities 1
10021 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
10022 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
10023 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
10024 
10025 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
10026 
10027 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
10028 
10029 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
10030 
10031 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
10032 
10033 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
10034 
10035 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
10036 
10037 #ifndef VK_NO_PROTOTYPES
10038 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
10039     VkPhysicalDevice                            physicalDevice,
10040     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10041     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
10042 #endif
10043 
10044 
10045 // VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
10046 #define VK_KHR_external_semaphore 1
10047 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
10048 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
10049 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
10050 
10051 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
10052 
10053 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
10054 
10055 
10056 
10057 // VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
10058 #define VK_KHR_external_semaphore_fd 1
10059 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
10060 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
10061 typedef struct VkImportSemaphoreFdInfoKHR {
10062     VkStructureType                          sType;
10063     const void*                              pNext;
10064     VkSemaphore                              semaphore;
10065     VkSemaphoreImportFlags                   flags;
10066     VkExternalSemaphoreHandleTypeFlagBits    handleType;
10067     int                                      fd;
10068 } VkImportSemaphoreFdInfoKHR;
10069 
10070 typedef struct VkSemaphoreGetFdInfoKHR {
10071     VkStructureType                          sType;
10072     const void*                              pNext;
10073     VkSemaphore                              semaphore;
10074     VkExternalSemaphoreHandleTypeFlagBits    handleType;
10075 } VkSemaphoreGetFdInfoKHR;
10076 
10077 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10078 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
10079 
10080 #ifndef VK_NO_PROTOTYPES
10081 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
10082     VkDevice                                    device,
10083     const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
10084 
10085 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
10086     VkDevice                                    device,
10087     const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
10088     int*                                        pFd);
10089 #endif
10090 
10091 
10092 // VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
10093 #define VK_KHR_push_descriptor 1
10094 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
10095 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
10096 typedef VkPhysicalDevicePushDescriptorProperties VkPhysicalDevicePushDescriptorPropertiesKHR;
10097 
10098 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
10099 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
10100 
10101 #ifndef VK_NO_PROTOTYPES
10102 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
10103     VkCommandBuffer                             commandBuffer,
10104     VkPipelineBindPoint                         pipelineBindPoint,
10105     VkPipelineLayout                            layout,
10106     uint32_t                                    set,
10107     uint32_t                                    descriptorWriteCount,
10108     const VkWriteDescriptorSet*                 pDescriptorWrites);
10109 
10110 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
10111     VkCommandBuffer                             commandBuffer,
10112     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
10113     VkPipelineLayout                            layout,
10114     uint32_t                                    set,
10115     const void*                                 pData);
10116 #endif
10117 
10118 
10119 // VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
10120 #define VK_KHR_shader_float16_int8 1
10121 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
10122 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
10123 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
10124 
10125 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
10126 
10127 
10128 
10129 // VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
10130 #define VK_KHR_16bit_storage 1
10131 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
10132 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
10133 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
10134 
10135 
10136 
10137 // VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
10138 #define VK_KHR_incremental_present 1
10139 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
10140 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
10141 typedef struct VkRectLayerKHR {
10142     VkOffset2D    offset;
10143     VkExtent2D    extent;
10144     uint32_t      layer;
10145 } VkRectLayerKHR;
10146 
10147 typedef struct VkPresentRegionKHR {
10148     uint32_t                 rectangleCount;
10149     const VkRectLayerKHR*    pRectangles;
10150 } VkPresentRegionKHR;
10151 
10152 typedef struct VkPresentRegionsKHR {
10153     VkStructureType              sType;
10154     const void*                  pNext;
10155     uint32_t                     swapchainCount;
10156     const VkPresentRegionKHR*    pRegions;
10157 } VkPresentRegionsKHR;
10158 
10159 
10160 
10161 // VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
10162 #define VK_KHR_descriptor_update_template 1
10163 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
10164 
10165 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
10166 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
10167 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
10168 
10169 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
10170 
10171 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
10172 
10173 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
10174 
10175 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10176 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
10177 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
10178 
10179 #ifndef VK_NO_PROTOTYPES
10180 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
10181     VkDevice                                    device,
10182     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10183     const VkAllocationCallbacks*                pAllocator,
10184     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
10185 
10186 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
10187     VkDevice                                    device,
10188     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
10189     const VkAllocationCallbacks*                pAllocator);
10190 
10191 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
10192     VkDevice                                    device,
10193     VkDescriptorSet                             descriptorSet,
10194     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
10195     const void*                                 pData);
10196 #endif
10197 
10198 
10199 // VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
10200 #define VK_KHR_imageless_framebuffer 1
10201 #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
10202 #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
10203 typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
10204 
10205 typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
10206 
10207 typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
10208 
10209 typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
10210 
10211 
10212 
10213 // VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
10214 #define VK_KHR_create_renderpass2 1
10215 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
10216 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
10217 typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
10218 
10219 typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
10220 
10221 typedef VkAttachmentReference2 VkAttachmentReference2KHR;
10222 
10223 typedef VkSubpassDescription2 VkSubpassDescription2KHR;
10224 
10225 typedef VkSubpassDependency2 VkSubpassDependency2KHR;
10226 
10227 typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
10228 
10229 typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
10230 
10231 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
10232 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
10233 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
10234 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
10235 
10236 #ifndef VK_NO_PROTOTYPES
10237 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
10238     VkDevice                                    device,
10239     const VkRenderPassCreateInfo2*              pCreateInfo,
10240     const VkAllocationCallbacks*                pAllocator,
10241     VkRenderPass*                               pRenderPass);
10242 
10243 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
10244     VkCommandBuffer                             commandBuffer,
10245     const VkRenderPassBeginInfo*                pRenderPassBegin,
10246     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
10247 
10248 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
10249     VkCommandBuffer                             commandBuffer,
10250     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
10251     const VkSubpassEndInfo*                     pSubpassEndInfo);
10252 
10253 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
10254     VkCommandBuffer                             commandBuffer,
10255     const VkSubpassEndInfo*                     pSubpassEndInfo);
10256 #endif
10257 
10258 
10259 // VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
10260 #define VK_KHR_shared_presentable_image 1
10261 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
10262 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
10263 typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
10264     VkStructureType      sType;
10265     void*                pNext;
10266     VkImageUsageFlags    sharedPresentSupportedUsageFlags;
10267 } VkSharedPresentSurfaceCapabilitiesKHR;
10268 
10269 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
10270 
10271 #ifndef VK_NO_PROTOTYPES
10272 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
10273     VkDevice                                    device,
10274     VkSwapchainKHR                              swapchain);
10275 #endif
10276 
10277 
10278 // VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
10279 #define VK_KHR_external_fence_capabilities 1
10280 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
10281 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
10282 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
10283 
10284 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
10285 
10286 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
10287 
10288 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
10289 
10290 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
10291 
10292 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
10293 
10294 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
10295 
10296 #ifndef VK_NO_PROTOTYPES
10297 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
10298     VkPhysicalDevice                            physicalDevice,
10299     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
10300     VkExternalFenceProperties*                  pExternalFenceProperties);
10301 #endif
10302 
10303 
10304 // VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
10305 #define VK_KHR_external_fence 1
10306 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
10307 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
10308 typedef VkFenceImportFlags VkFenceImportFlagsKHR;
10309 
10310 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
10311 
10312 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
10313 
10314 
10315 
10316 // VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
10317 #define VK_KHR_external_fence_fd 1
10318 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
10319 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
10320 typedef struct VkImportFenceFdInfoKHR {
10321     VkStructureType                      sType;
10322     const void*                          pNext;
10323     VkFence                              fence;
10324     VkFenceImportFlags                   flags;
10325     VkExternalFenceHandleTypeFlagBits    handleType;
10326     int                                  fd;
10327 } VkImportFenceFdInfoKHR;
10328 
10329 typedef struct VkFenceGetFdInfoKHR {
10330     VkStructureType                      sType;
10331     const void*                          pNext;
10332     VkFence                              fence;
10333     VkExternalFenceHandleTypeFlagBits    handleType;
10334 } VkFenceGetFdInfoKHR;
10335 
10336 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10337 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
10338 
10339 #ifndef VK_NO_PROTOTYPES
10340 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
10341     VkDevice                                    device,
10342     const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
10343 
10344 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
10345     VkDevice                                    device,
10346     const VkFenceGetFdInfoKHR*                  pGetFdInfo,
10347     int*                                        pFd);
10348 #endif
10349 
10350 
10351 // VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
10352 #define VK_KHR_performance_query 1
10353 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
10354 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
10355 
10356 typedef enum VkPerformanceCounterUnitKHR {
10357     VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
10358     VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
10359     VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
10360     VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
10361     VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
10362     VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
10363     VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
10364     VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
10365     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
10366     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
10367     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
10368     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
10369 } VkPerformanceCounterUnitKHR;
10370 
10371 typedef enum VkPerformanceCounterScopeKHR {
10372     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
10373     VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
10374     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
10375   // VK_QUERY_SCOPE_COMMAND_BUFFER_KHR is a deprecated alias
10376     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
10377   // VK_QUERY_SCOPE_RENDER_PASS_KHR is a deprecated alias
10378     VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
10379   // VK_QUERY_SCOPE_COMMAND_KHR is a deprecated alias
10380     VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
10381     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
10382 } VkPerformanceCounterScopeKHR;
10383 
10384 typedef enum VkPerformanceCounterStorageKHR {
10385     VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
10386     VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
10387     VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
10388     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
10389     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
10390     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
10391     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
10392 } VkPerformanceCounterStorageKHR;
10393 
10394 typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
10395     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
10396     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
10397   // VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR is a deprecated alias
10398     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
10399   // VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR is a deprecated alias
10400     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
10401     VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10402 } VkPerformanceCounterDescriptionFlagBitsKHR;
10403 typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
10404 
10405 typedef enum VkAcquireProfilingLockFlagBitsKHR {
10406     VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10407 } VkAcquireProfilingLockFlagBitsKHR;
10408 typedef VkFlags VkAcquireProfilingLockFlagsKHR;
10409 typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
10410     VkStructureType    sType;
10411     void*              pNext;
10412     VkBool32           performanceCounterQueryPools;
10413     VkBool32           performanceCounterMultipleQueryPools;
10414 } VkPhysicalDevicePerformanceQueryFeaturesKHR;
10415 
10416 typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
10417     VkStructureType    sType;
10418     void*              pNext;
10419     VkBool32           allowCommandBufferQueryCopies;
10420 } VkPhysicalDevicePerformanceQueryPropertiesKHR;
10421 
10422 typedef struct VkPerformanceCounterKHR {
10423     VkStructureType                   sType;
10424     void*                             pNext;
10425     VkPerformanceCounterUnitKHR       unit;
10426     VkPerformanceCounterScopeKHR      scope;
10427     VkPerformanceCounterStorageKHR    storage;
10428     uint8_t                           uuid[VK_UUID_SIZE];
10429 } VkPerformanceCounterKHR;
10430 
10431 typedef struct VkPerformanceCounterDescriptionKHR {
10432     VkStructureType                            sType;
10433     void*                                      pNext;
10434     VkPerformanceCounterDescriptionFlagsKHR    flags;
10435     char                                       name[VK_MAX_DESCRIPTION_SIZE];
10436     char                                       category[VK_MAX_DESCRIPTION_SIZE];
10437     char                                       description[VK_MAX_DESCRIPTION_SIZE];
10438 } VkPerformanceCounterDescriptionKHR;
10439 
10440 typedef struct VkQueryPoolPerformanceCreateInfoKHR {
10441     VkStructureType    sType;
10442     const void*        pNext;
10443     uint32_t           queueFamilyIndex;
10444     uint32_t           counterIndexCount;
10445     const uint32_t*    pCounterIndices;
10446 } VkQueryPoolPerformanceCreateInfoKHR;
10447 
10448 typedef union VkPerformanceCounterResultKHR {
10449     int32_t     int32;
10450     int64_t     int64;
10451     uint32_t    uint32;
10452     uint64_t    uint64;
10453     float       float32;
10454     double      float64;
10455 } VkPerformanceCounterResultKHR;
10456 
10457 typedef struct VkAcquireProfilingLockInfoKHR {
10458     VkStructureType                   sType;
10459     const void*                       pNext;
10460     VkAcquireProfilingLockFlagsKHR    flags;
10461     uint64_t                          timeout;
10462 } VkAcquireProfilingLockInfoKHR;
10463 
10464 typedef struct VkPerformanceQuerySubmitInfoKHR {
10465     VkStructureType    sType;
10466     const void*        pNext;
10467     uint32_t           counterPassIndex;
10468 } VkPerformanceQuerySubmitInfoKHR;
10469 
10470 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
10471 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
10472 typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
10473 typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
10474 
10475 #ifndef VK_NO_PROTOTYPES
10476 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
10477     VkPhysicalDevice                            physicalDevice,
10478     uint32_t                                    queueFamilyIndex,
10479     uint32_t*                                   pCounterCount,
10480     VkPerformanceCounterKHR*                    pCounters,
10481     VkPerformanceCounterDescriptionKHR*         pCounterDescriptions);
10482 
10483 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
10484     VkPhysicalDevice                            physicalDevice,
10485     const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
10486     uint32_t*                                   pNumPasses);
10487 
10488 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
10489     VkDevice                                    device,
10490     const VkAcquireProfilingLockInfoKHR*        pInfo);
10491 
10492 VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
10493     VkDevice                                    device);
10494 #endif
10495 
10496 
10497 // VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
10498 #define VK_KHR_maintenance2 1
10499 #define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
10500 #define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
10501 // VK_KHR_MAINTENANCE2_SPEC_VERSION is a deprecated alias
10502 #define VK_KHR_MAINTENANCE2_SPEC_VERSION  VK_KHR_MAINTENANCE_2_SPEC_VERSION
10503 // VK_KHR_MAINTENANCE2_EXTENSION_NAME is a deprecated alias
10504 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
10505 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
10506 
10507 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
10508 
10509 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
10510 
10511 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
10512 
10513 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
10514 
10515 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
10516 
10517 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
10518 
10519 
10520 
10521 // VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
10522 #define VK_KHR_get_surface_capabilities2 1
10523 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
10524 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
10525 typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
10526     VkStructureType    sType;
10527     const void*        pNext;
10528     VkSurfaceKHR       surface;
10529 } VkPhysicalDeviceSurfaceInfo2KHR;
10530 
10531 typedef struct VkSurfaceCapabilities2KHR {
10532     VkStructureType             sType;
10533     void*                       pNext;
10534     VkSurfaceCapabilitiesKHR    surfaceCapabilities;
10535 } VkSurfaceCapabilities2KHR;
10536 
10537 typedef struct VkSurfaceFormat2KHR {
10538     VkStructureType       sType;
10539     void*                 pNext;
10540     VkSurfaceFormatKHR    surfaceFormat;
10541 } VkSurfaceFormat2KHR;
10542 
10543 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
10544 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
10545 
10546 #ifndef VK_NO_PROTOTYPES
10547 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
10548     VkPhysicalDevice                            physicalDevice,
10549     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
10550     VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
10551 
10552 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
10553     VkPhysicalDevice                            physicalDevice,
10554     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
10555     uint32_t*                                   pSurfaceFormatCount,
10556     VkSurfaceFormat2KHR*                        pSurfaceFormats);
10557 #endif
10558 
10559 
10560 // VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
10561 #define VK_KHR_variable_pointers 1
10562 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
10563 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
10564 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
10565 
10566 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
10567 
10568 
10569 
10570 // VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
10571 #define VK_KHR_get_display_properties2 1
10572 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
10573 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
10574 typedef struct VkDisplayProperties2KHR {
10575     VkStructureType           sType;
10576     void*                     pNext;
10577     VkDisplayPropertiesKHR    displayProperties;
10578 } VkDisplayProperties2KHR;
10579 
10580 typedef struct VkDisplayPlaneProperties2KHR {
10581     VkStructureType                sType;
10582     void*                          pNext;
10583     VkDisplayPlanePropertiesKHR    displayPlaneProperties;
10584 } VkDisplayPlaneProperties2KHR;
10585 
10586 typedef struct VkDisplayModeProperties2KHR {
10587     VkStructureType               sType;
10588     void*                         pNext;
10589     VkDisplayModePropertiesKHR    displayModeProperties;
10590 } VkDisplayModeProperties2KHR;
10591 
10592 typedef struct VkDisplayPlaneInfo2KHR {
10593     VkStructureType     sType;
10594     const void*         pNext;
10595     VkDisplayModeKHR    mode;
10596     uint32_t            planeIndex;
10597 } VkDisplayPlaneInfo2KHR;
10598 
10599 typedef struct VkDisplayPlaneCapabilities2KHR {
10600     VkStructureType                  sType;
10601     void*                            pNext;
10602     VkDisplayPlaneCapabilitiesKHR    capabilities;
10603 } VkDisplayPlaneCapabilities2KHR;
10604 
10605 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
10606 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
10607 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
10608 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
10609 
10610 #ifndef VK_NO_PROTOTYPES
10611 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
10612     VkPhysicalDevice                            physicalDevice,
10613     uint32_t*                                   pPropertyCount,
10614     VkDisplayProperties2KHR*                    pProperties);
10615 
10616 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
10617     VkPhysicalDevice                            physicalDevice,
10618     uint32_t*                                   pPropertyCount,
10619     VkDisplayPlaneProperties2KHR*               pProperties);
10620 
10621 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
10622     VkPhysicalDevice                            physicalDevice,
10623     VkDisplayKHR                                display,
10624     uint32_t*                                   pPropertyCount,
10625     VkDisplayModeProperties2KHR*                pProperties);
10626 
10627 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
10628     VkPhysicalDevice                            physicalDevice,
10629     const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
10630     VkDisplayPlaneCapabilities2KHR*             pCapabilities);
10631 #endif
10632 
10633 
10634 // VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
10635 #define VK_KHR_dedicated_allocation 1
10636 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
10637 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
10638 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
10639 
10640 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
10641 
10642 
10643 
10644 // VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
10645 #define VK_KHR_storage_buffer_storage_class 1
10646 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
10647 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
10648 
10649 
10650 // VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
10651 #define VK_KHR_relaxed_block_layout 1
10652 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
10653 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
10654 
10655 
10656 // VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
10657 #define VK_KHR_get_memory_requirements2 1
10658 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
10659 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
10660 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
10661 
10662 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
10663 
10664 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
10665 
10666 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
10667 
10668 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
10669 
10670 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
10671 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
10672 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
10673 
10674 #ifndef VK_NO_PROTOTYPES
10675 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
10676     VkDevice                                    device,
10677     const VkImageMemoryRequirementsInfo2*       pInfo,
10678     VkMemoryRequirements2*                      pMemoryRequirements);
10679 
10680 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
10681     VkDevice                                    device,
10682     const VkBufferMemoryRequirementsInfo2*      pInfo,
10683     VkMemoryRequirements2*                      pMemoryRequirements);
10684 
10685 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
10686     VkDevice                                    device,
10687     const VkImageSparseMemoryRequirementsInfo2* pInfo,
10688     uint32_t*                                   pSparseMemoryRequirementCount,
10689     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
10690 #endif
10691 
10692 
10693 // VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
10694 #define VK_KHR_image_format_list 1
10695 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
10696 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
10697 typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
10698 
10699 
10700 
10701 // VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
10702 #define VK_KHR_sampler_ycbcr_conversion 1
10703 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
10704 
10705 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
10706 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
10707 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
10708 
10709 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
10710 
10711 typedef VkChromaLocation VkChromaLocationKHR;
10712 
10713 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
10714 
10715 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
10716 
10717 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
10718 
10719 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
10720 
10721 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
10722 
10723 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
10724 
10725 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
10726 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
10727 
10728 #ifndef VK_NO_PROTOTYPES
10729 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
10730     VkDevice                                    device,
10731     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
10732     const VkAllocationCallbacks*                pAllocator,
10733     VkSamplerYcbcrConversion*                   pYcbcrConversion);
10734 
10735 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
10736     VkDevice                                    device,
10737     VkSamplerYcbcrConversion                    ycbcrConversion,
10738     const VkAllocationCallbacks*                pAllocator);
10739 #endif
10740 
10741 
10742 // VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
10743 #define VK_KHR_bind_memory2 1
10744 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
10745 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
10746 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
10747 
10748 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
10749 
10750 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
10751 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
10752 
10753 #ifndef VK_NO_PROTOTYPES
10754 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
10755     VkDevice                                    device,
10756     uint32_t                                    bindInfoCount,
10757     const VkBindBufferMemoryInfo*               pBindInfos);
10758 
10759 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
10760     VkDevice                                    device,
10761     uint32_t                                    bindInfoCount,
10762     const VkBindImageMemoryInfo*                pBindInfos);
10763 #endif
10764 
10765 
10766 // VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
10767 #define VK_KHR_maintenance3 1
10768 #define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
10769 #define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
10770 // VK_KHR_MAINTENANCE3_SPEC_VERSION is a deprecated alias
10771 #define VK_KHR_MAINTENANCE3_SPEC_VERSION  VK_KHR_MAINTENANCE_3_SPEC_VERSION
10772 // VK_KHR_MAINTENANCE3_EXTENSION_NAME is a deprecated alias
10773 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
10774 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
10775 
10776 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
10777 
10778 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
10779 
10780 #ifndef VK_NO_PROTOTYPES
10781 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
10782     VkDevice                                    device,
10783     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
10784     VkDescriptorSetLayoutSupport*               pSupport);
10785 #endif
10786 
10787 
10788 // VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
10789 #define VK_KHR_draw_indirect_count 1
10790 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
10791 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
10792 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
10793 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
10794 
10795 #ifndef VK_NO_PROTOTYPES
10796 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
10797     VkCommandBuffer                             commandBuffer,
10798     VkBuffer                                    buffer,
10799     VkDeviceSize                                offset,
10800     VkBuffer                                    countBuffer,
10801     VkDeviceSize                                countBufferOffset,
10802     uint32_t                                    maxDrawCount,
10803     uint32_t                                    stride);
10804 
10805 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
10806     VkCommandBuffer                             commandBuffer,
10807     VkBuffer                                    buffer,
10808     VkDeviceSize                                offset,
10809     VkBuffer                                    countBuffer,
10810     VkDeviceSize                                countBufferOffset,
10811     uint32_t                                    maxDrawCount,
10812     uint32_t                                    stride);
10813 #endif
10814 
10815 
10816 // VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
10817 #define VK_KHR_shader_subgroup_extended_types 1
10818 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
10819 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
10820 typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
10821 
10822 
10823 
10824 // VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
10825 #define VK_KHR_8bit_storage 1
10826 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1
10827 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
10828 typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
10829 
10830 
10831 
10832 // VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
10833 #define VK_KHR_shader_atomic_int64 1
10834 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
10835 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
10836 typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
10837 
10838 
10839 
10840 // VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
10841 #define VK_KHR_shader_clock 1
10842 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION  1
10843 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
10844 typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
10845     VkStructureType    sType;
10846     void*              pNext;
10847     VkBool32           shaderSubgroupClock;
10848     VkBool32           shaderDeviceClock;
10849 } VkPhysicalDeviceShaderClockFeaturesKHR;
10850 
10851 
10852 
10853 // VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
10854 #define VK_KHR_video_decode_h265 1
10855 #include "vk_video/vulkan_video_codec_h265std_decode.h"
10856 #define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
10857 #define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
10858 typedef struct VkVideoDecodeH265ProfileInfoKHR {
10859     VkStructureType           sType;
10860     const void*               pNext;
10861     StdVideoH265ProfileIdc    stdProfileIdc;
10862 } VkVideoDecodeH265ProfileInfoKHR;
10863 
10864 typedef struct VkVideoDecodeH265CapabilitiesKHR {
10865     VkStructureType         sType;
10866     void*                   pNext;
10867     StdVideoH265LevelIdc    maxLevelIdc;
10868 } VkVideoDecodeH265CapabilitiesKHR;
10869 
10870 typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
10871     VkStructureType                            sType;
10872     const void*                                pNext;
10873     uint32_t                                   stdVPSCount;
10874     const StdVideoH265VideoParameterSet*       pStdVPSs;
10875     uint32_t                                   stdSPSCount;
10876     const StdVideoH265SequenceParameterSet*    pStdSPSs;
10877     uint32_t                                   stdPPSCount;
10878     const StdVideoH265PictureParameterSet*     pStdPPSs;
10879 } VkVideoDecodeH265SessionParametersAddInfoKHR;
10880 
10881 typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
10882     VkStructureType                                        sType;
10883     const void*                                            pNext;
10884     uint32_t                                               maxStdVPSCount;
10885     uint32_t                                               maxStdSPSCount;
10886     uint32_t                                               maxStdPPSCount;
10887     const VkVideoDecodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
10888 } VkVideoDecodeH265SessionParametersCreateInfoKHR;
10889 
10890 typedef struct VkVideoDecodeH265PictureInfoKHR {
10891     VkStructureType                         sType;
10892     const void*                             pNext;
10893     const StdVideoDecodeH265PictureInfo*    pStdPictureInfo;
10894     uint32_t                                sliceSegmentCount;
10895     const uint32_t*                         pSliceSegmentOffsets;
10896 } VkVideoDecodeH265PictureInfoKHR;
10897 
10898 typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
10899     VkStructureType                           sType;
10900     const void*                               pNext;
10901     const StdVideoDecodeH265ReferenceInfo*    pStdReferenceInfo;
10902 } VkVideoDecodeH265DpbSlotInfoKHR;
10903 
10904 
10905 
10906 // VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
10907 #define VK_KHR_global_priority 1
10908 #define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
10909 #define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
10910 #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR   VK_MAX_GLOBAL_PRIORITY_SIZE
10911 typedef VkQueueGlobalPriority VkQueueGlobalPriorityKHR;
10912 
10913 typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoKHR;
10914 
10915 typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
10916 
10917 typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesKHR;
10918 
10919 
10920 
10921 // VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
10922 #define VK_KHR_driver_properties 1
10923 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
10924 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
10925 #define VK_MAX_DRIVER_NAME_SIZE_KHR       VK_MAX_DRIVER_NAME_SIZE
10926 #define VK_MAX_DRIVER_INFO_SIZE_KHR       VK_MAX_DRIVER_INFO_SIZE
10927 typedef VkDriverId VkDriverIdKHR;
10928 
10929 typedef VkConformanceVersion VkConformanceVersionKHR;
10930 
10931 typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
10932 
10933 
10934 
10935 // VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
10936 #define VK_KHR_shader_float_controls 1
10937 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
10938 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
10939 typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
10940 
10941 typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
10942 
10943 
10944 
10945 // VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
10946 #define VK_KHR_depth_stencil_resolve 1
10947 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
10948 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
10949 typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
10950 
10951 typedef VkResolveModeFlags VkResolveModeFlagsKHR;
10952 
10953 typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
10954 
10955 typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
10956 
10957 
10958 
10959 // VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
10960 #define VK_KHR_swapchain_mutable_format 1
10961 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
10962 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
10963 
10964 
10965 // VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
10966 #define VK_KHR_timeline_semaphore 1
10967 #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
10968 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
10969 typedef VkSemaphoreType VkSemaphoreTypeKHR;
10970 
10971 typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
10972 
10973 typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
10974 
10975 typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
10976 
10977 typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
10978 
10979 typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
10980 
10981 typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
10982 
10983 typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
10984 
10985 typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
10986 
10987 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
10988 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
10989 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
10990 
10991 #ifndef VK_NO_PROTOTYPES
10992 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
10993     VkDevice                                    device,
10994     VkSemaphore                                 semaphore,
10995     uint64_t*                                   pValue);
10996 
10997 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
10998     VkDevice                                    device,
10999     const VkSemaphoreWaitInfo*                  pWaitInfo,
11000     uint64_t                                    timeout);
11001 
11002 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
11003     VkDevice                                    device,
11004     const VkSemaphoreSignalInfo*                pSignalInfo);
11005 #endif
11006 
11007 
11008 // VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
11009 #define VK_KHR_vulkan_memory_model 1
11010 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
11011 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
11012 typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
11013 
11014 
11015 
11016 // VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
11017 #define VK_KHR_shader_terminate_invocation 1
11018 #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
11019 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
11020 typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
11021 
11022 
11023 
11024 // VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
11025 #define VK_KHR_fragment_shading_rate 1
11026 #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
11027 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
11028 
11029 typedef enum VkFragmentShadingRateCombinerOpKHR {
11030     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
11031     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
11032     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
11033     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
11034     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
11035     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
11036 } VkFragmentShadingRateCombinerOpKHR;
11037 typedef struct VkFragmentShadingRateAttachmentInfoKHR {
11038     VkStructureType                  sType;
11039     const void*                      pNext;
11040     const VkAttachmentReference2*    pFragmentShadingRateAttachment;
11041     VkExtent2D                       shadingRateAttachmentTexelSize;
11042 } VkFragmentShadingRateAttachmentInfoKHR;
11043 
11044 typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
11045     VkStructureType                       sType;
11046     const void*                           pNext;
11047     VkExtent2D                            fragmentSize;
11048     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
11049 } VkPipelineFragmentShadingRateStateCreateInfoKHR;
11050 
11051 typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
11052     VkStructureType    sType;
11053     void*              pNext;
11054     VkBool32           pipelineFragmentShadingRate;
11055     VkBool32           primitiveFragmentShadingRate;
11056     VkBool32           attachmentFragmentShadingRate;
11057 } VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
11058 
11059 typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
11060     VkStructureType          sType;
11061     void*                    pNext;
11062     VkExtent2D               minFragmentShadingRateAttachmentTexelSize;
11063     VkExtent2D               maxFragmentShadingRateAttachmentTexelSize;
11064     uint32_t                 maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
11065     VkBool32                 primitiveFragmentShadingRateWithMultipleViewports;
11066     VkBool32                 layeredShadingRateAttachments;
11067     VkBool32                 fragmentShadingRateNonTrivialCombinerOps;
11068     VkExtent2D               maxFragmentSize;
11069     uint32_t                 maxFragmentSizeAspectRatio;
11070     uint32_t                 maxFragmentShadingRateCoverageSamples;
11071     VkSampleCountFlagBits    maxFragmentShadingRateRasterizationSamples;
11072     VkBool32                 fragmentShadingRateWithShaderDepthStencilWrites;
11073     VkBool32                 fragmentShadingRateWithSampleMask;
11074     VkBool32                 fragmentShadingRateWithShaderSampleMask;
11075     VkBool32                 fragmentShadingRateWithConservativeRasterization;
11076     VkBool32                 fragmentShadingRateWithFragmentShaderInterlock;
11077     VkBool32                 fragmentShadingRateWithCustomSampleLocations;
11078     VkBool32                 fragmentShadingRateStrictMultiplyCombiner;
11079 } VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
11080 
11081 typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
11082     VkStructureType       sType;
11083     void*                 pNext;
11084     VkSampleCountFlags    sampleCounts;
11085     VkExtent2D            fragmentSize;
11086 } VkPhysicalDeviceFragmentShadingRateKHR;
11087 
11088 typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
11089     VkStructureType    sType;
11090     const void*        pNext;
11091     VkImageView        imageView;
11092     VkImageLayout      imageLayout;
11093     VkExtent2D         shadingRateAttachmentTexelSize;
11094 } VkRenderingFragmentShadingRateAttachmentInfoKHR;
11095 
11096 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11097 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer           commandBuffer, const VkExtent2D*                           pFragmentSize, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
11098 
11099 #ifndef VK_NO_PROTOTYPES
11100 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
11101     VkPhysicalDevice                            physicalDevice,
11102     uint32_t*                                   pFragmentShadingRateCount,
11103     VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates);
11104 
11105 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
11106     VkCommandBuffer                             commandBuffer,
11107     const VkExtent2D*                           pFragmentSize,
11108     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
11109 #endif
11110 
11111 
11112 // VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
11113 #define VK_KHR_dynamic_rendering_local_read 1
11114 #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
11115 #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
11116 typedef VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
11117 
11118 typedef VkRenderingAttachmentLocationInfo VkRenderingAttachmentLocationInfoKHR;
11119 
11120 typedef VkRenderingInputAttachmentIndexInfo VkRenderingInputAttachmentIndexInfoKHR;
11121 
11122 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
11123 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11124 
11125 #ifndef VK_NO_PROTOTYPES
11126 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
11127     VkCommandBuffer                             commandBuffer,
11128     const VkRenderingAttachmentLocationInfo*    pLocationInfo);
11129 
11130 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
11131     VkCommandBuffer                             commandBuffer,
11132     const VkRenderingInputAttachmentIndexInfo*  pInputAttachmentIndexInfo);
11133 #endif
11134 
11135 
11136 // VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
11137 #define VK_KHR_shader_quad_control 1
11138 #define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
11139 #define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
11140 typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
11141     VkStructureType    sType;
11142     void*              pNext;
11143     VkBool32           shaderQuadControl;
11144 } VkPhysicalDeviceShaderQuadControlFeaturesKHR;
11145 
11146 
11147 
11148 // VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
11149 #define VK_KHR_spirv_1_4 1
11150 #define VK_KHR_SPIRV_1_4_SPEC_VERSION     1
11151 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME   "VK_KHR_spirv_1_4"
11152 
11153 
11154 // VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
11155 #define VK_KHR_surface_protected_capabilities 1
11156 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
11157 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
11158 typedef struct VkSurfaceProtectedCapabilitiesKHR {
11159     VkStructureType    sType;
11160     const void*        pNext;
11161     VkBool32           supportsProtected;
11162 } VkSurfaceProtectedCapabilitiesKHR;
11163 
11164 
11165 
11166 // VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
11167 #define VK_KHR_separate_depth_stencil_layouts 1
11168 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
11169 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
11170 typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
11171 
11172 typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
11173 
11174 typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
11175 
11176 
11177 
11178 // VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
11179 #define VK_KHR_present_wait 1
11180 #define VK_KHR_PRESENT_WAIT_SPEC_VERSION  1
11181 #define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
11182 typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
11183     VkStructureType    sType;
11184     void*              pNext;
11185     VkBool32           presentWait;
11186 } VkPhysicalDevicePresentWaitFeaturesKHR;
11187 
11188 typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
11189 
11190 #ifndef VK_NO_PROTOTYPES
11191 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
11192     VkDevice                                    device,
11193     VkSwapchainKHR                              swapchain,
11194     uint64_t                                    presentId,
11195     uint64_t                                    timeout);
11196 #endif
11197 
11198 
11199 // VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
11200 #define VK_KHR_uniform_buffer_standard_layout 1
11201 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
11202 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
11203 typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
11204 
11205 
11206 
11207 // VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
11208 #define VK_KHR_buffer_device_address 1
11209 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
11210 #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
11211 typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
11212 
11213 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
11214 
11215 typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
11216 
11217 typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
11218 
11219 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
11220 
11221 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11222 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11223 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11224 
11225 #ifndef VK_NO_PROTOTYPES
11226 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
11227     VkDevice                                    device,
11228     const VkBufferDeviceAddressInfo*            pInfo);
11229 
11230 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
11231     VkDevice                                    device,
11232     const VkBufferDeviceAddressInfo*            pInfo);
11233 
11234 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
11235     VkDevice                                    device,
11236     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11237 #endif
11238 
11239 
11240 // VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
11241 #define VK_KHR_deferred_host_operations 1
11242 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
11243 #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
11244 #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
11245 typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
11246 typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
11247 typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
11248 typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
11249 typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
11250 
11251 #ifndef VK_NO_PROTOTYPES
11252 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
11253     VkDevice                                    device,
11254     const VkAllocationCallbacks*                pAllocator,
11255     VkDeferredOperationKHR*                     pDeferredOperation);
11256 
11257 VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
11258     VkDevice                                    device,
11259     VkDeferredOperationKHR                      operation,
11260     const VkAllocationCallbacks*                pAllocator);
11261 
11262 VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
11263     VkDevice                                    device,
11264     VkDeferredOperationKHR                      operation);
11265 
11266 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
11267     VkDevice                                    device,
11268     VkDeferredOperationKHR                      operation);
11269 
11270 VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
11271     VkDevice                                    device,
11272     VkDeferredOperationKHR                      operation);
11273 #endif
11274 
11275 
11276 // VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
11277 #define VK_KHR_pipeline_executable_properties 1
11278 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
11279 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
11280 
11281 typedef enum VkPipelineExecutableStatisticFormatKHR {
11282     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
11283     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
11284     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
11285     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
11286     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
11287 } VkPipelineExecutableStatisticFormatKHR;
11288 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11289     VkStructureType    sType;
11290     void*              pNext;
11291     VkBool32           pipelineExecutableInfo;
11292 } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
11293 
11294 typedef struct VkPipelineInfoKHR {
11295     VkStructureType    sType;
11296     const void*        pNext;
11297     VkPipeline         pipeline;
11298 } VkPipelineInfoKHR;
11299 
11300 typedef struct VkPipelineExecutablePropertiesKHR {
11301     VkStructureType       sType;
11302     void*                 pNext;
11303     VkShaderStageFlags    stages;
11304     char                  name[VK_MAX_DESCRIPTION_SIZE];
11305     char                  description[VK_MAX_DESCRIPTION_SIZE];
11306     uint32_t              subgroupSize;
11307 } VkPipelineExecutablePropertiesKHR;
11308 
11309 typedef struct VkPipelineExecutableInfoKHR {
11310     VkStructureType    sType;
11311     const void*        pNext;
11312     VkPipeline         pipeline;
11313     uint32_t           executableIndex;
11314 } VkPipelineExecutableInfoKHR;
11315 
11316 typedef union VkPipelineExecutableStatisticValueKHR {
11317     VkBool32    b32;
11318     int64_t     i64;
11319     uint64_t    u64;
11320     double      f64;
11321 } VkPipelineExecutableStatisticValueKHR;
11322 
11323 typedef struct VkPipelineExecutableStatisticKHR {
11324     VkStructureType                           sType;
11325     void*                                     pNext;
11326     char                                      name[VK_MAX_DESCRIPTION_SIZE];
11327     char                                      description[VK_MAX_DESCRIPTION_SIZE];
11328     VkPipelineExecutableStatisticFormatKHR    format;
11329     VkPipelineExecutableStatisticValueKHR     value;
11330 } VkPipelineExecutableStatisticKHR;
11331 
11332 typedef struct VkPipelineExecutableInternalRepresentationKHR {
11333     VkStructureType    sType;
11334     void*              pNext;
11335     char               name[VK_MAX_DESCRIPTION_SIZE];
11336     char               description[VK_MAX_DESCRIPTION_SIZE];
11337     VkBool32           isText;
11338     size_t             dataSize;
11339     void*              pData;
11340 } VkPipelineExecutableInternalRepresentationKHR;
11341 
11342 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice                        device, const VkPipelineInfoKHR*        pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
11343 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
11344 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
11345 
11346 #ifndef VK_NO_PROTOTYPES
11347 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
11348     VkDevice                                    device,
11349     const VkPipelineInfoKHR*                    pPipelineInfo,
11350     uint32_t*                                   pExecutableCount,
11351     VkPipelineExecutablePropertiesKHR*          pProperties);
11352 
11353 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
11354     VkDevice                                    device,
11355     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
11356     uint32_t*                                   pStatisticCount,
11357     VkPipelineExecutableStatisticKHR*           pStatistics);
11358 
11359 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
11360     VkDevice                                    device,
11361     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
11362     uint32_t*                                   pInternalRepresentationCount,
11363     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
11364 #endif
11365 
11366 
11367 // VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
11368 #define VK_KHR_map_memory2 1
11369 #define VK_KHR_MAP_MEMORY_2_SPEC_VERSION  1
11370 #define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
11371 typedef VkMemoryUnmapFlagBits VkMemoryUnmapFlagBitsKHR;
11372 
11373 typedef VkMemoryUnmapFlags VkMemoryUnmapFlagsKHR;
11374 
11375 typedef VkMemoryMapInfo VkMemoryMapInfoKHR;
11376 
11377 typedef VkMemoryUnmapInfo VkMemoryUnmapInfoKHR;
11378 
11379 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
11380 typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
11381 
11382 #ifndef VK_NO_PROTOTYPES
11383 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
11384     VkDevice                                    device,
11385     const VkMemoryMapInfo*                      pMemoryMapInfo,
11386     void**                                      ppData);
11387 
11388 VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
11389     VkDevice                                    device,
11390     const VkMemoryUnmapInfo*                    pMemoryUnmapInfo);
11391 #endif
11392 
11393 
11394 // VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
11395 #define VK_KHR_shader_integer_dot_product 1
11396 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
11397 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
11398 typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
11399 
11400 typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
11401 
11402 
11403 
11404 // VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
11405 #define VK_KHR_pipeline_library 1
11406 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
11407 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
11408 typedef struct VkPipelineLibraryCreateInfoKHR {
11409     VkStructureType      sType;
11410     const void*          pNext;
11411     uint32_t             libraryCount;
11412     const VkPipeline*    pLibraries;
11413 } VkPipelineLibraryCreateInfoKHR;
11414 
11415 
11416 
11417 // VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
11418 #define VK_KHR_shader_non_semantic_info 1
11419 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
11420 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
11421 
11422 
11423 // VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
11424 #define VK_KHR_present_id 1
11425 #define VK_KHR_PRESENT_ID_SPEC_VERSION    1
11426 #define VK_KHR_PRESENT_ID_EXTENSION_NAME  "VK_KHR_present_id"
11427 typedef struct VkPresentIdKHR {
11428     VkStructureType    sType;
11429     const void*        pNext;
11430     uint32_t           swapchainCount;
11431     const uint64_t*    pPresentIds;
11432 } VkPresentIdKHR;
11433 
11434 typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
11435     VkStructureType    sType;
11436     void*              pNext;
11437     VkBool32           presentId;
11438 } VkPhysicalDevicePresentIdFeaturesKHR;
11439 
11440 
11441 
11442 // VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
11443 #define VK_KHR_video_encode_queue 1
11444 #define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
11445 #define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
11446 
11447 typedef enum VkVideoEncodeTuningModeKHR {
11448     VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
11449     VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
11450     VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
11451     VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
11452     VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
11453     VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
11454 } VkVideoEncodeTuningModeKHR;
11455 
11456 typedef enum VkVideoEncodeFlagBitsKHR {
11457     VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000001,
11458     VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR = 0x00000002,
11459     VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11460 } VkVideoEncodeFlagBitsKHR;
11461 typedef VkFlags VkVideoEncodeFlagsKHR;
11462 
11463 typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
11464     VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
11465     VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
11466     VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000004,
11467     VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR = 0x00000008,
11468     VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11469 } VkVideoEncodeCapabilityFlagBitsKHR;
11470 typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
11471 
11472 typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
11473     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
11474     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
11475     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
11476     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
11477     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11478 } VkVideoEncodeRateControlModeFlagBitsKHR;
11479 typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
11480 
11481 typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
11482     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
11483     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
11484     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
11485     VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11486 } VkVideoEncodeFeedbackFlagBitsKHR;
11487 typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
11488 
11489 typedef enum VkVideoEncodeUsageFlagBitsKHR {
11490     VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
11491     VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
11492     VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
11493     VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
11494     VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
11495     VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11496 } VkVideoEncodeUsageFlagBitsKHR;
11497 typedef VkFlags VkVideoEncodeUsageFlagsKHR;
11498 
11499 typedef enum VkVideoEncodeContentFlagBitsKHR {
11500     VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
11501     VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
11502     VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
11503     VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
11504     VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11505 } VkVideoEncodeContentFlagBitsKHR;
11506 typedef VkFlags VkVideoEncodeContentFlagsKHR;
11507 typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
11508 typedef struct VkVideoEncodeInfoKHR {
11509     VkStructureType                       sType;
11510     const void*                           pNext;
11511     VkVideoEncodeFlagsKHR                 flags;
11512     VkBuffer                              dstBuffer;
11513     VkDeviceSize                          dstBufferOffset;
11514     VkDeviceSize                          dstBufferRange;
11515     VkVideoPictureResourceInfoKHR         srcPictureResource;
11516     const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
11517     uint32_t                              referenceSlotCount;
11518     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
11519     uint32_t                              precedingExternallyEncodedBytes;
11520 } VkVideoEncodeInfoKHR;
11521 
11522 typedef struct VkVideoEncodeCapabilitiesKHR {
11523     VkStructureType                         sType;
11524     void*                                   pNext;
11525     VkVideoEncodeCapabilityFlagsKHR         flags;
11526     VkVideoEncodeRateControlModeFlagsKHR    rateControlModes;
11527     uint32_t                                maxRateControlLayers;
11528     uint64_t                                maxBitrate;
11529     uint32_t                                maxQualityLevels;
11530     VkExtent2D                              encodeInputPictureGranularity;
11531     VkVideoEncodeFeedbackFlagsKHR           supportedEncodeFeedbackFlags;
11532 } VkVideoEncodeCapabilitiesKHR;
11533 
11534 typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
11535     VkStructureType                  sType;
11536     const void*                      pNext;
11537     VkVideoEncodeFeedbackFlagsKHR    encodeFeedbackFlags;
11538 } VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
11539 
11540 typedef struct VkVideoEncodeUsageInfoKHR {
11541     VkStructureType                 sType;
11542     const void*                     pNext;
11543     VkVideoEncodeUsageFlagsKHR      videoUsageHints;
11544     VkVideoEncodeContentFlagsKHR    videoContentHints;
11545     VkVideoEncodeTuningModeKHR      tuningMode;
11546 } VkVideoEncodeUsageInfoKHR;
11547 
11548 typedef struct VkVideoEncodeRateControlLayerInfoKHR {
11549     VkStructureType    sType;
11550     const void*        pNext;
11551     uint64_t           averageBitrate;
11552     uint64_t           maxBitrate;
11553     uint32_t           frameRateNumerator;
11554     uint32_t           frameRateDenominator;
11555 } VkVideoEncodeRateControlLayerInfoKHR;
11556 
11557 typedef struct VkVideoEncodeRateControlInfoKHR {
11558     VkStructureType                                sType;
11559     const void*                                    pNext;
11560     VkVideoEncodeRateControlFlagsKHR               flags;
11561     VkVideoEncodeRateControlModeFlagBitsKHR        rateControlMode;
11562     uint32_t                                       layerCount;
11563     const VkVideoEncodeRateControlLayerInfoKHR*    pLayers;
11564     uint32_t                                       virtualBufferSizeInMs;
11565     uint32_t                                       initialVirtualBufferSizeInMs;
11566 } VkVideoEncodeRateControlInfoKHR;
11567 
11568 typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
11569     VkStructureType                 sType;
11570     const void*                     pNext;
11571     const VkVideoProfileInfoKHR*    pVideoProfile;
11572     uint32_t                        qualityLevel;
11573 } VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
11574 
11575 typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
11576     VkStructureType                            sType;
11577     void*                                      pNext;
11578     VkVideoEncodeRateControlModeFlagBitsKHR    preferredRateControlMode;
11579     uint32_t                                   preferredRateControlLayerCount;
11580 } VkVideoEncodeQualityLevelPropertiesKHR;
11581 
11582 typedef struct VkVideoEncodeQualityLevelInfoKHR {
11583     VkStructureType    sType;
11584     const void*        pNext;
11585     uint32_t           qualityLevel;
11586 } VkVideoEncodeQualityLevelInfoKHR;
11587 
11588 typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
11589     VkStructureType                sType;
11590     const void*                    pNext;
11591     VkVideoSessionParametersKHR    videoSessionParameters;
11592 } VkVideoEncodeSessionParametersGetInfoKHR;
11593 
11594 typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
11595     VkStructureType    sType;
11596     void*              pNext;
11597     VkBool32           hasOverrides;
11598 } VkVideoEncodeSessionParametersFeedbackInfoKHR;
11599 
11600 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
11601 typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
11602 typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
11603 
11604 #ifndef VK_NO_PROTOTYPES
11605 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
11606     VkPhysicalDevice                            physicalDevice,
11607     const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
11608     VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties);
11609 
11610 VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
11611     VkDevice                                    device,
11612     const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
11613     VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
11614     size_t*                                     pDataSize,
11615     void*                                       pData);
11616 
11617 VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
11618     VkCommandBuffer                             commandBuffer,
11619     const VkVideoEncodeInfoKHR*                 pEncodeInfo);
11620 #endif
11621 
11622 
11623 // VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
11624 #define VK_KHR_synchronization2 1
11625 #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
11626 #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
11627 typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
11628 
11629 typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
11630 
11631 typedef VkAccessFlags2 VkAccessFlags2KHR;
11632 
11633 typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
11634 
11635 typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
11636 
11637 typedef VkSubmitFlags VkSubmitFlagsKHR;
11638 
11639 typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
11640 
11641 typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
11642 
11643 typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
11644 
11645 typedef VkDependencyInfo VkDependencyInfoKHR;
11646 
11647 typedef VkSubmitInfo2 VkSubmitInfo2KHR;
11648 
11649 typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
11650 
11651 typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
11652 
11653 typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
11654 
11655 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
11656 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
11657 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
11658 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
11659 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
11660 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
11661 
11662 #ifndef VK_NO_PROTOTYPES
11663 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
11664     VkCommandBuffer                             commandBuffer,
11665     VkEvent                                     event,
11666     const VkDependencyInfo*                     pDependencyInfo);
11667 
11668 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
11669     VkCommandBuffer                             commandBuffer,
11670     VkEvent                                     event,
11671     VkPipelineStageFlags2                       stageMask);
11672 
11673 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
11674     VkCommandBuffer                             commandBuffer,
11675     uint32_t                                    eventCount,
11676     const VkEvent*                              pEvents,
11677     const VkDependencyInfo*                     pDependencyInfos);
11678 
11679 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
11680     VkCommandBuffer                             commandBuffer,
11681     const VkDependencyInfo*                     pDependencyInfo);
11682 
11683 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
11684     VkCommandBuffer                             commandBuffer,
11685     VkPipelineStageFlags2                       stage,
11686     VkQueryPool                                 queryPool,
11687     uint32_t                                    query);
11688 
11689 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
11690     VkQueue                                     queue,
11691     uint32_t                                    submitCount,
11692     const VkSubmitInfo2*                        pSubmits,
11693     VkFence                                     fence);
11694 #endif
11695 
11696 
11697 // VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
11698 #define VK_KHR_fragment_shader_barycentric 1
11699 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
11700 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
11701 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
11702     VkStructureType    sType;
11703     void*              pNext;
11704     VkBool32           fragmentShaderBarycentric;
11705 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
11706 
11707 typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
11708     VkStructureType    sType;
11709     void*              pNext;
11710     VkBool32           triStripVertexOrderIndependentOfProvokingVertex;
11711 } VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
11712 
11713 
11714 
11715 // VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
11716 #define VK_KHR_shader_subgroup_uniform_control_flow 1
11717 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
11718 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
11719 typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
11720     VkStructureType    sType;
11721     void*              pNext;
11722     VkBool32           shaderSubgroupUniformControlFlow;
11723 } VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
11724 
11725 
11726 
11727 // VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
11728 #define VK_KHR_zero_initialize_workgroup_memory 1
11729 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
11730 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
11731 typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
11732 
11733 
11734 
11735 // VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
11736 #define VK_KHR_workgroup_memory_explicit_layout 1
11737 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
11738 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
11739 typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
11740     VkStructureType    sType;
11741     void*              pNext;
11742     VkBool32           workgroupMemoryExplicitLayout;
11743     VkBool32           workgroupMemoryExplicitLayoutScalarBlockLayout;
11744     VkBool32           workgroupMemoryExplicitLayout8BitAccess;
11745     VkBool32           workgroupMemoryExplicitLayout16BitAccess;
11746 } VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
11747 
11748 
11749 
11750 // VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
11751 #define VK_KHR_copy_commands2 1
11752 #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
11753 #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
11754 typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
11755 
11756 typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
11757 
11758 typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
11759 
11760 typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
11761 
11762 typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
11763 
11764 typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
11765 
11766 typedef VkBufferCopy2 VkBufferCopy2KHR;
11767 
11768 typedef VkImageCopy2 VkImageCopy2KHR;
11769 
11770 typedef VkImageBlit2 VkImageBlit2KHR;
11771 
11772 typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
11773 
11774 typedef VkImageResolve2 VkImageResolve2KHR;
11775 
11776 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
11777 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
11778 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
11779 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
11780 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
11781 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
11782 
11783 #ifndef VK_NO_PROTOTYPES
11784 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
11785     VkCommandBuffer                             commandBuffer,
11786     const VkCopyBufferInfo2*                    pCopyBufferInfo);
11787 
11788 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
11789     VkCommandBuffer                             commandBuffer,
11790     const VkCopyImageInfo2*                     pCopyImageInfo);
11791 
11792 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
11793     VkCommandBuffer                             commandBuffer,
11794     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
11795 
11796 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
11797     VkCommandBuffer                             commandBuffer,
11798     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
11799 
11800 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
11801     VkCommandBuffer                             commandBuffer,
11802     const VkBlitImageInfo2*                     pBlitImageInfo);
11803 
11804 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
11805     VkCommandBuffer                             commandBuffer,
11806     const VkResolveImageInfo2*                  pResolveImageInfo);
11807 #endif
11808 
11809 
11810 // VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
11811 #define VK_KHR_format_feature_flags2 1
11812 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
11813 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
11814 typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
11815 
11816 typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
11817 
11818 typedef VkFormatProperties3 VkFormatProperties3KHR;
11819 
11820 
11821 
11822 // VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
11823 #define VK_KHR_ray_tracing_maintenance1 1
11824 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
11825 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
11826 typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
11827     VkStructureType    sType;
11828     void*              pNext;
11829     VkBool32           rayTracingMaintenance1;
11830     VkBool32           rayTracingPipelineTraceRaysIndirect2;
11831 } VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
11832 
11833 typedef struct VkTraceRaysIndirectCommand2KHR {
11834     VkDeviceAddress    raygenShaderRecordAddress;
11835     VkDeviceSize       raygenShaderRecordSize;
11836     VkDeviceAddress    missShaderBindingTableAddress;
11837     VkDeviceSize       missShaderBindingTableSize;
11838     VkDeviceSize       missShaderBindingTableStride;
11839     VkDeviceAddress    hitShaderBindingTableAddress;
11840     VkDeviceSize       hitShaderBindingTableSize;
11841     VkDeviceSize       hitShaderBindingTableStride;
11842     VkDeviceAddress    callableShaderBindingTableAddress;
11843     VkDeviceSize       callableShaderBindingTableSize;
11844     VkDeviceSize       callableShaderBindingTableStride;
11845     uint32_t           width;
11846     uint32_t           height;
11847     uint32_t           depth;
11848 } VkTraceRaysIndirectCommand2KHR;
11849 
11850 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
11851 
11852 #ifndef VK_NO_PROTOTYPES
11853 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
11854     VkCommandBuffer                             commandBuffer,
11855     VkDeviceAddress                             indirectDeviceAddress);
11856 #endif
11857 
11858 
11859 // VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
11860 #define VK_KHR_portability_enumeration 1
11861 #define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
11862 #define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
11863 
11864 
11865 // VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
11866 #define VK_KHR_maintenance4 1
11867 #define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
11868 #define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
11869 typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
11870 
11871 typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
11872 
11873 typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
11874 
11875 typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
11876 
11877 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11878 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11879 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11880 
11881 #ifndef VK_NO_PROTOTYPES
11882 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
11883     VkDevice                                    device,
11884     const VkDeviceBufferMemoryRequirements*     pInfo,
11885     VkMemoryRequirements2*                      pMemoryRequirements);
11886 
11887 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
11888     VkDevice                                    device,
11889     const VkDeviceImageMemoryRequirements*      pInfo,
11890     VkMemoryRequirements2*                      pMemoryRequirements);
11891 
11892 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
11893     VkDevice                                    device,
11894     const VkDeviceImageMemoryRequirements*      pInfo,
11895     uint32_t*                                   pSparseMemoryRequirementCount,
11896     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
11897 #endif
11898 
11899 
11900 // VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
11901 #define VK_KHR_shader_subgroup_rotate 1
11902 #define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
11903 #define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
11904 typedef VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
11905 
11906 
11907 
11908 // VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
11909 #define VK_KHR_shader_maximal_reconvergence 1
11910 #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
11911 #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
11912 typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
11913     VkStructureType    sType;
11914     void*              pNext;
11915     VkBool32           shaderMaximalReconvergence;
11916 } VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
11917 
11918 
11919 
11920 // VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
11921 #define VK_KHR_maintenance5 1
11922 #define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
11923 #define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
11924 typedef VkPipelineCreateFlags2 VkPipelineCreateFlags2KHR;
11925 
11926 typedef VkPipelineCreateFlagBits2 VkPipelineCreateFlagBits2KHR;
11927 
11928 typedef VkBufferUsageFlags2 VkBufferUsageFlags2KHR;
11929 
11930 typedef VkBufferUsageFlagBits2 VkBufferUsageFlagBits2KHR;
11931 
11932 typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR;
11933 
11934 typedef VkPhysicalDeviceMaintenance5Properties VkPhysicalDeviceMaintenance5PropertiesKHR;
11935 
11936 typedef VkRenderingAreaInfo VkRenderingAreaInfoKHR;
11937 
11938 typedef VkDeviceImageSubresourceInfo VkDeviceImageSubresourceInfoKHR;
11939 
11940 typedef VkImageSubresource2 VkImageSubresource2KHR;
11941 
11942 typedef VkSubresourceLayout2 VkSubresourceLayout2KHR;
11943 
11944 typedef VkPipelineCreateFlags2CreateInfo VkPipelineCreateFlags2CreateInfoKHR;
11945 
11946 typedef VkBufferUsageFlags2CreateInfo VkBufferUsageFlags2CreateInfoKHR;
11947 
11948 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
11949 typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
11950 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
11951 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
11952 
11953 #ifndef VK_NO_PROTOTYPES
11954 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
11955     VkCommandBuffer                             commandBuffer,
11956     VkBuffer                                    buffer,
11957     VkDeviceSize                                offset,
11958     VkDeviceSize                                size,
11959     VkIndexType                                 indexType);
11960 
11961 VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
11962     VkDevice                                    device,
11963     const VkRenderingAreaInfo*                  pRenderingAreaInfo,
11964     VkExtent2D*                                 pGranularity);
11965 
11966 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
11967     VkDevice                                    device,
11968     const VkDeviceImageSubresourceInfo*         pInfo,
11969     VkSubresourceLayout2*                       pLayout);
11970 
11971 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
11972     VkDevice                                    device,
11973     VkImage                                     image,
11974     const VkImageSubresource2*                  pSubresource,
11975     VkSubresourceLayout2*                       pLayout);
11976 #endif
11977 
11978 
11979 // VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
11980 #define VK_KHR_ray_tracing_position_fetch 1
11981 #define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
11982 #define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
11983 typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
11984     VkStructureType    sType;
11985     void*              pNext;
11986     VkBool32           rayTracingPositionFetch;
11987 } VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
11988 
11989 
11990 
11991 // VK_KHR_pipeline_binary is a preprocessor guard. Do not pass it to API calls.
11992 #define VK_KHR_pipeline_binary 1
11993 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineBinaryKHR)
11994 #define VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR 32U
11995 #define VK_KHR_PIPELINE_BINARY_SPEC_VERSION 1
11996 #define VK_KHR_PIPELINE_BINARY_EXTENSION_NAME "VK_KHR_pipeline_binary"
11997 typedef struct VkPhysicalDevicePipelineBinaryFeaturesKHR {
11998     VkStructureType    sType;
11999     void*              pNext;
12000     VkBool32           pipelineBinaries;
12001 } VkPhysicalDevicePipelineBinaryFeaturesKHR;
12002 
12003 typedef struct VkPhysicalDevicePipelineBinaryPropertiesKHR {
12004     VkStructureType    sType;
12005     void*              pNext;
12006     VkBool32           pipelineBinaryInternalCache;
12007     VkBool32           pipelineBinaryInternalCacheControl;
12008     VkBool32           pipelineBinaryPrefersInternalCache;
12009     VkBool32           pipelineBinaryPrecompiledInternalCache;
12010     VkBool32           pipelineBinaryCompressedData;
12011 } VkPhysicalDevicePipelineBinaryPropertiesKHR;
12012 
12013 typedef struct VkDevicePipelineBinaryInternalCacheControlKHR {
12014     VkStructureType    sType;
12015     const void*        pNext;
12016     VkBool32           disableInternalCache;
12017 } VkDevicePipelineBinaryInternalCacheControlKHR;
12018 
12019 typedef struct VkPipelineBinaryKeyKHR {
12020     VkStructureType    sType;
12021     void*              pNext;
12022     uint32_t           keySize;
12023     uint8_t            key[VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR];
12024 } VkPipelineBinaryKeyKHR;
12025 
12026 typedef struct VkPipelineBinaryDataKHR {
12027     size_t    dataSize;
12028     void*     pData;
12029 } VkPipelineBinaryDataKHR;
12030 
12031 typedef struct VkPipelineBinaryKeysAndDataKHR {
12032     uint32_t                          binaryCount;
12033     const VkPipelineBinaryKeyKHR*     pPipelineBinaryKeys;
12034     const VkPipelineBinaryDataKHR*    pPipelineBinaryData;
12035 } VkPipelineBinaryKeysAndDataKHR;
12036 
12037 typedef struct VkPipelineCreateInfoKHR {
12038     VkStructureType    sType;
12039     void*              pNext;
12040 } VkPipelineCreateInfoKHR;
12041 
12042 typedef struct VkPipelineBinaryCreateInfoKHR {
12043     VkStructureType                          sType;
12044     const void*                              pNext;
12045     const VkPipelineBinaryKeysAndDataKHR*    pKeysAndDataInfo;
12046     VkPipeline                               pipeline;
12047     const VkPipelineCreateInfoKHR*           pPipelineCreateInfo;
12048 } VkPipelineBinaryCreateInfoKHR;
12049 
12050 typedef struct VkPipelineBinaryInfoKHR {
12051     VkStructureType               sType;
12052     const void*                   pNext;
12053     uint32_t                      binaryCount;
12054     const VkPipelineBinaryKHR*    pPipelineBinaries;
12055 } VkPipelineBinaryInfoKHR;
12056 
12057 typedef struct VkReleaseCapturedPipelineDataInfoKHR {
12058     VkStructureType    sType;
12059     void*              pNext;
12060     VkPipeline         pipeline;
12061 } VkReleaseCapturedPipelineDataInfoKHR;
12062 
12063 typedef struct VkPipelineBinaryDataInfoKHR {
12064     VkStructureType        sType;
12065     void*                  pNext;
12066     VkPipelineBinaryKHR    pipelineBinary;
12067 } VkPipelineBinaryDataInfoKHR;
12068 
12069 typedef struct VkPipelineBinaryHandlesInfoKHR {
12070     VkStructureType         sType;
12071     const void*             pNext;
12072     uint32_t                pipelineBinaryCount;
12073     VkPipelineBinaryKHR*    pPipelineBinaries;
12074 } VkPipelineBinaryHandlesInfoKHR;
12075 
12076 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineBinariesKHR)(VkDevice device, const VkPipelineBinaryCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineBinaryHandlesInfoKHR* pBinaries);
12077 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineBinaryKHR)(VkDevice device, VkPipelineBinaryKHR pipelineBinary, const VkAllocationCallbacks* pAllocator);
12078 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineKeyKHR)(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey);
12079 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineBinaryDataKHR)(VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData);
12080 typedef VkResult (VKAPI_PTR *PFN_vkReleaseCapturedPipelineDataKHR)(VkDevice device, const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator);
12081 
12082 #ifndef VK_NO_PROTOTYPES
12083 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineBinariesKHR(
12084     VkDevice                                    device,
12085     const VkPipelineBinaryCreateInfoKHR*        pCreateInfo,
12086     const VkAllocationCallbacks*                pAllocator,
12087     VkPipelineBinaryHandlesInfoKHR*             pBinaries);
12088 
12089 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineBinaryKHR(
12090     VkDevice                                    device,
12091     VkPipelineBinaryKHR                         pipelineBinary,
12092     const VkAllocationCallbacks*                pAllocator);
12093 
12094 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineKeyKHR(
12095     VkDevice                                    device,
12096     const VkPipelineCreateInfoKHR*              pPipelineCreateInfo,
12097     VkPipelineBinaryKeyKHR*                     pPipelineKey);
12098 
12099 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineBinaryDataKHR(
12100     VkDevice                                    device,
12101     const VkPipelineBinaryDataInfoKHR*          pInfo,
12102     VkPipelineBinaryKeyKHR*                     pPipelineBinaryKey,
12103     size_t*                                     pPipelineBinaryDataSize,
12104     void*                                       pPipelineBinaryData);
12105 
12106 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseCapturedPipelineDataKHR(
12107     VkDevice                                    device,
12108     const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
12109     const VkAllocationCallbacks*                pAllocator);
12110 #endif
12111 
12112 
12113 // VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
12114 #define VK_KHR_cooperative_matrix 1
12115 #define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
12116 #define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
12117 
12118 typedef enum VkComponentTypeKHR {
12119     VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
12120     VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
12121     VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
12122     VK_COMPONENT_TYPE_SINT8_KHR = 3,
12123     VK_COMPONENT_TYPE_SINT16_KHR = 4,
12124     VK_COMPONENT_TYPE_SINT32_KHR = 5,
12125     VK_COMPONENT_TYPE_SINT64_KHR = 6,
12126     VK_COMPONENT_TYPE_UINT8_KHR = 7,
12127     VK_COMPONENT_TYPE_UINT16_KHR = 8,
12128     VK_COMPONENT_TYPE_UINT32_KHR = 9,
12129     VK_COMPONENT_TYPE_UINT64_KHR = 10,
12130     VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
12131     VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
12132     VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
12133     VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
12134     VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
12135     VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
12136     VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
12137     VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
12138     VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
12139     VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
12140     VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
12141     VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
12142 } VkComponentTypeKHR;
12143 
12144 typedef enum VkScopeKHR {
12145     VK_SCOPE_DEVICE_KHR = 1,
12146     VK_SCOPE_WORKGROUP_KHR = 2,
12147     VK_SCOPE_SUBGROUP_KHR = 3,
12148     VK_SCOPE_QUEUE_FAMILY_KHR = 5,
12149     VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
12150     VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
12151     VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
12152     VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
12153     VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
12154 } VkScopeKHR;
12155 typedef struct VkCooperativeMatrixPropertiesKHR {
12156     VkStructureType       sType;
12157     void*                 pNext;
12158     uint32_t              MSize;
12159     uint32_t              NSize;
12160     uint32_t              KSize;
12161     VkComponentTypeKHR    AType;
12162     VkComponentTypeKHR    BType;
12163     VkComponentTypeKHR    CType;
12164     VkComponentTypeKHR    ResultType;
12165     VkBool32              saturatingAccumulation;
12166     VkScopeKHR            scope;
12167 } VkCooperativeMatrixPropertiesKHR;
12168 
12169 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
12170     VkStructureType    sType;
12171     void*              pNext;
12172     VkBool32           cooperativeMatrix;
12173     VkBool32           cooperativeMatrixRobustBufferAccess;
12174 } VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
12175 
12176 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
12177     VkStructureType       sType;
12178     void*                 pNext;
12179     VkShaderStageFlags    cooperativeMatrixSupportedStages;
12180 } VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
12181 
12182 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
12183 
12184 #ifndef VK_NO_PROTOTYPES
12185 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
12186     VkPhysicalDevice                            physicalDevice,
12187     uint32_t*                                   pPropertyCount,
12188     VkCooperativeMatrixPropertiesKHR*           pProperties);
12189 #endif
12190 
12191 
12192 // VK_KHR_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
12193 #define VK_KHR_compute_shader_derivatives 1
12194 #define VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
12195 #define VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_KHR_compute_shader_derivatives"
12196 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR {
12197     VkStructureType    sType;
12198     void*              pNext;
12199     VkBool32           computeDerivativeGroupQuads;
12200     VkBool32           computeDerivativeGroupLinear;
12201 } VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR;
12202 
12203 typedef struct VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR {
12204     VkStructureType    sType;
12205     void*              pNext;
12206     VkBool32           meshAndTaskShaderDerivatives;
12207 } VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR;
12208 
12209 
12210 
12211 // VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
12212 #define VK_KHR_video_decode_av1 1
12213 #include "vk_video/vulkan_video_codec_av1std.h"
12214 #include "vk_video/vulkan_video_codec_av1std_decode.h"
12215 #define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
12216 #define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
12217 #define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
12218 typedef struct VkVideoDecodeAV1ProfileInfoKHR {
12219     VkStructureType       sType;
12220     const void*           pNext;
12221     StdVideoAV1Profile    stdProfile;
12222     VkBool32              filmGrainSupport;
12223 } VkVideoDecodeAV1ProfileInfoKHR;
12224 
12225 typedef struct VkVideoDecodeAV1CapabilitiesKHR {
12226     VkStructureType     sType;
12227     void*               pNext;
12228     StdVideoAV1Level    maxLevel;
12229 } VkVideoDecodeAV1CapabilitiesKHR;
12230 
12231 typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
12232     VkStructureType                     sType;
12233     const void*                         pNext;
12234     const StdVideoAV1SequenceHeader*    pStdSequenceHeader;
12235 } VkVideoDecodeAV1SessionParametersCreateInfoKHR;
12236 
12237 typedef struct VkVideoDecodeAV1PictureInfoKHR {
12238     VkStructureType                        sType;
12239     const void*                            pNext;
12240     const StdVideoDecodeAV1PictureInfo*    pStdPictureInfo;
12241     int32_t                                referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
12242     uint32_t                               frameHeaderOffset;
12243     uint32_t                               tileCount;
12244     const uint32_t*                        pTileOffsets;
12245     const uint32_t*                        pTileSizes;
12246 } VkVideoDecodeAV1PictureInfoKHR;
12247 
12248 typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
12249     VkStructureType                          sType;
12250     const void*                              pNext;
12251     const StdVideoDecodeAV1ReferenceInfo*    pStdReferenceInfo;
12252 } VkVideoDecodeAV1DpbSlotInfoKHR;
12253 
12254 
12255 
12256 // VK_KHR_video_encode_av1 is a preprocessor guard. Do not pass it to API calls.
12257 #define VK_KHR_video_encode_av1 1
12258 #include "vk_video/vulkan_video_codec_av1std_encode.h"
12259 #define VK_KHR_VIDEO_ENCODE_AV1_SPEC_VERSION 1
12260 #define VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME "VK_KHR_video_encode_av1"
12261 
12262 typedef enum VkVideoEncodeAV1PredictionModeKHR {
12263     VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR = 0,
12264     VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR = 1,
12265     VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR = 2,
12266     VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR = 3,
12267     VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
12268 } VkVideoEncodeAV1PredictionModeKHR;
12269 
12270 typedef enum VkVideoEncodeAV1RateControlGroupKHR {
12271     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR = 0,
12272     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR = 1,
12273     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR = 2,
12274     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_MAX_ENUM_KHR = 0x7FFFFFFF
12275 } VkVideoEncodeAV1RateControlGroupKHR;
12276 
12277 typedef enum VkVideoEncodeAV1CapabilityFlagBitsKHR {
12278     VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR = 0x00000001,
12279     VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR = 0x00000002,
12280     VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR = 0x00000004,
12281     VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR = 0x00000008,
12282     VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR = 0x00000010,
12283     VK_VIDEO_ENCODE_AV1_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12284 } VkVideoEncodeAV1CapabilityFlagBitsKHR;
12285 typedef VkFlags VkVideoEncodeAV1CapabilityFlagsKHR;
12286 
12287 typedef enum VkVideoEncodeAV1StdFlagBitsKHR {
12288     VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR = 0x00000001,
12289     VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR = 0x00000002,
12290     VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR = 0x00000004,
12291     VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR = 0x00000008,
12292     VK_VIDEO_ENCODE_AV1_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12293 } VkVideoEncodeAV1StdFlagBitsKHR;
12294 typedef VkFlags VkVideoEncodeAV1StdFlagsKHR;
12295 
12296 typedef enum VkVideoEncodeAV1SuperblockSizeFlagBitsKHR {
12297     VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR = 0x00000001,
12298     VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR = 0x00000002,
12299     VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12300 } VkVideoEncodeAV1SuperblockSizeFlagBitsKHR;
12301 typedef VkFlags VkVideoEncodeAV1SuperblockSizeFlagsKHR;
12302 
12303 typedef enum VkVideoEncodeAV1RateControlFlagBitsKHR {
12304     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000001,
12305     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000002,
12306     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
12307     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
12308     VK_VIDEO_ENCODE_AV1_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12309 } VkVideoEncodeAV1RateControlFlagBitsKHR;
12310 typedef VkFlags VkVideoEncodeAV1RateControlFlagsKHR;
12311 typedef struct VkPhysicalDeviceVideoEncodeAV1FeaturesKHR {
12312     VkStructureType    sType;
12313     void*              pNext;
12314     VkBool32           videoEncodeAV1;
12315 } VkPhysicalDeviceVideoEncodeAV1FeaturesKHR;
12316 
12317 typedef struct VkVideoEncodeAV1CapabilitiesKHR {
12318     VkStructureType                           sType;
12319     void*                                     pNext;
12320     VkVideoEncodeAV1CapabilityFlagsKHR        flags;
12321     StdVideoAV1Level                          maxLevel;
12322     VkExtent2D                                codedPictureAlignment;
12323     VkExtent2D                                maxTiles;
12324     VkExtent2D                                minTileSize;
12325     VkExtent2D                                maxTileSize;
12326     VkVideoEncodeAV1SuperblockSizeFlagsKHR    superblockSizes;
12327     uint32_t                                  maxSingleReferenceCount;
12328     uint32_t                                  singleReferenceNameMask;
12329     uint32_t                                  maxUnidirectionalCompoundReferenceCount;
12330     uint32_t                                  maxUnidirectionalCompoundGroup1ReferenceCount;
12331     uint32_t                                  unidirectionalCompoundReferenceNameMask;
12332     uint32_t                                  maxBidirectionalCompoundReferenceCount;
12333     uint32_t                                  maxBidirectionalCompoundGroup1ReferenceCount;
12334     uint32_t                                  maxBidirectionalCompoundGroup2ReferenceCount;
12335     uint32_t                                  bidirectionalCompoundReferenceNameMask;
12336     uint32_t                                  maxTemporalLayerCount;
12337     uint32_t                                  maxSpatialLayerCount;
12338     uint32_t                                  maxOperatingPoints;
12339     uint32_t                                  minQIndex;
12340     uint32_t                                  maxQIndex;
12341     VkBool32                                  prefersGopRemainingFrames;
12342     VkBool32                                  requiresGopRemainingFrames;
12343     VkVideoEncodeAV1StdFlagsKHR               stdSyntaxFlags;
12344 } VkVideoEncodeAV1CapabilitiesKHR;
12345 
12346 typedef struct VkVideoEncodeAV1QIndexKHR {
12347     uint32_t    intraQIndex;
12348     uint32_t    predictiveQIndex;
12349     uint32_t    bipredictiveQIndex;
12350 } VkVideoEncodeAV1QIndexKHR;
12351 
12352 typedef struct VkVideoEncodeAV1QualityLevelPropertiesKHR {
12353     VkStructureType                        sType;
12354     void*                                  pNext;
12355     VkVideoEncodeAV1RateControlFlagsKHR    preferredRateControlFlags;
12356     uint32_t                               preferredGopFrameCount;
12357     uint32_t                               preferredKeyFramePeriod;
12358     uint32_t                               preferredConsecutiveBipredictiveFrameCount;
12359     uint32_t                               preferredTemporalLayerCount;
12360     VkVideoEncodeAV1QIndexKHR              preferredConstantQIndex;
12361     uint32_t                               preferredMaxSingleReferenceCount;
12362     uint32_t                               preferredSingleReferenceNameMask;
12363     uint32_t                               preferredMaxUnidirectionalCompoundReferenceCount;
12364     uint32_t                               preferredMaxUnidirectionalCompoundGroup1ReferenceCount;
12365     uint32_t                               preferredUnidirectionalCompoundReferenceNameMask;
12366     uint32_t                               preferredMaxBidirectionalCompoundReferenceCount;
12367     uint32_t                               preferredMaxBidirectionalCompoundGroup1ReferenceCount;
12368     uint32_t                               preferredMaxBidirectionalCompoundGroup2ReferenceCount;
12369     uint32_t                               preferredBidirectionalCompoundReferenceNameMask;
12370 } VkVideoEncodeAV1QualityLevelPropertiesKHR;
12371 
12372 typedef struct VkVideoEncodeAV1SessionCreateInfoKHR {
12373     VkStructureType     sType;
12374     const void*         pNext;
12375     VkBool32            useMaxLevel;
12376     StdVideoAV1Level    maxLevel;
12377 } VkVideoEncodeAV1SessionCreateInfoKHR;
12378 
12379 typedef struct VkVideoEncodeAV1SessionParametersCreateInfoKHR {
12380     VkStructureType                               sType;
12381     const void*                                   pNext;
12382     const StdVideoAV1SequenceHeader*              pStdSequenceHeader;
12383     const StdVideoEncodeAV1DecoderModelInfo*      pStdDecoderModelInfo;
12384     uint32_t                                      stdOperatingPointCount;
12385     const StdVideoEncodeAV1OperatingPointInfo*    pStdOperatingPoints;
12386 } VkVideoEncodeAV1SessionParametersCreateInfoKHR;
12387 
12388 typedef struct VkVideoEncodeAV1PictureInfoKHR {
12389     VkStructureType                        sType;
12390     const void*                            pNext;
12391     VkVideoEncodeAV1PredictionModeKHR      predictionMode;
12392     VkVideoEncodeAV1RateControlGroupKHR    rateControlGroup;
12393     uint32_t                               constantQIndex;
12394     const StdVideoEncodeAV1PictureInfo*    pStdPictureInfo;
12395     int32_t                                referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
12396     VkBool32                               primaryReferenceCdfOnly;
12397     VkBool32                               generateObuExtensionHeader;
12398 } VkVideoEncodeAV1PictureInfoKHR;
12399 
12400 typedef struct VkVideoEncodeAV1DpbSlotInfoKHR {
12401     VkStructureType                          sType;
12402     const void*                              pNext;
12403     const StdVideoEncodeAV1ReferenceInfo*    pStdReferenceInfo;
12404 } VkVideoEncodeAV1DpbSlotInfoKHR;
12405 
12406 typedef struct VkVideoEncodeAV1ProfileInfoKHR {
12407     VkStructureType       sType;
12408     const void*           pNext;
12409     StdVideoAV1Profile    stdProfile;
12410 } VkVideoEncodeAV1ProfileInfoKHR;
12411 
12412 typedef struct VkVideoEncodeAV1FrameSizeKHR {
12413     uint32_t    intraFrameSize;
12414     uint32_t    predictiveFrameSize;
12415     uint32_t    bipredictiveFrameSize;
12416 } VkVideoEncodeAV1FrameSizeKHR;
12417 
12418 typedef struct VkVideoEncodeAV1GopRemainingFrameInfoKHR {
12419     VkStructureType    sType;
12420     const void*        pNext;
12421     VkBool32           useGopRemainingFrames;
12422     uint32_t           gopRemainingIntra;
12423     uint32_t           gopRemainingPredictive;
12424     uint32_t           gopRemainingBipredictive;
12425 } VkVideoEncodeAV1GopRemainingFrameInfoKHR;
12426 
12427 typedef struct VkVideoEncodeAV1RateControlInfoKHR {
12428     VkStructureType                        sType;
12429     const void*                            pNext;
12430     VkVideoEncodeAV1RateControlFlagsKHR    flags;
12431     uint32_t                               gopFrameCount;
12432     uint32_t                               keyFramePeriod;
12433     uint32_t                               consecutiveBipredictiveFrameCount;
12434     uint32_t                               temporalLayerCount;
12435 } VkVideoEncodeAV1RateControlInfoKHR;
12436 
12437 typedef struct VkVideoEncodeAV1RateControlLayerInfoKHR {
12438     VkStructureType                 sType;
12439     const void*                     pNext;
12440     VkBool32                        useMinQIndex;
12441     VkVideoEncodeAV1QIndexKHR       minQIndex;
12442     VkBool32                        useMaxQIndex;
12443     VkVideoEncodeAV1QIndexKHR       maxQIndex;
12444     VkBool32                        useMaxFrameSize;
12445     VkVideoEncodeAV1FrameSizeKHR    maxFrameSize;
12446 } VkVideoEncodeAV1RateControlLayerInfoKHR;
12447 
12448 
12449 
12450 // VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12451 #define VK_KHR_video_maintenance1 1
12452 #define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
12453 #define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
12454 typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
12455     VkStructureType    sType;
12456     void*              pNext;
12457     VkBool32           videoMaintenance1;
12458 } VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
12459 
12460 typedef struct VkVideoInlineQueryInfoKHR {
12461     VkStructureType    sType;
12462     const void*        pNext;
12463     VkQueryPool        queryPool;
12464     uint32_t           firstQuery;
12465     uint32_t           queryCount;
12466 } VkVideoInlineQueryInfoKHR;
12467 
12468 
12469 
12470 // VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
12471 #define VK_KHR_vertex_attribute_divisor 1
12472 #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
12473 #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
12474 typedef VkPhysicalDeviceVertexAttributeDivisorProperties VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
12475 
12476 typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionKHR;
12477 
12478 typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoKHR;
12479 
12480 typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
12481 
12482 
12483 
12484 // VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
12485 #define VK_KHR_load_store_op_none 1
12486 #define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
12487 #define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
12488 
12489 
12490 // VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
12491 #define VK_KHR_shader_float_controls2 1
12492 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
12493 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
12494 typedef VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
12495 
12496 
12497 
12498 // VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
12499 #define VK_KHR_index_type_uint8 1
12500 #define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
12501 #define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
12502 typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
12503 
12504 
12505 
12506 // VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
12507 #define VK_KHR_line_rasterization 1
12508 #define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
12509 #define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
12510 typedef VkLineRasterizationMode VkLineRasterizationModeKHR;
12511 
12512 typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesKHR;
12513 
12514 typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesKHR;
12515 
12516 typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoKHR;
12517 
12518 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
12519 
12520 #ifndef VK_NO_PROTOTYPES
12521 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
12522     VkCommandBuffer                             commandBuffer,
12523     uint32_t                                    lineStippleFactor,
12524     uint16_t                                    lineStipplePattern);
12525 #endif
12526 
12527 
12528 // VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
12529 #define VK_KHR_calibrated_timestamps 1
12530 #define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
12531 #define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
12532 
12533 typedef enum VkTimeDomainKHR {
12534     VK_TIME_DOMAIN_DEVICE_KHR = 0,
12535     VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
12536     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
12537     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
12538     VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
12539     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
12540     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
12541     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
12542     VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
12543 } VkTimeDomainKHR;
12544 typedef struct VkCalibratedTimestampInfoKHR {
12545     VkStructureType    sType;
12546     const void*        pNext;
12547     VkTimeDomainKHR    timeDomain;
12548 } VkCalibratedTimestampInfoKHR;
12549 
12550 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
12551 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
12552 
12553 #ifndef VK_NO_PROTOTYPES
12554 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
12555     VkPhysicalDevice                            physicalDevice,
12556     uint32_t*                                   pTimeDomainCount,
12557     VkTimeDomainKHR*                            pTimeDomains);
12558 
12559 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
12560     VkDevice                                    device,
12561     uint32_t                                    timestampCount,
12562     const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
12563     uint64_t*                                   pTimestamps,
12564     uint64_t*                                   pMaxDeviation);
12565 #endif
12566 
12567 
12568 // VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
12569 #define VK_KHR_shader_expect_assume 1
12570 #define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
12571 #define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
12572 typedef VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
12573 
12574 
12575 
12576 // VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
12577 #define VK_KHR_maintenance6 1
12578 #define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
12579 #define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
12580 typedef VkPhysicalDeviceMaintenance6Features VkPhysicalDeviceMaintenance6FeaturesKHR;
12581 
12582 typedef VkPhysicalDeviceMaintenance6Properties VkPhysicalDeviceMaintenance6PropertiesKHR;
12583 
12584 typedef VkBindMemoryStatus VkBindMemoryStatusKHR;
12585 
12586 typedef VkBindDescriptorSetsInfo VkBindDescriptorSetsInfoKHR;
12587 
12588 typedef VkPushConstantsInfo VkPushConstantsInfoKHR;
12589 
12590 typedef VkPushDescriptorSetInfo VkPushDescriptorSetInfoKHR;
12591 
12592 typedef VkPushDescriptorSetWithTemplateInfo VkPushDescriptorSetWithTemplateInfoKHR;
12593 
12594 typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
12595     VkStructureType        sType;
12596     const void*            pNext;
12597     VkShaderStageFlags     stageFlags;
12598     VkPipelineLayout       layout;
12599     uint32_t               firstSet;
12600     uint32_t               setCount;
12601     const uint32_t*        pBufferIndices;
12602     const VkDeviceSize*    pOffsets;
12603 } VkSetDescriptorBufferOffsetsInfoEXT;
12604 
12605 typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
12606     VkStructureType       sType;
12607     const void*           pNext;
12608     VkShaderStageFlags    stageFlags;
12609     VkPipelineLayout      layout;
12610     uint32_t              set;
12611 } VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
12612 
12613 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo*   pBindDescriptorSetsInfo);
12614 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo*        pPushConstantsInfo);
12615 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo*    pPushDescriptorSetInfo);
12616 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
12617 typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
12618 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
12619 
12620 #ifndef VK_NO_PROTOTYPES
12621 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
12622     VkCommandBuffer                             commandBuffer,
12623     const VkBindDescriptorSetsInfo*             pBindDescriptorSetsInfo);
12624 
12625 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
12626     VkCommandBuffer                             commandBuffer,
12627     const VkPushConstantsInfo*                  pPushConstantsInfo);
12628 
12629 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
12630     VkCommandBuffer                             commandBuffer,
12631     const VkPushDescriptorSetInfo*              pPushDescriptorSetInfo);
12632 
12633 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
12634     VkCommandBuffer                             commandBuffer,
12635     const VkPushDescriptorSetWithTemplateInfo*  pPushDescriptorSetWithTemplateInfo);
12636 
12637 VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
12638     VkCommandBuffer                             commandBuffer,
12639     const VkSetDescriptorBufferOffsetsInfoEXT*  pSetDescriptorBufferOffsetsInfo);
12640 
12641 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
12642     VkCommandBuffer                             commandBuffer,
12643     const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
12644 #endif
12645 
12646 
12647 // VK_KHR_video_encode_quantization_map is a preprocessor guard. Do not pass it to API calls.
12648 #define VK_KHR_video_encode_quantization_map 1
12649 #define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION 2
12650 #define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME "VK_KHR_video_encode_quantization_map"
12651 typedef struct VkVideoEncodeQuantizationMapCapabilitiesKHR {
12652     VkStructureType    sType;
12653     void*              pNext;
12654     VkExtent2D         maxQuantizationMapExtent;
12655 } VkVideoEncodeQuantizationMapCapabilitiesKHR;
12656 
12657 typedef struct VkVideoFormatQuantizationMapPropertiesKHR {
12658     VkStructureType    sType;
12659     void*              pNext;
12660     VkExtent2D         quantizationMapTexelSize;
12661 } VkVideoFormatQuantizationMapPropertiesKHR;
12662 
12663 typedef struct VkVideoEncodeQuantizationMapInfoKHR {
12664     VkStructureType    sType;
12665     const void*        pNext;
12666     VkImageView        quantizationMap;
12667     VkExtent2D         quantizationMapExtent;
12668 } VkVideoEncodeQuantizationMapInfoKHR;
12669 
12670 typedef struct VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
12671     VkStructureType    sType;
12672     const void*        pNext;
12673     VkExtent2D         quantizationMapTexelSize;
12674 } VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR;
12675 
12676 typedef struct VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
12677     VkStructureType    sType;
12678     void*              pNext;
12679     VkBool32           videoEncodeQuantizationMap;
12680 } VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR;
12681 
12682 typedef struct VkVideoEncodeH264QuantizationMapCapabilitiesKHR {
12683     VkStructureType    sType;
12684     void*              pNext;
12685     int32_t            minQpDelta;
12686     int32_t            maxQpDelta;
12687 } VkVideoEncodeH264QuantizationMapCapabilitiesKHR;
12688 
12689 typedef struct VkVideoEncodeH265QuantizationMapCapabilitiesKHR {
12690     VkStructureType    sType;
12691     void*              pNext;
12692     int32_t            minQpDelta;
12693     int32_t            maxQpDelta;
12694 } VkVideoEncodeH265QuantizationMapCapabilitiesKHR;
12695 
12696 typedef struct VkVideoFormatH265QuantizationMapPropertiesKHR {
12697     VkStructureType                     sType;
12698     void*                               pNext;
12699     VkVideoEncodeH265CtbSizeFlagsKHR    compatibleCtbSizes;
12700 } VkVideoFormatH265QuantizationMapPropertiesKHR;
12701 
12702 typedef struct VkVideoEncodeAV1QuantizationMapCapabilitiesKHR {
12703     VkStructureType    sType;
12704     void*              pNext;
12705     int32_t            minQIndexDelta;
12706     int32_t            maxQIndexDelta;
12707 } VkVideoEncodeAV1QuantizationMapCapabilitiesKHR;
12708 
12709 typedef struct VkVideoFormatAV1QuantizationMapPropertiesKHR {
12710     VkStructureType                           sType;
12711     void*                                     pNext;
12712     VkVideoEncodeAV1SuperblockSizeFlagsKHR    compatibleSuperblockSizes;
12713 } VkVideoFormatAV1QuantizationMapPropertiesKHR;
12714 
12715 
12716 
12717 // VK_KHR_shader_relaxed_extended_instruction is a preprocessor guard. Do not pass it to API calls.
12718 #define VK_KHR_shader_relaxed_extended_instruction 1
12719 #define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION 1
12720 #define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME "VK_KHR_shader_relaxed_extended_instruction"
12721 typedef struct VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
12722     VkStructureType    sType;
12723     void*              pNext;
12724     VkBool32           shaderRelaxedExtendedInstruction;
12725 } VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR;
12726 
12727 
12728 
12729 // VK_KHR_maintenance7 is a preprocessor guard. Do not pass it to API calls.
12730 #define VK_KHR_maintenance7 1
12731 #define VK_KHR_MAINTENANCE_7_SPEC_VERSION 1
12732 #define VK_KHR_MAINTENANCE_7_EXTENSION_NAME "VK_KHR_maintenance7"
12733 
12734 typedef enum VkPhysicalDeviceLayeredApiKHR {
12735     VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = 0,
12736     VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = 1,
12737     VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = 2,
12738     VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = 3,
12739     VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = 4,
12740     VK_PHYSICAL_DEVICE_LAYERED_API_MAX_ENUM_KHR = 0x7FFFFFFF
12741 } VkPhysicalDeviceLayeredApiKHR;
12742 typedef struct VkPhysicalDeviceMaintenance7FeaturesKHR {
12743     VkStructureType    sType;
12744     void*              pNext;
12745     VkBool32           maintenance7;
12746 } VkPhysicalDeviceMaintenance7FeaturesKHR;
12747 
12748 typedef struct VkPhysicalDeviceMaintenance7PropertiesKHR {
12749     VkStructureType    sType;
12750     void*              pNext;
12751     VkBool32           robustFragmentShadingRateAttachmentAccess;
12752     VkBool32           separateDepthStencilAttachmentAccess;
12753     uint32_t           maxDescriptorSetTotalUniformBuffersDynamic;
12754     uint32_t           maxDescriptorSetTotalStorageBuffersDynamic;
12755     uint32_t           maxDescriptorSetTotalBuffersDynamic;
12756     uint32_t           maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic;
12757     uint32_t           maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic;
12758     uint32_t           maxDescriptorSetUpdateAfterBindTotalBuffersDynamic;
12759 } VkPhysicalDeviceMaintenance7PropertiesKHR;
12760 
12761 typedef struct VkPhysicalDeviceLayeredApiPropertiesKHR {
12762     VkStructureType                  sType;
12763     void*                            pNext;
12764     uint32_t                         vendorID;
12765     uint32_t                         deviceID;
12766     VkPhysicalDeviceLayeredApiKHR    layeredAPI;
12767     char                             deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
12768 } VkPhysicalDeviceLayeredApiPropertiesKHR;
12769 
12770 typedef struct VkPhysicalDeviceLayeredApiPropertiesListKHR {
12771     VkStructureType                             sType;
12772     void*                                       pNext;
12773     uint32_t                                    layeredApiCount;
12774     VkPhysicalDeviceLayeredApiPropertiesKHR*    pLayeredApis;
12775 } VkPhysicalDeviceLayeredApiPropertiesListKHR;
12776 
12777 typedef struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR {
12778     VkStructureType                sType;
12779     void*                          pNext;
12780     VkPhysicalDeviceProperties2    properties;
12781 } VkPhysicalDeviceLayeredApiVulkanPropertiesKHR;
12782 
12783 
12784 
12785 // VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
12786 #define VK_EXT_debug_report 1
12787 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
12788 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  10
12789 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
12790 
12791 typedef enum VkDebugReportObjectTypeEXT {
12792     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
12793     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
12794     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
12795     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
12796     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
12797     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
12798     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
12799     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
12800     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
12801     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
12802     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
12803     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
12804     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
12805     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
12806     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
12807     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
12808     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
12809     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
12810     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
12811     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
12812     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
12813     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
12814     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
12815     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
12816     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
12817     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
12818     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
12819     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
12820     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
12821     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
12822     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
12823     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
12824     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
12825     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
12826     VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
12827     VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
12828     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
12829     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
12830     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
12831     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
12832     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
12833   // VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT is a deprecated alias
12834     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
12835   // VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT is a deprecated alias
12836     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
12837     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
12838     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
12839     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
12840 } VkDebugReportObjectTypeEXT;
12841 
12842 typedef enum VkDebugReportFlagBitsEXT {
12843     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
12844     VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
12845     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
12846     VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
12847     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
12848     VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12849 } VkDebugReportFlagBitsEXT;
12850 typedef VkFlags VkDebugReportFlagsEXT;
12851 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
12852     VkDebugReportFlagsEXT                       flags,
12853     VkDebugReportObjectTypeEXT                  objectType,
12854     uint64_t                                    object,
12855     size_t                                      location,
12856     int32_t                                     messageCode,
12857     const char*                                 pLayerPrefix,
12858     const char*                                 pMessage,
12859     void*                                       pUserData);
12860 
12861 typedef struct VkDebugReportCallbackCreateInfoEXT {
12862     VkStructureType                 sType;
12863     const void*                     pNext;
12864     VkDebugReportFlagsEXT           flags;
12865     PFN_vkDebugReportCallbackEXT    pfnCallback;
12866     void*                           pUserData;
12867 } VkDebugReportCallbackCreateInfoEXT;
12868 
12869 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
12870 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
12871 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);
12872 
12873 #ifndef VK_NO_PROTOTYPES
12874 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
12875     VkInstance                                  instance,
12876     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
12877     const VkAllocationCallbacks*                pAllocator,
12878     VkDebugReportCallbackEXT*                   pCallback);
12879 
12880 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
12881     VkInstance                                  instance,
12882     VkDebugReportCallbackEXT                    callback,
12883     const VkAllocationCallbacks*                pAllocator);
12884 
12885 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
12886     VkInstance                                  instance,
12887     VkDebugReportFlagsEXT                       flags,
12888     VkDebugReportObjectTypeEXT                  objectType,
12889     uint64_t                                    object,
12890     size_t                                      location,
12891     int32_t                                     messageCode,
12892     const char*                                 pLayerPrefix,
12893     const char*                                 pMessage);
12894 #endif
12895 
12896 
12897 // VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
12898 #define VK_NV_glsl_shader 1
12899 #define VK_NV_GLSL_SHADER_SPEC_VERSION    1
12900 #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
12901 
12902 
12903 // VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
12904 #define VK_EXT_depth_range_unrestricted 1
12905 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
12906 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
12907 
12908 
12909 // VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
12910 #define VK_IMG_filter_cubic 1
12911 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
12912 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
12913 
12914 
12915 // VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
12916 #define VK_AMD_rasterization_order 1
12917 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
12918 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
12919 
12920 typedef enum VkRasterizationOrderAMD {
12921     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
12922     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
12923     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
12924 } VkRasterizationOrderAMD;
12925 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
12926     VkStructureType            sType;
12927     const void*                pNext;
12928     VkRasterizationOrderAMD    rasterizationOrder;
12929 } VkPipelineRasterizationStateRasterizationOrderAMD;
12930 
12931 
12932 
12933 // VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
12934 #define VK_AMD_shader_trinary_minmax 1
12935 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
12936 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
12937 
12938 
12939 // VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
12940 #define VK_AMD_shader_explicit_vertex_parameter 1
12941 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
12942 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
12943 
12944 
12945 // VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
12946 #define VK_EXT_debug_marker 1
12947 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
12948 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
12949 typedef struct VkDebugMarkerObjectNameInfoEXT {
12950     VkStructureType               sType;
12951     const void*                   pNext;
12952     VkDebugReportObjectTypeEXT    objectType;
12953     uint64_t                      object;
12954     const char*                   pObjectName;
12955 } VkDebugMarkerObjectNameInfoEXT;
12956 
12957 typedef struct VkDebugMarkerObjectTagInfoEXT {
12958     VkStructureType               sType;
12959     const void*                   pNext;
12960     VkDebugReportObjectTypeEXT    objectType;
12961     uint64_t                      object;
12962     uint64_t                      tagName;
12963     size_t                        tagSize;
12964     const void*                   pTag;
12965 } VkDebugMarkerObjectTagInfoEXT;
12966 
12967 typedef struct VkDebugMarkerMarkerInfoEXT {
12968     VkStructureType    sType;
12969     const void*        pNext;
12970     const char*        pMarkerName;
12971     float              color[4];
12972 } VkDebugMarkerMarkerInfoEXT;
12973 
12974 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
12975 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
12976 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
12977 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
12978 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
12979 
12980 #ifndef VK_NO_PROTOTYPES
12981 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
12982     VkDevice                                    device,
12983     const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
12984 
12985 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
12986     VkDevice                                    device,
12987     const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
12988 
12989 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
12990     VkCommandBuffer                             commandBuffer,
12991     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
12992 
12993 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
12994     VkCommandBuffer                             commandBuffer);
12995 
12996 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
12997     VkCommandBuffer                             commandBuffer,
12998     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
12999 #endif
13000 
13001 
13002 // VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
13003 #define VK_AMD_gcn_shader 1
13004 #define VK_AMD_GCN_SHADER_SPEC_VERSION    1
13005 #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
13006 
13007 
13008 // VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
13009 #define VK_NV_dedicated_allocation 1
13010 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
13011 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
13012 typedef struct VkDedicatedAllocationImageCreateInfoNV {
13013     VkStructureType    sType;
13014     const void*        pNext;
13015     VkBool32           dedicatedAllocation;
13016 } VkDedicatedAllocationImageCreateInfoNV;
13017 
13018 typedef struct VkDedicatedAllocationBufferCreateInfoNV {
13019     VkStructureType    sType;
13020     const void*        pNext;
13021     VkBool32           dedicatedAllocation;
13022 } VkDedicatedAllocationBufferCreateInfoNV;
13023 
13024 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
13025     VkStructureType    sType;
13026     const void*        pNext;
13027     VkImage            image;
13028     VkBuffer           buffer;
13029 } VkDedicatedAllocationMemoryAllocateInfoNV;
13030 
13031 
13032 
13033 // VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
13034 #define VK_EXT_transform_feedback 1
13035 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
13036 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
13037 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
13038 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
13039     VkStructureType    sType;
13040     void*              pNext;
13041     VkBool32           transformFeedback;
13042     VkBool32           geometryStreams;
13043 } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
13044 
13045 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
13046     VkStructureType    sType;
13047     void*              pNext;
13048     uint32_t           maxTransformFeedbackStreams;
13049     uint32_t           maxTransformFeedbackBuffers;
13050     VkDeviceSize       maxTransformFeedbackBufferSize;
13051     uint32_t           maxTransformFeedbackStreamDataSize;
13052     uint32_t           maxTransformFeedbackBufferDataSize;
13053     uint32_t           maxTransformFeedbackBufferDataStride;
13054     VkBool32           transformFeedbackQueries;
13055     VkBool32           transformFeedbackStreamsLinesTriangles;
13056     VkBool32           transformFeedbackRasterizationStreamSelect;
13057     VkBool32           transformFeedbackDraw;
13058 } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
13059 
13060 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
13061     VkStructureType                                     sType;
13062     const void*                                         pNext;
13063     VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
13064     uint32_t                                            rasterizationStream;
13065 } VkPipelineRasterizationStateStreamCreateInfoEXT;
13066 
13067 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
13068 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
13069 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
13070 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
13071 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
13072 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
13073 
13074 #ifndef VK_NO_PROTOTYPES
13075 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
13076     VkCommandBuffer                             commandBuffer,
13077     uint32_t                                    firstBinding,
13078     uint32_t                                    bindingCount,
13079     const VkBuffer*                             pBuffers,
13080     const VkDeviceSize*                         pOffsets,
13081     const VkDeviceSize*                         pSizes);
13082 
13083 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
13084     VkCommandBuffer                             commandBuffer,
13085     uint32_t                                    firstCounterBuffer,
13086     uint32_t                                    counterBufferCount,
13087     const VkBuffer*                             pCounterBuffers,
13088     const VkDeviceSize*                         pCounterBufferOffsets);
13089 
13090 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
13091     VkCommandBuffer                             commandBuffer,
13092     uint32_t                                    firstCounterBuffer,
13093     uint32_t                                    counterBufferCount,
13094     const VkBuffer*                             pCounterBuffers,
13095     const VkDeviceSize*                         pCounterBufferOffsets);
13096 
13097 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
13098     VkCommandBuffer                             commandBuffer,
13099     VkQueryPool                                 queryPool,
13100     uint32_t                                    query,
13101     VkQueryControlFlags                         flags,
13102     uint32_t                                    index);
13103 
13104 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
13105     VkCommandBuffer                             commandBuffer,
13106     VkQueryPool                                 queryPool,
13107     uint32_t                                    query,
13108     uint32_t                                    index);
13109 
13110 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
13111     VkCommandBuffer                             commandBuffer,
13112     uint32_t                                    instanceCount,
13113     uint32_t                                    firstInstance,
13114     VkBuffer                                    counterBuffer,
13115     VkDeviceSize                                counterBufferOffset,
13116     uint32_t                                    counterOffset,
13117     uint32_t                                    vertexStride);
13118 #endif
13119 
13120 
13121 // VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
13122 #define VK_NVX_binary_import 1
13123 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
13124 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
13125 #define VK_NVX_BINARY_IMPORT_SPEC_VERSION 2
13126 #define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
13127 typedef struct VkCuModuleCreateInfoNVX {
13128     VkStructureType    sType;
13129     const void*        pNext;
13130     size_t             dataSize;
13131     const void*        pData;
13132 } VkCuModuleCreateInfoNVX;
13133 
13134 typedef struct VkCuModuleTexturingModeCreateInfoNVX {
13135     VkStructureType    sType;
13136     const void*        pNext;
13137     VkBool32           use64bitTexturing;
13138 } VkCuModuleTexturingModeCreateInfoNVX;
13139 
13140 typedef struct VkCuFunctionCreateInfoNVX {
13141     VkStructureType    sType;
13142     const void*        pNext;
13143     VkCuModuleNVX      module;
13144     const char*        pName;
13145 } VkCuFunctionCreateInfoNVX;
13146 
13147 typedef struct VkCuLaunchInfoNVX {
13148     VkStructureType        sType;
13149     const void*            pNext;
13150     VkCuFunctionNVX        function;
13151     uint32_t               gridDimX;
13152     uint32_t               gridDimY;
13153     uint32_t               gridDimZ;
13154     uint32_t               blockDimX;
13155     uint32_t               blockDimY;
13156     uint32_t               blockDimZ;
13157     uint32_t               sharedMemBytes;
13158     size_t                 paramCount;
13159     const void* const *    pParams;
13160     size_t                 extraCount;
13161     const void* const *    pExtras;
13162 } VkCuLaunchInfoNVX;
13163 
13164 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
13165 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
13166 typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
13167 typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
13168 typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
13169 
13170 #ifndef VK_NO_PROTOTYPES
13171 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
13172     VkDevice                                    device,
13173     const VkCuModuleCreateInfoNVX*              pCreateInfo,
13174     const VkAllocationCallbacks*                pAllocator,
13175     VkCuModuleNVX*                              pModule);
13176 
13177 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
13178     VkDevice                                    device,
13179     const VkCuFunctionCreateInfoNVX*            pCreateInfo,
13180     const VkAllocationCallbacks*                pAllocator,
13181     VkCuFunctionNVX*                            pFunction);
13182 
13183 VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
13184     VkDevice                                    device,
13185     VkCuModuleNVX                               module,
13186     const VkAllocationCallbacks*                pAllocator);
13187 
13188 VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
13189     VkDevice                                    device,
13190     VkCuFunctionNVX                             function,
13191     const VkAllocationCallbacks*                pAllocator);
13192 
13193 VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
13194     VkCommandBuffer                             commandBuffer,
13195     const VkCuLaunchInfoNVX*                    pLaunchInfo);
13196 #endif
13197 
13198 
13199 // VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
13200 #define VK_NVX_image_view_handle 1
13201 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 3
13202 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
13203 typedef struct VkImageViewHandleInfoNVX {
13204     VkStructureType     sType;
13205     const void*         pNext;
13206     VkImageView         imageView;
13207     VkDescriptorType    descriptorType;
13208     VkSampler           sampler;
13209 } VkImageViewHandleInfoNVX;
13210 
13211 typedef struct VkImageViewAddressPropertiesNVX {
13212     VkStructureType    sType;
13213     void*              pNext;
13214     VkDeviceAddress    deviceAddress;
13215     VkDeviceSize       size;
13216 } VkImageViewAddressPropertiesNVX;
13217 
13218 typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
13219 typedef uint64_t (VKAPI_PTR *PFN_vkGetImageViewHandle64NVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
13220 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
13221 
13222 #ifndef VK_NO_PROTOTYPES
13223 VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
13224     VkDevice                                    device,
13225     const VkImageViewHandleInfoNVX*             pInfo);
13226 
13227 VKAPI_ATTR uint64_t VKAPI_CALL vkGetImageViewHandle64NVX(
13228     VkDevice                                    device,
13229     const VkImageViewHandleInfoNVX*             pInfo);
13230 
13231 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
13232     VkDevice                                    device,
13233     VkImageView                                 imageView,
13234     VkImageViewAddressPropertiesNVX*            pProperties);
13235 #endif
13236 
13237 
13238 // VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
13239 #define VK_AMD_draw_indirect_count 1
13240 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
13241 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
13242 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
13243 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
13244 
13245 #ifndef VK_NO_PROTOTYPES
13246 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
13247     VkCommandBuffer                             commandBuffer,
13248     VkBuffer                                    buffer,
13249     VkDeviceSize                                offset,
13250     VkBuffer                                    countBuffer,
13251     VkDeviceSize                                countBufferOffset,
13252     uint32_t                                    maxDrawCount,
13253     uint32_t                                    stride);
13254 
13255 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
13256     VkCommandBuffer                             commandBuffer,
13257     VkBuffer                                    buffer,
13258     VkDeviceSize                                offset,
13259     VkBuffer                                    countBuffer,
13260     VkDeviceSize                                countBufferOffset,
13261     uint32_t                                    maxDrawCount,
13262     uint32_t                                    stride);
13263 #endif
13264 
13265 
13266 // VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
13267 #define VK_AMD_negative_viewport_height 1
13268 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
13269 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
13270 
13271 
13272 // VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
13273 #define VK_AMD_gpu_shader_half_float 1
13274 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
13275 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
13276 
13277 
13278 // VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
13279 #define VK_AMD_shader_ballot 1
13280 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
13281 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
13282 
13283 
13284 // VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
13285 #define VK_AMD_texture_gather_bias_lod 1
13286 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
13287 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
13288 typedef struct VkTextureLODGatherFormatPropertiesAMD {
13289     VkStructureType    sType;
13290     void*              pNext;
13291     VkBool32           supportsTextureGatherLODBiasAMD;
13292 } VkTextureLODGatherFormatPropertiesAMD;
13293 
13294 
13295 
13296 // VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
13297 #define VK_AMD_shader_info 1
13298 #define VK_AMD_SHADER_INFO_SPEC_VERSION   1
13299 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
13300 
13301 typedef enum VkShaderInfoTypeAMD {
13302     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
13303     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
13304     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
13305     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
13306 } VkShaderInfoTypeAMD;
13307 typedef struct VkShaderResourceUsageAMD {
13308     uint32_t    numUsedVgprs;
13309     uint32_t    numUsedSgprs;
13310     uint32_t    ldsSizePerLocalWorkGroup;
13311     size_t      ldsUsageSizeInBytes;
13312     size_t      scratchMemUsageInBytes;
13313 } VkShaderResourceUsageAMD;
13314 
13315 typedef struct VkShaderStatisticsInfoAMD {
13316     VkShaderStageFlags          shaderStageMask;
13317     VkShaderResourceUsageAMD    resourceUsage;
13318     uint32_t                    numPhysicalVgprs;
13319     uint32_t                    numPhysicalSgprs;
13320     uint32_t                    numAvailableVgprs;
13321     uint32_t                    numAvailableSgprs;
13322     uint32_t                    computeWorkGroupSize[3];
13323 } VkShaderStatisticsInfoAMD;
13324 
13325 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
13326 
13327 #ifndef VK_NO_PROTOTYPES
13328 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
13329     VkDevice                                    device,
13330     VkPipeline                                  pipeline,
13331     VkShaderStageFlagBits                       shaderStage,
13332     VkShaderInfoTypeAMD                         infoType,
13333     size_t*                                     pInfoSize,
13334     void*                                       pInfo);
13335 #endif
13336 
13337 
13338 // VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
13339 #define VK_AMD_shader_image_load_store_lod 1
13340 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
13341 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
13342 
13343 
13344 // VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
13345 #define VK_NV_corner_sampled_image 1
13346 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
13347 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
13348 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
13349     VkStructureType    sType;
13350     void*              pNext;
13351     VkBool32           cornerSampledImage;
13352 } VkPhysicalDeviceCornerSampledImageFeaturesNV;
13353 
13354 
13355 
13356 // VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
13357 #define VK_IMG_format_pvrtc 1
13358 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
13359 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
13360 
13361 
13362 // VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
13363 #define VK_NV_external_memory_capabilities 1
13364 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
13365 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
13366 
13367 typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
13368     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
13369     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
13370     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
13371     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
13372     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
13373 } VkExternalMemoryHandleTypeFlagBitsNV;
13374 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
13375 
13376 typedef enum VkExternalMemoryFeatureFlagBitsNV {
13377     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
13378     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
13379     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
13380     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
13381 } VkExternalMemoryFeatureFlagBitsNV;
13382 typedef VkFlags VkExternalMemoryFeatureFlagsNV;
13383 typedef struct VkExternalImageFormatPropertiesNV {
13384     VkImageFormatProperties              imageFormatProperties;
13385     VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
13386     VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
13387     VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
13388 } VkExternalImageFormatPropertiesNV;
13389 
13390 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
13391 
13392 #ifndef VK_NO_PROTOTYPES
13393 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
13394     VkPhysicalDevice                            physicalDevice,
13395     VkFormat                                    format,
13396     VkImageType                                 type,
13397     VkImageTiling                               tiling,
13398     VkImageUsageFlags                           usage,
13399     VkImageCreateFlags                          flags,
13400     VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
13401     VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
13402 #endif
13403 
13404 
13405 // VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
13406 #define VK_NV_external_memory 1
13407 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
13408 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
13409 typedef struct VkExternalMemoryImageCreateInfoNV {
13410     VkStructureType                      sType;
13411     const void*                          pNext;
13412     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
13413 } VkExternalMemoryImageCreateInfoNV;
13414 
13415 typedef struct VkExportMemoryAllocateInfoNV {
13416     VkStructureType                      sType;
13417     const void*                          pNext;
13418     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
13419 } VkExportMemoryAllocateInfoNV;
13420 
13421 
13422 
13423 // VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
13424 #define VK_EXT_validation_flags 1
13425 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
13426 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
13427 
13428 typedef enum VkValidationCheckEXT {
13429     VK_VALIDATION_CHECK_ALL_EXT = 0,
13430     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
13431     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
13432 } VkValidationCheckEXT;
13433 typedef struct VkValidationFlagsEXT {
13434     VkStructureType                sType;
13435     const void*                    pNext;
13436     uint32_t                       disabledValidationCheckCount;
13437     const VkValidationCheckEXT*    pDisabledValidationChecks;
13438 } VkValidationFlagsEXT;
13439 
13440 
13441 
13442 // VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
13443 #define VK_EXT_shader_subgroup_ballot 1
13444 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
13445 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
13446 
13447 
13448 // VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
13449 #define VK_EXT_shader_subgroup_vote 1
13450 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
13451 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
13452 
13453 
13454 // VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
13455 #define VK_EXT_texture_compression_astc_hdr 1
13456 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
13457 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
13458 typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
13459 
13460 
13461 
13462 // VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
13463 #define VK_EXT_astc_decode_mode 1
13464 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
13465 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
13466 typedef struct VkImageViewASTCDecodeModeEXT {
13467     VkStructureType    sType;
13468     const void*        pNext;
13469     VkFormat           decodeMode;
13470 } VkImageViewASTCDecodeModeEXT;
13471 
13472 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
13473     VkStructureType    sType;
13474     void*              pNext;
13475     VkBool32           decodeModeSharedExponent;
13476 } VkPhysicalDeviceASTCDecodeFeaturesEXT;
13477 
13478 
13479 
13480 // VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
13481 #define VK_EXT_pipeline_robustness 1
13482 #define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
13483 #define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
13484 typedef VkPipelineRobustnessBufferBehavior VkPipelineRobustnessBufferBehaviorEXT;
13485 
13486 typedef VkPipelineRobustnessImageBehavior VkPipelineRobustnessImageBehaviorEXT;
13487 
13488 typedef VkPhysicalDevicePipelineRobustnessFeatures VkPhysicalDevicePipelineRobustnessFeaturesEXT;
13489 
13490 typedef VkPhysicalDevicePipelineRobustnessProperties VkPhysicalDevicePipelineRobustnessPropertiesEXT;
13491 
13492 typedef VkPipelineRobustnessCreateInfo VkPipelineRobustnessCreateInfoEXT;
13493 
13494 
13495 
13496 // VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
13497 #define VK_EXT_conditional_rendering 1
13498 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
13499 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
13500 
13501 typedef enum VkConditionalRenderingFlagBitsEXT {
13502     VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
13503     VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13504 } VkConditionalRenderingFlagBitsEXT;
13505 typedef VkFlags VkConditionalRenderingFlagsEXT;
13506 typedef struct VkConditionalRenderingBeginInfoEXT {
13507     VkStructureType                   sType;
13508     const void*                       pNext;
13509     VkBuffer                          buffer;
13510     VkDeviceSize                      offset;
13511     VkConditionalRenderingFlagsEXT    flags;
13512 } VkConditionalRenderingBeginInfoEXT;
13513 
13514 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
13515     VkStructureType    sType;
13516     void*              pNext;
13517     VkBool32           conditionalRendering;
13518     VkBool32           inheritedConditionalRendering;
13519 } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
13520 
13521 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
13522     VkStructureType    sType;
13523     const void*        pNext;
13524     VkBool32           conditionalRenderingEnable;
13525 } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
13526 
13527 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
13528 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
13529 
13530 #ifndef VK_NO_PROTOTYPES
13531 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
13532     VkCommandBuffer                             commandBuffer,
13533     const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin);
13534 
13535 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
13536     VkCommandBuffer                             commandBuffer);
13537 #endif
13538 
13539 
13540 // VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
13541 #define VK_NV_clip_space_w_scaling 1
13542 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
13543 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
13544 typedef struct VkViewportWScalingNV {
13545     float    xcoeff;
13546     float    ycoeff;
13547 } VkViewportWScalingNV;
13548 
13549 typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
13550     VkStructureType                sType;
13551     const void*                    pNext;
13552     VkBool32                       viewportWScalingEnable;
13553     uint32_t                       viewportCount;
13554     const VkViewportWScalingNV*    pViewportWScalings;
13555 } VkPipelineViewportWScalingStateCreateInfoNV;
13556 
13557 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
13558 
13559 #ifndef VK_NO_PROTOTYPES
13560 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
13561     VkCommandBuffer                             commandBuffer,
13562     uint32_t                                    firstViewport,
13563     uint32_t                                    viewportCount,
13564     const VkViewportWScalingNV*                 pViewportWScalings);
13565 #endif
13566 
13567 
13568 // VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
13569 #define VK_EXT_direct_mode_display 1
13570 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
13571 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
13572 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
13573 
13574 #ifndef VK_NO_PROTOTYPES
13575 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
13576     VkPhysicalDevice                            physicalDevice,
13577     VkDisplayKHR                                display);
13578 #endif
13579 
13580 
13581 // VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
13582 #define VK_EXT_display_surface_counter 1
13583 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
13584 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
13585 
13586 typedef enum VkSurfaceCounterFlagBitsEXT {
13587     VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
13588   // VK_SURFACE_COUNTER_VBLANK_EXT is a deprecated alias
13589     VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
13590     VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13591 } VkSurfaceCounterFlagBitsEXT;
13592 typedef VkFlags VkSurfaceCounterFlagsEXT;
13593 typedef struct VkSurfaceCapabilities2EXT {
13594     VkStructureType                  sType;
13595     void*                            pNext;
13596     uint32_t                         minImageCount;
13597     uint32_t                         maxImageCount;
13598     VkExtent2D                       currentExtent;
13599     VkExtent2D                       minImageExtent;
13600     VkExtent2D                       maxImageExtent;
13601     uint32_t                         maxImageArrayLayers;
13602     VkSurfaceTransformFlagsKHR       supportedTransforms;
13603     VkSurfaceTransformFlagBitsKHR    currentTransform;
13604     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
13605     VkImageUsageFlags                supportedUsageFlags;
13606     VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
13607 } VkSurfaceCapabilities2EXT;
13608 
13609 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
13610 
13611 #ifndef VK_NO_PROTOTYPES
13612 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
13613     VkPhysicalDevice                            physicalDevice,
13614     VkSurfaceKHR                                surface,
13615     VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
13616 #endif
13617 
13618 
13619 // VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
13620 #define VK_EXT_display_control 1
13621 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
13622 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
13623 
13624 typedef enum VkDisplayPowerStateEXT {
13625     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
13626     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
13627     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
13628     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
13629 } VkDisplayPowerStateEXT;
13630 
13631 typedef enum VkDeviceEventTypeEXT {
13632     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
13633     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
13634 } VkDeviceEventTypeEXT;
13635 
13636 typedef enum VkDisplayEventTypeEXT {
13637     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
13638     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
13639 } VkDisplayEventTypeEXT;
13640 typedef struct VkDisplayPowerInfoEXT {
13641     VkStructureType           sType;
13642     const void*               pNext;
13643     VkDisplayPowerStateEXT    powerState;
13644 } VkDisplayPowerInfoEXT;
13645 
13646 typedef struct VkDeviceEventInfoEXT {
13647     VkStructureType         sType;
13648     const void*             pNext;
13649     VkDeviceEventTypeEXT    deviceEvent;
13650 } VkDeviceEventInfoEXT;
13651 
13652 typedef struct VkDisplayEventInfoEXT {
13653     VkStructureType          sType;
13654     const void*              pNext;
13655     VkDisplayEventTypeEXT    displayEvent;
13656 } VkDisplayEventInfoEXT;
13657 
13658 typedef struct VkSwapchainCounterCreateInfoEXT {
13659     VkStructureType             sType;
13660     const void*                 pNext;
13661     VkSurfaceCounterFlagsEXT    surfaceCounters;
13662 } VkSwapchainCounterCreateInfoEXT;
13663 
13664 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
13665 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
13666 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
13667 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
13668 
13669 #ifndef VK_NO_PROTOTYPES
13670 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
13671     VkDevice                                    device,
13672     VkDisplayKHR                                display,
13673     const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
13674 
13675 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
13676     VkDevice                                    device,
13677     const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
13678     const VkAllocationCallbacks*                pAllocator,
13679     VkFence*                                    pFence);
13680 
13681 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
13682     VkDevice                                    device,
13683     VkDisplayKHR                                display,
13684     const VkDisplayEventInfoEXT*                pDisplayEventInfo,
13685     const VkAllocationCallbacks*                pAllocator,
13686     VkFence*                                    pFence);
13687 
13688 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
13689     VkDevice                                    device,
13690     VkSwapchainKHR                              swapchain,
13691     VkSurfaceCounterFlagBitsEXT                 counter,
13692     uint64_t*                                   pCounterValue);
13693 #endif
13694 
13695 
13696 // VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
13697 #define VK_GOOGLE_display_timing 1
13698 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
13699 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
13700 typedef struct VkRefreshCycleDurationGOOGLE {
13701     uint64_t    refreshDuration;
13702 } VkRefreshCycleDurationGOOGLE;
13703 
13704 typedef struct VkPastPresentationTimingGOOGLE {
13705     uint32_t    presentID;
13706     uint64_t    desiredPresentTime;
13707     uint64_t    actualPresentTime;
13708     uint64_t    earliestPresentTime;
13709     uint64_t    presentMargin;
13710 } VkPastPresentationTimingGOOGLE;
13711 
13712 typedef struct VkPresentTimeGOOGLE {
13713     uint32_t    presentID;
13714     uint64_t    desiredPresentTime;
13715 } VkPresentTimeGOOGLE;
13716 
13717 typedef struct VkPresentTimesInfoGOOGLE {
13718     VkStructureType               sType;
13719     const void*                   pNext;
13720     uint32_t                      swapchainCount;
13721     const VkPresentTimeGOOGLE*    pTimes;
13722 } VkPresentTimesInfoGOOGLE;
13723 
13724 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
13725 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
13726 
13727 #ifndef VK_NO_PROTOTYPES
13728 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
13729     VkDevice                                    device,
13730     VkSwapchainKHR                              swapchain,
13731     VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
13732 
13733 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
13734     VkDevice                                    device,
13735     VkSwapchainKHR                              swapchain,
13736     uint32_t*                                   pPresentationTimingCount,
13737     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
13738 #endif
13739 
13740 
13741 // VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
13742 #define VK_NV_sample_mask_override_coverage 1
13743 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
13744 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
13745 
13746 
13747 // VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
13748 #define VK_NV_geometry_shader_passthrough 1
13749 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
13750 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
13751 
13752 
13753 // VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
13754 #define VK_NV_viewport_array2 1
13755 #define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
13756 #define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
13757 // VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION is a deprecated alias
13758 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
13759 // VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME is a deprecated alias
13760 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
13761 
13762 
13763 // VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
13764 #define VK_NVX_multiview_per_view_attributes 1
13765 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
13766 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
13767 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
13768     VkStructureType    sType;
13769     void*              pNext;
13770     VkBool32           perViewPositionAllComponents;
13771 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
13772 
13773 typedef struct VkMultiviewPerViewAttributesInfoNVX {
13774     VkStructureType    sType;
13775     const void*        pNext;
13776     VkBool32           perViewAttributes;
13777     VkBool32           perViewAttributesPositionXOnly;
13778 } VkMultiviewPerViewAttributesInfoNVX;
13779 
13780 
13781 
13782 // VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
13783 #define VK_NV_viewport_swizzle 1
13784 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
13785 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
13786 
13787 typedef enum VkViewportCoordinateSwizzleNV {
13788     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
13789     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
13790     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
13791     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
13792     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
13793     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
13794     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
13795     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
13796     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
13797 } VkViewportCoordinateSwizzleNV;
13798 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
13799 typedef struct VkViewportSwizzleNV {
13800     VkViewportCoordinateSwizzleNV    x;
13801     VkViewportCoordinateSwizzleNV    y;
13802     VkViewportCoordinateSwizzleNV    z;
13803     VkViewportCoordinateSwizzleNV    w;
13804 } VkViewportSwizzleNV;
13805 
13806 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
13807     VkStructureType                                sType;
13808     const void*                                    pNext;
13809     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
13810     uint32_t                                       viewportCount;
13811     const VkViewportSwizzleNV*                     pViewportSwizzles;
13812 } VkPipelineViewportSwizzleStateCreateInfoNV;
13813 
13814 
13815 
13816 // VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
13817 #define VK_EXT_discard_rectangles 1
13818 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
13819 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
13820 
13821 typedef enum VkDiscardRectangleModeEXT {
13822     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
13823     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
13824     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
13825 } VkDiscardRectangleModeEXT;
13826 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
13827 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
13828     VkStructureType    sType;
13829     void*              pNext;
13830     uint32_t           maxDiscardRectangles;
13831 } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
13832 
13833 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
13834     VkStructureType                                  sType;
13835     const void*                                      pNext;
13836     VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
13837     VkDiscardRectangleModeEXT                        discardRectangleMode;
13838     uint32_t                                         discardRectangleCount;
13839     const VkRect2D*                                  pDiscardRectangles;
13840 } VkPipelineDiscardRectangleStateCreateInfoEXT;
13841 
13842 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
13843 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
13844 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
13845 
13846 #ifndef VK_NO_PROTOTYPES
13847 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
13848     VkCommandBuffer                             commandBuffer,
13849     uint32_t                                    firstDiscardRectangle,
13850     uint32_t                                    discardRectangleCount,
13851     const VkRect2D*                             pDiscardRectangles);
13852 
13853 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
13854     VkCommandBuffer                             commandBuffer,
13855     VkBool32                                    discardRectangleEnable);
13856 
13857 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
13858     VkCommandBuffer                             commandBuffer,
13859     VkDiscardRectangleModeEXT                   discardRectangleMode);
13860 #endif
13861 
13862 
13863 // VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
13864 #define VK_EXT_conservative_rasterization 1
13865 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
13866 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
13867 
13868 typedef enum VkConservativeRasterizationModeEXT {
13869     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
13870     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
13871     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
13872     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
13873 } VkConservativeRasterizationModeEXT;
13874 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
13875 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
13876     VkStructureType    sType;
13877     void*              pNext;
13878     float              primitiveOverestimationSize;
13879     float              maxExtraPrimitiveOverestimationSize;
13880     float              extraPrimitiveOverestimationSizeGranularity;
13881     VkBool32           primitiveUnderestimation;
13882     VkBool32           conservativePointAndLineRasterization;
13883     VkBool32           degenerateTrianglesRasterized;
13884     VkBool32           degenerateLinesRasterized;
13885     VkBool32           fullyCoveredFragmentShaderInputVariable;
13886     VkBool32           conservativeRasterizationPostDepthCoverage;
13887 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
13888 
13889 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
13890     VkStructureType                                           sType;
13891     const void*                                               pNext;
13892     VkPipelineRasterizationConservativeStateCreateFlagsEXT    flags;
13893     VkConservativeRasterizationModeEXT                        conservativeRasterizationMode;
13894     float                                                     extraPrimitiveOverestimationSize;
13895 } VkPipelineRasterizationConservativeStateCreateInfoEXT;
13896 
13897 
13898 
13899 // VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
13900 #define VK_EXT_depth_clip_enable 1
13901 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
13902 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
13903 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
13904 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
13905     VkStructureType    sType;
13906     void*              pNext;
13907     VkBool32           depthClipEnable;
13908 } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
13909 
13910 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
13911     VkStructureType                                        sType;
13912     const void*                                            pNext;
13913     VkPipelineRasterizationDepthClipStateCreateFlagsEXT    flags;
13914     VkBool32                                               depthClipEnable;
13915 } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
13916 
13917 
13918 
13919 // VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
13920 #define VK_EXT_swapchain_colorspace 1
13921 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 5
13922 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
13923 
13924 
13925 // VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
13926 #define VK_EXT_hdr_metadata 1
13927 #define VK_EXT_HDR_METADATA_SPEC_VERSION  3
13928 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
13929 typedef struct VkXYColorEXT {
13930     float    x;
13931     float    y;
13932 } VkXYColorEXT;
13933 
13934 typedef struct VkHdrMetadataEXT {
13935     VkStructureType    sType;
13936     const void*        pNext;
13937     VkXYColorEXT       displayPrimaryRed;
13938     VkXYColorEXT       displayPrimaryGreen;
13939     VkXYColorEXT       displayPrimaryBlue;
13940     VkXYColorEXT       whitePoint;
13941     float              maxLuminance;
13942     float              minLuminance;
13943     float              maxContentLightLevel;
13944     float              maxFrameAverageLightLevel;
13945 } VkHdrMetadataEXT;
13946 
13947 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
13948 
13949 #ifndef VK_NO_PROTOTYPES
13950 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
13951     VkDevice                                    device,
13952     uint32_t                                    swapchainCount,
13953     const VkSwapchainKHR*                       pSwapchains,
13954     const VkHdrMetadataEXT*                     pMetadata);
13955 #endif
13956 
13957 
13958 // VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
13959 #define VK_IMG_relaxed_line_rasterization 1
13960 #define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
13961 #define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
13962 typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
13963     VkStructureType    sType;
13964     void*              pNext;
13965     VkBool32           relaxedLineRasterization;
13966 } VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
13967 
13968 
13969 
13970 // VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
13971 #define VK_EXT_external_memory_dma_buf 1
13972 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
13973 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
13974 
13975 
13976 // VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
13977 #define VK_EXT_queue_family_foreign 1
13978 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
13979 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
13980 #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~2U)
13981 
13982 
13983 // VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
13984 #define VK_EXT_debug_utils 1
13985 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
13986 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   2
13987 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
13988 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
13989 
13990 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
13991     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
13992     VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
13993     VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
13994     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
13995     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13996 } VkDebugUtilsMessageSeverityFlagBitsEXT;
13997 
13998 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
13999     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
14000     VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
14001     VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
14002     VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
14003     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14004 } VkDebugUtilsMessageTypeFlagBitsEXT;
14005 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
14006 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
14007 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
14008 typedef struct VkDebugUtilsLabelEXT {
14009     VkStructureType    sType;
14010     const void*        pNext;
14011     const char*        pLabelName;
14012     float              color[4];
14013 } VkDebugUtilsLabelEXT;
14014 
14015 typedef struct VkDebugUtilsObjectNameInfoEXT {
14016     VkStructureType    sType;
14017     const void*        pNext;
14018     VkObjectType       objectType;
14019     uint64_t           objectHandle;
14020     const char*        pObjectName;
14021 } VkDebugUtilsObjectNameInfoEXT;
14022 
14023 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
14024     VkStructureType                              sType;
14025     const void*                                  pNext;
14026     VkDebugUtilsMessengerCallbackDataFlagsEXT    flags;
14027     const char*                                  pMessageIdName;
14028     int32_t                                      messageIdNumber;
14029     const char*                                  pMessage;
14030     uint32_t                                     queueLabelCount;
14031     const VkDebugUtilsLabelEXT*                  pQueueLabels;
14032     uint32_t                                     cmdBufLabelCount;
14033     const VkDebugUtilsLabelEXT*                  pCmdBufLabels;
14034     uint32_t                                     objectCount;
14035     const VkDebugUtilsObjectNameInfoEXT*         pObjects;
14036 } VkDebugUtilsMessengerCallbackDataEXT;
14037 
14038 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
14039     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
14040     VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,
14041     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
14042     void*                                            pUserData);
14043 
14044 typedef struct VkDebugUtilsMessengerCreateInfoEXT {
14045     VkStructureType                         sType;
14046     const void*                             pNext;
14047     VkDebugUtilsMessengerCreateFlagsEXT     flags;
14048     VkDebugUtilsMessageSeverityFlagsEXT     messageSeverity;
14049     VkDebugUtilsMessageTypeFlagsEXT         messageType;
14050     PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
14051     void*                                   pUserData;
14052 } VkDebugUtilsMessengerCreateInfoEXT;
14053 
14054 typedef struct VkDebugUtilsObjectTagInfoEXT {
14055     VkStructureType    sType;
14056     const void*        pNext;
14057     VkObjectType       objectType;
14058     uint64_t           objectHandle;
14059     uint64_t           tagName;
14060     size_t             tagSize;
14061     const void*        pTag;
14062 } VkDebugUtilsObjectTagInfoEXT;
14063 
14064 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
14065 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
14066 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
14067 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
14068 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
14069 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
14070 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
14071 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
14072 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
14073 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
14074 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
14075 
14076 #ifndef VK_NO_PROTOTYPES
14077 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
14078     VkDevice                                    device,
14079     const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
14080 
14081 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
14082     VkDevice                                    device,
14083     const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
14084 
14085 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
14086     VkQueue                                     queue,
14087     const VkDebugUtilsLabelEXT*                 pLabelInfo);
14088 
14089 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
14090     VkQueue                                     queue);
14091 
14092 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
14093     VkQueue                                     queue,
14094     const VkDebugUtilsLabelEXT*                 pLabelInfo);
14095 
14096 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
14097     VkCommandBuffer                             commandBuffer,
14098     const VkDebugUtilsLabelEXT*                 pLabelInfo);
14099 
14100 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
14101     VkCommandBuffer                             commandBuffer);
14102 
14103 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
14104     VkCommandBuffer                             commandBuffer,
14105     const VkDebugUtilsLabelEXT*                 pLabelInfo);
14106 
14107 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
14108     VkInstance                                  instance,
14109     const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo,
14110     const VkAllocationCallbacks*                pAllocator,
14111     VkDebugUtilsMessengerEXT*                   pMessenger);
14112 
14113 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
14114     VkInstance                                  instance,
14115     VkDebugUtilsMessengerEXT                    messenger,
14116     const VkAllocationCallbacks*                pAllocator);
14117 
14118 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
14119     VkInstance                                  instance,
14120     VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
14121     VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
14122     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
14123 #endif
14124 
14125 
14126 // VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
14127 #define VK_EXT_sampler_filter_minmax 1
14128 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
14129 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
14130 typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
14131 
14132 typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
14133 
14134 typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
14135 
14136 
14137 
14138 // VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
14139 #define VK_AMD_gpu_shader_int16 1
14140 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
14141 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
14142 
14143 
14144 // VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
14145 #define VK_AMD_mixed_attachment_samples 1
14146 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
14147 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
14148 typedef struct VkAttachmentSampleCountInfoAMD {
14149     VkStructureType                 sType;
14150     const void*                     pNext;
14151     uint32_t                        colorAttachmentCount;
14152     const VkSampleCountFlagBits*    pColorAttachmentSamples;
14153     VkSampleCountFlagBits           depthStencilAttachmentSamples;
14154 } VkAttachmentSampleCountInfoAMD;
14155 
14156 
14157 
14158 // VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
14159 #define VK_AMD_shader_fragment_mask 1
14160 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
14161 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
14162 
14163 
14164 // VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
14165 #define VK_EXT_inline_uniform_block 1
14166 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
14167 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
14168 typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
14169 
14170 typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
14171 
14172 typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
14173 
14174 typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
14175 
14176 
14177 
14178 // VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
14179 #define VK_EXT_shader_stencil_export 1
14180 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
14181 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
14182 
14183 
14184 // VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
14185 #define VK_EXT_sample_locations 1
14186 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
14187 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
14188 typedef struct VkSampleLocationEXT {
14189     float    x;
14190     float    y;
14191 } VkSampleLocationEXT;
14192 
14193 typedef struct VkSampleLocationsInfoEXT {
14194     VkStructureType               sType;
14195     const void*                   pNext;
14196     VkSampleCountFlagBits         sampleLocationsPerPixel;
14197     VkExtent2D                    sampleLocationGridSize;
14198     uint32_t                      sampleLocationsCount;
14199     const VkSampleLocationEXT*    pSampleLocations;
14200 } VkSampleLocationsInfoEXT;
14201 
14202 typedef struct VkAttachmentSampleLocationsEXT {
14203     uint32_t                    attachmentIndex;
14204     VkSampleLocationsInfoEXT    sampleLocationsInfo;
14205 } VkAttachmentSampleLocationsEXT;
14206 
14207 typedef struct VkSubpassSampleLocationsEXT {
14208     uint32_t                    subpassIndex;
14209     VkSampleLocationsInfoEXT    sampleLocationsInfo;
14210 } VkSubpassSampleLocationsEXT;
14211 
14212 typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
14213     VkStructureType                          sType;
14214     const void*                              pNext;
14215     uint32_t                                 attachmentInitialSampleLocationsCount;
14216     const VkAttachmentSampleLocationsEXT*    pAttachmentInitialSampleLocations;
14217     uint32_t                                 postSubpassSampleLocationsCount;
14218     const VkSubpassSampleLocationsEXT*       pPostSubpassSampleLocations;
14219 } VkRenderPassSampleLocationsBeginInfoEXT;
14220 
14221 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
14222     VkStructureType             sType;
14223     const void*                 pNext;
14224     VkBool32                    sampleLocationsEnable;
14225     VkSampleLocationsInfoEXT    sampleLocationsInfo;
14226 } VkPipelineSampleLocationsStateCreateInfoEXT;
14227 
14228 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
14229     VkStructureType       sType;
14230     void*                 pNext;
14231     VkSampleCountFlags    sampleLocationSampleCounts;
14232     VkExtent2D            maxSampleLocationGridSize;
14233     float                 sampleLocationCoordinateRange[2];
14234     uint32_t              sampleLocationSubPixelBits;
14235     VkBool32              variableSampleLocations;
14236 } VkPhysicalDeviceSampleLocationsPropertiesEXT;
14237 
14238 typedef struct VkMultisamplePropertiesEXT {
14239     VkStructureType    sType;
14240     void*              pNext;
14241     VkExtent2D         maxSampleLocationGridSize;
14242 } VkMultisamplePropertiesEXT;
14243 
14244 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
14245 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
14246 
14247 #ifndef VK_NO_PROTOTYPES
14248 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
14249     VkCommandBuffer                             commandBuffer,
14250     const VkSampleLocationsInfoEXT*             pSampleLocationsInfo);
14251 
14252 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
14253     VkPhysicalDevice                            physicalDevice,
14254     VkSampleCountFlagBits                       samples,
14255     VkMultisamplePropertiesEXT*                 pMultisampleProperties);
14256 #endif
14257 
14258 
14259 // VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
14260 #define VK_EXT_blend_operation_advanced 1
14261 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
14262 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
14263 
14264 typedef enum VkBlendOverlapEXT {
14265     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
14266     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
14267     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
14268     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
14269 } VkBlendOverlapEXT;
14270 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
14271     VkStructureType    sType;
14272     void*              pNext;
14273     VkBool32           advancedBlendCoherentOperations;
14274 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
14275 
14276 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
14277     VkStructureType    sType;
14278     void*              pNext;
14279     uint32_t           advancedBlendMaxColorAttachments;
14280     VkBool32           advancedBlendIndependentBlend;
14281     VkBool32           advancedBlendNonPremultipliedSrcColor;
14282     VkBool32           advancedBlendNonPremultipliedDstColor;
14283     VkBool32           advancedBlendCorrelatedOverlap;
14284     VkBool32           advancedBlendAllOperations;
14285 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
14286 
14287 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
14288     VkStructureType      sType;
14289     const void*          pNext;
14290     VkBool32             srcPremultiplied;
14291     VkBool32             dstPremultiplied;
14292     VkBlendOverlapEXT    blendOverlap;
14293 } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
14294 
14295 
14296 
14297 // VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
14298 #define VK_NV_fragment_coverage_to_color 1
14299 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
14300 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
14301 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
14302 typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
14303     VkStructureType                                sType;
14304     const void*                                    pNext;
14305     VkPipelineCoverageToColorStateCreateFlagsNV    flags;
14306     VkBool32                                       coverageToColorEnable;
14307     uint32_t                                       coverageToColorLocation;
14308 } VkPipelineCoverageToColorStateCreateInfoNV;
14309 
14310 
14311 
14312 // VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
14313 #define VK_NV_framebuffer_mixed_samples 1
14314 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
14315 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
14316 
14317 typedef enum VkCoverageModulationModeNV {
14318     VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
14319     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
14320     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
14321     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
14322     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
14323 } VkCoverageModulationModeNV;
14324 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
14325 typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
14326     VkStructureType                                   sType;
14327     const void*                                       pNext;
14328     VkPipelineCoverageModulationStateCreateFlagsNV    flags;
14329     VkCoverageModulationModeNV                        coverageModulationMode;
14330     VkBool32                                          coverageModulationTableEnable;
14331     uint32_t                                          coverageModulationTableCount;
14332     const float*                                      pCoverageModulationTable;
14333 } VkPipelineCoverageModulationStateCreateInfoNV;
14334 
14335 typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
14336 
14337 
14338 
14339 // VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
14340 #define VK_NV_fill_rectangle 1
14341 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
14342 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
14343 
14344 
14345 // VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
14346 #define VK_NV_shader_sm_builtins 1
14347 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
14348 #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
14349 typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
14350     VkStructureType    sType;
14351     void*              pNext;
14352     uint32_t           shaderSMCount;
14353     uint32_t           shaderWarpsPerSM;
14354 } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
14355 
14356 typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
14357     VkStructureType    sType;
14358     void*              pNext;
14359     VkBool32           shaderSMBuiltins;
14360 } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
14361 
14362 
14363 
14364 // VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
14365 #define VK_EXT_post_depth_coverage 1
14366 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
14367 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
14368 
14369 
14370 // VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
14371 #define VK_EXT_image_drm_format_modifier 1
14372 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
14373 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
14374 typedef struct VkDrmFormatModifierPropertiesEXT {
14375     uint64_t                drmFormatModifier;
14376     uint32_t                drmFormatModifierPlaneCount;
14377     VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
14378 } VkDrmFormatModifierPropertiesEXT;
14379 
14380 typedef struct VkDrmFormatModifierPropertiesListEXT {
14381     VkStructureType                      sType;
14382     void*                                pNext;
14383     uint32_t                             drmFormatModifierCount;
14384     VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties;
14385 } VkDrmFormatModifierPropertiesListEXT;
14386 
14387 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
14388     VkStructureType    sType;
14389     const void*        pNext;
14390     uint64_t           drmFormatModifier;
14391     VkSharingMode      sharingMode;
14392     uint32_t           queueFamilyIndexCount;
14393     const uint32_t*    pQueueFamilyIndices;
14394 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
14395 
14396 typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
14397     VkStructureType    sType;
14398     const void*        pNext;
14399     uint32_t           drmFormatModifierCount;
14400     const uint64_t*    pDrmFormatModifiers;
14401 } VkImageDrmFormatModifierListCreateInfoEXT;
14402 
14403 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
14404     VkStructureType               sType;
14405     const void*                   pNext;
14406     uint64_t                      drmFormatModifier;
14407     uint32_t                      drmFormatModifierPlaneCount;
14408     const VkSubresourceLayout*    pPlaneLayouts;
14409 } VkImageDrmFormatModifierExplicitCreateInfoEXT;
14410 
14411 typedef struct VkImageDrmFormatModifierPropertiesEXT {
14412     VkStructureType    sType;
14413     void*              pNext;
14414     uint64_t           drmFormatModifier;
14415 } VkImageDrmFormatModifierPropertiesEXT;
14416 
14417 typedef struct VkDrmFormatModifierProperties2EXT {
14418     uint64_t                 drmFormatModifier;
14419     uint32_t                 drmFormatModifierPlaneCount;
14420     VkFormatFeatureFlags2    drmFormatModifierTilingFeatures;
14421 } VkDrmFormatModifierProperties2EXT;
14422 
14423 typedef struct VkDrmFormatModifierPropertiesList2EXT {
14424     VkStructureType                       sType;
14425     void*                                 pNext;
14426     uint32_t                              drmFormatModifierCount;
14427     VkDrmFormatModifierProperties2EXT*    pDrmFormatModifierProperties;
14428 } VkDrmFormatModifierPropertiesList2EXT;
14429 
14430 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
14431 
14432 #ifndef VK_NO_PROTOTYPES
14433 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
14434     VkDevice                                    device,
14435     VkImage                                     image,
14436     VkImageDrmFormatModifierPropertiesEXT*      pProperties);
14437 #endif
14438 
14439 
14440 // VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
14441 #define VK_EXT_validation_cache 1
14442 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
14443 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
14444 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
14445 
14446 typedef enum VkValidationCacheHeaderVersionEXT {
14447     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
14448     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
14449 } VkValidationCacheHeaderVersionEXT;
14450 typedef VkFlags VkValidationCacheCreateFlagsEXT;
14451 typedef struct VkValidationCacheCreateInfoEXT {
14452     VkStructureType                    sType;
14453     const void*                        pNext;
14454     VkValidationCacheCreateFlagsEXT    flags;
14455     size_t                             initialDataSize;
14456     const void*                        pInitialData;
14457 } VkValidationCacheCreateInfoEXT;
14458 
14459 typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
14460     VkStructureType         sType;
14461     const void*             pNext;
14462     VkValidationCacheEXT    validationCache;
14463 } VkShaderModuleValidationCacheCreateInfoEXT;
14464 
14465 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
14466 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
14467 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
14468 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
14469 
14470 #ifndef VK_NO_PROTOTYPES
14471 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
14472     VkDevice                                    device,
14473     const VkValidationCacheCreateInfoEXT*       pCreateInfo,
14474     const VkAllocationCallbacks*                pAllocator,
14475     VkValidationCacheEXT*                       pValidationCache);
14476 
14477 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
14478     VkDevice                                    device,
14479     VkValidationCacheEXT                        validationCache,
14480     const VkAllocationCallbacks*                pAllocator);
14481 
14482 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
14483     VkDevice                                    device,
14484     VkValidationCacheEXT                        dstCache,
14485     uint32_t                                    srcCacheCount,
14486     const VkValidationCacheEXT*                 pSrcCaches);
14487 
14488 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
14489     VkDevice                                    device,
14490     VkValidationCacheEXT                        validationCache,
14491     size_t*                                     pDataSize,
14492     void*                                       pData);
14493 #endif
14494 
14495 
14496 // VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
14497 #define VK_EXT_descriptor_indexing 1
14498 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
14499 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
14500 typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
14501 
14502 typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
14503 
14504 typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
14505 
14506 typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
14507 
14508 typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
14509 
14510 typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
14511 
14512 typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
14513 
14514 
14515 
14516 // VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
14517 #define VK_EXT_shader_viewport_index_layer 1
14518 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
14519 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
14520 
14521 
14522 // VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
14523 #define VK_NV_shading_rate_image 1
14524 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
14525 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
14526 
14527 typedef enum VkShadingRatePaletteEntryNV {
14528     VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
14529     VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
14530     VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
14531     VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
14532     VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
14533     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
14534     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
14535     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
14536     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
14537     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
14538     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
14539     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
14540     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
14541 } VkShadingRatePaletteEntryNV;
14542 
14543 typedef enum VkCoarseSampleOrderTypeNV {
14544     VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
14545     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
14546     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
14547     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
14548     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
14549 } VkCoarseSampleOrderTypeNV;
14550 typedef struct VkShadingRatePaletteNV {
14551     uint32_t                              shadingRatePaletteEntryCount;
14552     const VkShadingRatePaletteEntryNV*    pShadingRatePaletteEntries;
14553 } VkShadingRatePaletteNV;
14554 
14555 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
14556     VkStructureType                  sType;
14557     const void*                      pNext;
14558     VkBool32                         shadingRateImageEnable;
14559     uint32_t                         viewportCount;
14560     const VkShadingRatePaletteNV*    pShadingRatePalettes;
14561 } VkPipelineViewportShadingRateImageStateCreateInfoNV;
14562 
14563 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
14564     VkStructureType    sType;
14565     void*              pNext;
14566     VkBool32           shadingRateImage;
14567     VkBool32           shadingRateCoarseSampleOrder;
14568 } VkPhysicalDeviceShadingRateImageFeaturesNV;
14569 
14570 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
14571     VkStructureType    sType;
14572     void*              pNext;
14573     VkExtent2D         shadingRateTexelSize;
14574     uint32_t           shadingRatePaletteSize;
14575     uint32_t           shadingRateMaxCoarseSamples;
14576 } VkPhysicalDeviceShadingRateImagePropertiesNV;
14577 
14578 typedef struct VkCoarseSampleLocationNV {
14579     uint32_t    pixelX;
14580     uint32_t    pixelY;
14581     uint32_t    sample;
14582 } VkCoarseSampleLocationNV;
14583 
14584 typedef struct VkCoarseSampleOrderCustomNV {
14585     VkShadingRatePaletteEntryNV        shadingRate;
14586     uint32_t                           sampleCount;
14587     uint32_t                           sampleLocationCount;
14588     const VkCoarseSampleLocationNV*    pSampleLocations;
14589 } VkCoarseSampleOrderCustomNV;
14590 
14591 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
14592     VkStructureType                       sType;
14593     const void*                           pNext;
14594     VkCoarseSampleOrderTypeNV             sampleOrderType;
14595     uint32_t                              customSampleOrderCount;
14596     const VkCoarseSampleOrderCustomNV*    pCustomSampleOrders;
14597 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
14598 
14599 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
14600 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
14601 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
14602 
14603 #ifndef VK_NO_PROTOTYPES
14604 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
14605     VkCommandBuffer                             commandBuffer,
14606     VkImageView                                 imageView,
14607     VkImageLayout                               imageLayout);
14608 
14609 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
14610     VkCommandBuffer                             commandBuffer,
14611     uint32_t                                    firstViewport,
14612     uint32_t                                    viewportCount,
14613     const VkShadingRatePaletteNV*               pShadingRatePalettes);
14614 
14615 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
14616     VkCommandBuffer                             commandBuffer,
14617     VkCoarseSampleOrderTypeNV                   sampleOrderType,
14618     uint32_t                                    customSampleOrderCount,
14619     const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders);
14620 #endif
14621 
14622 
14623 // VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
14624 #define VK_NV_ray_tracing 1
14625 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
14626 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
14627 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
14628 #define VK_SHADER_UNUSED_KHR              (~0U)
14629 #define VK_SHADER_UNUSED_NV               VK_SHADER_UNUSED_KHR
14630 
14631 typedef enum VkRayTracingShaderGroupTypeKHR {
14632     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
14633     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
14634     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
14635     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
14636     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
14637     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
14638     VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14639 } VkRayTracingShaderGroupTypeKHR;
14640 typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
14641 
14642 
14643 typedef enum VkGeometryTypeKHR {
14644     VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
14645     VK_GEOMETRY_TYPE_AABBS_KHR = 1,
14646     VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
14647     VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
14648     VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
14649     VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14650 } VkGeometryTypeKHR;
14651 typedef VkGeometryTypeKHR VkGeometryTypeNV;
14652 
14653 
14654 typedef enum VkAccelerationStructureTypeKHR {
14655     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
14656     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
14657     VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
14658     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
14659     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
14660     VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14661 } VkAccelerationStructureTypeKHR;
14662 typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
14663 
14664 
14665 typedef enum VkCopyAccelerationStructureModeKHR {
14666     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
14667     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
14668     VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
14669     VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
14670     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
14671     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
14672     VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
14673 } VkCopyAccelerationStructureModeKHR;
14674 typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
14675 
14676 
14677 typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
14678     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
14679     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
14680     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
14681     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
14682 } VkAccelerationStructureMemoryRequirementsTypeNV;
14683 
14684 typedef enum VkGeometryFlagBitsKHR {
14685     VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
14686     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
14687     VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
14688     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
14689     VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14690 } VkGeometryFlagBitsKHR;
14691 typedef VkFlags VkGeometryFlagsKHR;
14692 typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
14693 
14694 typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
14695 
14696 
14697 typedef enum VkGeometryInstanceFlagBitsKHR {
14698     VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
14699     VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
14700     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
14701     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
14702     VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0x00000010,
14703     VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000020,
14704     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
14705     VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
14706     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
14707     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
14708     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
14709     VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14710 } VkGeometryInstanceFlagBitsKHR;
14711 typedef VkFlags VkGeometryInstanceFlagsKHR;
14712 typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
14713 
14714 typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
14715 
14716 
14717 typedef enum VkBuildAccelerationStructureFlagBitsKHR {
14718     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
14719     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
14720     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
14721     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
14722     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
14723     VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
14724     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x00000040,
14725     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000080,
14726     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x00000100,
14727 #ifdef VK_ENABLE_BETA_EXTENSIONS
14728     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = 0x00000200,
14729 #endif
14730     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = 0x00000800,
14731     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
14732     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
14733     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
14734     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
14735     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
14736     VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14737 } VkBuildAccelerationStructureFlagBitsKHR;
14738 typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
14739 typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
14740 
14741 typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
14742 
14743 typedef struct VkRayTracingShaderGroupCreateInfoNV {
14744     VkStructureType                   sType;
14745     const void*                       pNext;
14746     VkRayTracingShaderGroupTypeKHR    type;
14747     uint32_t                          generalShader;
14748     uint32_t                          closestHitShader;
14749     uint32_t                          anyHitShader;
14750     uint32_t                          intersectionShader;
14751 } VkRayTracingShaderGroupCreateInfoNV;
14752 
14753 typedef struct VkRayTracingPipelineCreateInfoNV {
14754     VkStructureType                               sType;
14755     const void*                                   pNext;
14756     VkPipelineCreateFlags                         flags;
14757     uint32_t                                      stageCount;
14758     const VkPipelineShaderStageCreateInfo*        pStages;
14759     uint32_t                                      groupCount;
14760     const VkRayTracingShaderGroupCreateInfoNV*    pGroups;
14761     uint32_t                                      maxRecursionDepth;
14762     VkPipelineLayout                              layout;
14763     VkPipeline                                    basePipelineHandle;
14764     int32_t                                       basePipelineIndex;
14765 } VkRayTracingPipelineCreateInfoNV;
14766 
14767 typedef struct VkGeometryTrianglesNV {
14768     VkStructureType    sType;
14769     const void*        pNext;
14770     VkBuffer           vertexData;
14771     VkDeviceSize       vertexOffset;
14772     uint32_t           vertexCount;
14773     VkDeviceSize       vertexStride;
14774     VkFormat           vertexFormat;
14775     VkBuffer           indexData;
14776     VkDeviceSize       indexOffset;
14777     uint32_t           indexCount;
14778     VkIndexType        indexType;
14779     VkBuffer           transformData;
14780     VkDeviceSize       transformOffset;
14781 } VkGeometryTrianglesNV;
14782 
14783 typedef struct VkGeometryAABBNV {
14784     VkStructureType    sType;
14785     const void*        pNext;
14786     VkBuffer           aabbData;
14787     uint32_t           numAABBs;
14788     uint32_t           stride;
14789     VkDeviceSize       offset;
14790 } VkGeometryAABBNV;
14791 
14792 typedef struct VkGeometryDataNV {
14793     VkGeometryTrianglesNV    triangles;
14794     VkGeometryAABBNV         aabbs;
14795 } VkGeometryDataNV;
14796 
14797 typedef struct VkGeometryNV {
14798     VkStructureType       sType;
14799     const void*           pNext;
14800     VkGeometryTypeKHR     geometryType;
14801     VkGeometryDataNV      geometry;
14802     VkGeometryFlagsKHR    flags;
14803 } VkGeometryNV;
14804 
14805 typedef struct VkAccelerationStructureInfoNV {
14806     VkStructureType                        sType;
14807     const void*                            pNext;
14808     VkAccelerationStructureTypeNV          type;
14809     VkBuildAccelerationStructureFlagsNV    flags;
14810     uint32_t                               instanceCount;
14811     uint32_t                               geometryCount;
14812     const VkGeometryNV*                    pGeometries;
14813 } VkAccelerationStructureInfoNV;
14814 
14815 typedef struct VkAccelerationStructureCreateInfoNV {
14816     VkStructureType                  sType;
14817     const void*                      pNext;
14818     VkDeviceSize                     compactedSize;
14819     VkAccelerationStructureInfoNV    info;
14820 } VkAccelerationStructureCreateInfoNV;
14821 
14822 typedef struct VkBindAccelerationStructureMemoryInfoNV {
14823     VkStructureType              sType;
14824     const void*                  pNext;
14825     VkAccelerationStructureNV    accelerationStructure;
14826     VkDeviceMemory               memory;
14827     VkDeviceSize                 memoryOffset;
14828     uint32_t                     deviceIndexCount;
14829     const uint32_t*              pDeviceIndices;
14830 } VkBindAccelerationStructureMemoryInfoNV;
14831 
14832 typedef struct VkWriteDescriptorSetAccelerationStructureNV {
14833     VkStructureType                     sType;
14834     const void*                         pNext;
14835     uint32_t                            accelerationStructureCount;
14836     const VkAccelerationStructureNV*    pAccelerationStructures;
14837 } VkWriteDescriptorSetAccelerationStructureNV;
14838 
14839 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
14840     VkStructureType                                    sType;
14841     const void*                                        pNext;
14842     VkAccelerationStructureMemoryRequirementsTypeNV    type;
14843     VkAccelerationStructureNV                          accelerationStructure;
14844 } VkAccelerationStructureMemoryRequirementsInfoNV;
14845 
14846 typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
14847     VkStructureType    sType;
14848     void*              pNext;
14849     uint32_t           shaderGroupHandleSize;
14850     uint32_t           maxRecursionDepth;
14851     uint32_t           maxShaderGroupStride;
14852     uint32_t           shaderGroupBaseAlignment;
14853     uint64_t           maxGeometryCount;
14854     uint64_t           maxInstanceCount;
14855     uint64_t           maxTriangleCount;
14856     uint32_t           maxDescriptorSetAccelerationStructures;
14857 } VkPhysicalDeviceRayTracingPropertiesNV;
14858 
14859 typedef struct VkTransformMatrixKHR {
14860     float    matrix[3][4];
14861 } VkTransformMatrixKHR;
14862 
14863 typedef VkTransformMatrixKHR VkTransformMatrixNV;
14864 
14865 typedef struct VkAabbPositionsKHR {
14866     float    minX;
14867     float    minY;
14868     float    minZ;
14869     float    maxX;
14870     float    maxY;
14871     float    maxZ;
14872 } VkAabbPositionsKHR;
14873 
14874 typedef VkAabbPositionsKHR VkAabbPositionsNV;
14875 
14876 typedef struct VkAccelerationStructureInstanceKHR {
14877     VkTransformMatrixKHR          transform;
14878     uint32_t                      instanceCustomIndex:24;
14879     uint32_t                      mask:8;
14880     uint32_t                      instanceShaderBindingTableRecordOffset:24;
14881     VkGeometryInstanceFlagsKHR    flags:8;
14882     uint64_t                      accelerationStructureReference;
14883 } VkAccelerationStructureInstanceKHR;
14884 
14885 typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
14886 
14887 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
14888 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
14889 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
14890 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
14891 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);
14892 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
14893 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);
14894 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
14895 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
14896 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
14897 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
14898 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
14899 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
14900 
14901 #ifndef VK_NO_PROTOTYPES
14902 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
14903     VkDevice                                    device,
14904     const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
14905     const VkAllocationCallbacks*                pAllocator,
14906     VkAccelerationStructureNV*                  pAccelerationStructure);
14907 
14908 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
14909     VkDevice                                    device,
14910     VkAccelerationStructureNV                   accelerationStructure,
14911     const VkAllocationCallbacks*                pAllocator);
14912 
14913 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
14914     VkDevice                                    device,
14915     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
14916     VkMemoryRequirements2KHR*                   pMemoryRequirements);
14917 
14918 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
14919     VkDevice                                    device,
14920     uint32_t                                    bindInfoCount,
14921     const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
14922 
14923 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
14924     VkCommandBuffer                             commandBuffer,
14925     const VkAccelerationStructureInfoNV*        pInfo,
14926     VkBuffer                                    instanceData,
14927     VkDeviceSize                                instanceOffset,
14928     VkBool32                                    update,
14929     VkAccelerationStructureNV                   dst,
14930     VkAccelerationStructureNV                   src,
14931     VkBuffer                                    scratch,
14932     VkDeviceSize                                scratchOffset);
14933 
14934 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
14935     VkCommandBuffer                             commandBuffer,
14936     VkAccelerationStructureNV                   dst,
14937     VkAccelerationStructureNV                   src,
14938     VkCopyAccelerationStructureModeKHR          mode);
14939 
14940 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
14941     VkCommandBuffer                             commandBuffer,
14942     VkBuffer                                    raygenShaderBindingTableBuffer,
14943     VkDeviceSize                                raygenShaderBindingOffset,
14944     VkBuffer                                    missShaderBindingTableBuffer,
14945     VkDeviceSize                                missShaderBindingOffset,
14946     VkDeviceSize                                missShaderBindingStride,
14947     VkBuffer                                    hitShaderBindingTableBuffer,
14948     VkDeviceSize                                hitShaderBindingOffset,
14949     VkDeviceSize                                hitShaderBindingStride,
14950     VkBuffer                                    callableShaderBindingTableBuffer,
14951     VkDeviceSize                                callableShaderBindingOffset,
14952     VkDeviceSize                                callableShaderBindingStride,
14953     uint32_t                                    width,
14954     uint32_t                                    height,
14955     uint32_t                                    depth);
14956 
14957 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
14958     VkDevice                                    device,
14959     VkPipelineCache                             pipelineCache,
14960     uint32_t                                    createInfoCount,
14961     const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
14962     const VkAllocationCallbacks*                pAllocator,
14963     VkPipeline*                                 pPipelines);
14964 
14965 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
14966     VkDevice                                    device,
14967     VkPipeline                                  pipeline,
14968     uint32_t                                    firstGroup,
14969     uint32_t                                    groupCount,
14970     size_t                                      dataSize,
14971     void*                                       pData);
14972 
14973 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
14974     VkDevice                                    device,
14975     VkPipeline                                  pipeline,
14976     uint32_t                                    firstGroup,
14977     uint32_t                                    groupCount,
14978     size_t                                      dataSize,
14979     void*                                       pData);
14980 
14981 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
14982     VkDevice                                    device,
14983     VkAccelerationStructureNV                   accelerationStructure,
14984     size_t                                      dataSize,
14985     void*                                       pData);
14986 
14987 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
14988     VkCommandBuffer                             commandBuffer,
14989     uint32_t                                    accelerationStructureCount,
14990     const VkAccelerationStructureNV*            pAccelerationStructures,
14991     VkQueryType                                 queryType,
14992     VkQueryPool                                 queryPool,
14993     uint32_t                                    firstQuery);
14994 
14995 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
14996     VkDevice                                    device,
14997     VkPipeline                                  pipeline,
14998     uint32_t                                    shader);
14999 #endif
15000 
15001 
15002 // VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
15003 #define VK_NV_representative_fragment_test 1
15004 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
15005 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
15006 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
15007     VkStructureType    sType;
15008     void*              pNext;
15009     VkBool32           representativeFragmentTest;
15010 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
15011 
15012 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
15013     VkStructureType    sType;
15014     const void*        pNext;
15015     VkBool32           representativeFragmentTestEnable;
15016 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
15017 
15018 
15019 
15020 // VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
15021 #define VK_EXT_filter_cubic 1
15022 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION  3
15023 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
15024 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
15025     VkStructureType    sType;
15026     void*              pNext;
15027     VkImageViewType    imageViewType;
15028 } VkPhysicalDeviceImageViewImageFormatInfoEXT;
15029 
15030 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
15031     VkStructureType    sType;
15032     void*              pNext;
15033     VkBool32           filterCubic;
15034     VkBool32           filterCubicMinmax;
15035 } VkFilterCubicImageViewImageFormatPropertiesEXT;
15036 
15037 
15038 
15039 // VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
15040 #define VK_QCOM_render_pass_shader_resolve 1
15041 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
15042 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
15043 
15044 
15045 // VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
15046 #define VK_EXT_global_priority 1
15047 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
15048 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
15049 typedef VkQueueGlobalPriority VkQueueGlobalPriorityEXT;
15050 
15051 typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoEXT;
15052 
15053 
15054 
15055 // VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
15056 #define VK_EXT_external_memory_host 1
15057 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
15058 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
15059 typedef struct VkImportMemoryHostPointerInfoEXT {
15060     VkStructureType                       sType;
15061     const void*                           pNext;
15062     VkExternalMemoryHandleTypeFlagBits    handleType;
15063     void*                                 pHostPointer;
15064 } VkImportMemoryHostPointerInfoEXT;
15065 
15066 typedef struct VkMemoryHostPointerPropertiesEXT {
15067     VkStructureType    sType;
15068     void*              pNext;
15069     uint32_t           memoryTypeBits;
15070 } VkMemoryHostPointerPropertiesEXT;
15071 
15072 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
15073     VkStructureType    sType;
15074     void*              pNext;
15075     VkDeviceSize       minImportedHostPointerAlignment;
15076 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
15077 
15078 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
15079 
15080 #ifndef VK_NO_PROTOTYPES
15081 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
15082     VkDevice                                    device,
15083     VkExternalMemoryHandleTypeFlagBits          handleType,
15084     const void*                                 pHostPointer,
15085     VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties);
15086 #endif
15087 
15088 
15089 // VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
15090 #define VK_AMD_buffer_marker 1
15091 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
15092 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
15093 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
15094 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkBuffer                                            dstBuffer, VkDeviceSize                                        dstOffset, uint32_t                                            marker);
15095 
15096 #ifndef VK_NO_PROTOTYPES
15097 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
15098     VkCommandBuffer                             commandBuffer,
15099     VkPipelineStageFlagBits                     pipelineStage,
15100     VkBuffer                                    dstBuffer,
15101     VkDeviceSize                                dstOffset,
15102     uint32_t                                    marker);
15103 
15104 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
15105     VkCommandBuffer                             commandBuffer,
15106     VkPipelineStageFlags2                       stage,
15107     VkBuffer                                    dstBuffer,
15108     VkDeviceSize                                dstOffset,
15109     uint32_t                                    marker);
15110 #endif
15111 
15112 
15113 // VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
15114 #define VK_AMD_pipeline_compiler_control 1
15115 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
15116 #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
15117 
15118 typedef enum VkPipelineCompilerControlFlagBitsAMD {
15119     VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
15120 } VkPipelineCompilerControlFlagBitsAMD;
15121 typedef VkFlags VkPipelineCompilerControlFlagsAMD;
15122 typedef struct VkPipelineCompilerControlCreateInfoAMD {
15123     VkStructureType                      sType;
15124     const void*                          pNext;
15125     VkPipelineCompilerControlFlagsAMD    compilerControlFlags;
15126 } VkPipelineCompilerControlCreateInfoAMD;
15127 
15128 
15129 
15130 // VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
15131 #define VK_EXT_calibrated_timestamps 1
15132 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
15133 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
15134 typedef VkTimeDomainKHR VkTimeDomainEXT;
15135 
15136 typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
15137 
15138 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
15139 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
15140 
15141 #ifndef VK_NO_PROTOTYPES
15142 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
15143     VkPhysicalDevice                            physicalDevice,
15144     uint32_t*                                   pTimeDomainCount,
15145     VkTimeDomainKHR*                            pTimeDomains);
15146 
15147 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
15148     VkDevice                                    device,
15149     uint32_t                                    timestampCount,
15150     const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
15151     uint64_t*                                   pTimestamps,
15152     uint64_t*                                   pMaxDeviation);
15153 #endif
15154 
15155 
15156 // VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
15157 #define VK_AMD_shader_core_properties 1
15158 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
15159 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
15160 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
15161     VkStructureType    sType;
15162     void*              pNext;
15163     uint32_t           shaderEngineCount;
15164     uint32_t           shaderArraysPerEngineCount;
15165     uint32_t           computeUnitsPerShaderArray;
15166     uint32_t           simdPerComputeUnit;
15167     uint32_t           wavefrontsPerSimd;
15168     uint32_t           wavefrontSize;
15169     uint32_t           sgprsPerSimd;
15170     uint32_t           minSgprAllocation;
15171     uint32_t           maxSgprAllocation;
15172     uint32_t           sgprAllocationGranularity;
15173     uint32_t           vgprsPerSimd;
15174     uint32_t           minVgprAllocation;
15175     uint32_t           maxVgprAllocation;
15176     uint32_t           vgprAllocationGranularity;
15177 } VkPhysicalDeviceShaderCorePropertiesAMD;
15178 
15179 
15180 
15181 // VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
15182 #define VK_AMD_memory_overallocation_behavior 1
15183 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
15184 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
15185 
15186 typedef enum VkMemoryOverallocationBehaviorAMD {
15187     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
15188     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
15189     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
15190     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
15191 } VkMemoryOverallocationBehaviorAMD;
15192 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
15193     VkStructureType                      sType;
15194     const void*                          pNext;
15195     VkMemoryOverallocationBehaviorAMD    overallocationBehavior;
15196 } VkDeviceMemoryOverallocationCreateInfoAMD;
15197 
15198 
15199 
15200 // VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
15201 #define VK_EXT_vertex_attribute_divisor 1
15202 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
15203 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
15204 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
15205     VkStructureType    sType;
15206     void*              pNext;
15207     uint32_t           maxVertexAttribDivisor;
15208 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
15209 
15210 typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionEXT;
15211 
15212 typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoEXT;
15213 
15214 typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
15215 
15216 
15217 
15218 // VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
15219 #define VK_EXT_pipeline_creation_feedback 1
15220 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
15221 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
15222 typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
15223 
15224 typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
15225 
15226 typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
15227 
15228 typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
15229 
15230 
15231 
15232 // VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
15233 #define VK_NV_shader_subgroup_partitioned 1
15234 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
15235 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
15236 
15237 
15238 // VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
15239 #define VK_NV_compute_shader_derivatives 1
15240 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
15241 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
15242 typedef VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
15243 
15244 
15245 
15246 // VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
15247 #define VK_NV_mesh_shader 1
15248 #define VK_NV_MESH_SHADER_SPEC_VERSION    1
15249 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
15250 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
15251     VkStructureType    sType;
15252     void*              pNext;
15253     VkBool32           taskShader;
15254     VkBool32           meshShader;
15255 } VkPhysicalDeviceMeshShaderFeaturesNV;
15256 
15257 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
15258     VkStructureType    sType;
15259     void*              pNext;
15260     uint32_t           maxDrawMeshTasksCount;
15261     uint32_t           maxTaskWorkGroupInvocations;
15262     uint32_t           maxTaskWorkGroupSize[3];
15263     uint32_t           maxTaskTotalMemorySize;
15264     uint32_t           maxTaskOutputCount;
15265     uint32_t           maxMeshWorkGroupInvocations;
15266     uint32_t           maxMeshWorkGroupSize[3];
15267     uint32_t           maxMeshTotalMemorySize;
15268     uint32_t           maxMeshOutputVertices;
15269     uint32_t           maxMeshOutputPrimitives;
15270     uint32_t           maxMeshMultiviewViewCount;
15271     uint32_t           meshOutputPerVertexGranularity;
15272     uint32_t           meshOutputPerPrimitiveGranularity;
15273 } VkPhysicalDeviceMeshShaderPropertiesNV;
15274 
15275 typedef struct VkDrawMeshTasksIndirectCommandNV {
15276     uint32_t    taskCount;
15277     uint32_t    firstTask;
15278 } VkDrawMeshTasksIndirectCommandNV;
15279 
15280 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
15281 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
15282 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
15283 
15284 #ifndef VK_NO_PROTOTYPES
15285 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
15286     VkCommandBuffer                             commandBuffer,
15287     uint32_t                                    taskCount,
15288     uint32_t                                    firstTask);
15289 
15290 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
15291     VkCommandBuffer                             commandBuffer,
15292     VkBuffer                                    buffer,
15293     VkDeviceSize                                offset,
15294     uint32_t                                    drawCount,
15295     uint32_t                                    stride);
15296 
15297 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
15298     VkCommandBuffer                             commandBuffer,
15299     VkBuffer                                    buffer,
15300     VkDeviceSize                                offset,
15301     VkBuffer                                    countBuffer,
15302     VkDeviceSize                                countBufferOffset,
15303     uint32_t                                    maxDrawCount,
15304     uint32_t                                    stride);
15305 #endif
15306 
15307 
15308 // VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
15309 #define VK_NV_fragment_shader_barycentric 1
15310 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
15311 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
15312 typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
15313 
15314 
15315 
15316 // VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
15317 #define VK_NV_shader_image_footprint 1
15318 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
15319 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
15320 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
15321     VkStructureType    sType;
15322     void*              pNext;
15323     VkBool32           imageFootprint;
15324 } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
15325 
15326 
15327 
15328 // VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
15329 #define VK_NV_scissor_exclusive 1
15330 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
15331 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
15332 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
15333     VkStructureType    sType;
15334     const void*        pNext;
15335     uint32_t           exclusiveScissorCount;
15336     const VkRect2D*    pExclusiveScissors;
15337 } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
15338 
15339 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
15340     VkStructureType    sType;
15341     void*              pNext;
15342     VkBool32           exclusiveScissor;
15343 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
15344 
15345 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
15346 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
15347 
15348 #ifndef VK_NO_PROTOTYPES
15349 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
15350     VkCommandBuffer                             commandBuffer,
15351     uint32_t                                    firstExclusiveScissor,
15352     uint32_t                                    exclusiveScissorCount,
15353     const VkBool32*                             pExclusiveScissorEnables);
15354 
15355 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
15356     VkCommandBuffer                             commandBuffer,
15357     uint32_t                                    firstExclusiveScissor,
15358     uint32_t                                    exclusiveScissorCount,
15359     const VkRect2D*                             pExclusiveScissors);
15360 #endif
15361 
15362 
15363 // VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
15364 #define VK_NV_device_diagnostic_checkpoints 1
15365 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
15366 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
15367 typedef struct VkQueueFamilyCheckpointPropertiesNV {
15368     VkStructureType         sType;
15369     void*                   pNext;
15370     VkPipelineStageFlags    checkpointExecutionStageMask;
15371 } VkQueueFamilyCheckpointPropertiesNV;
15372 
15373 typedef struct VkCheckpointDataNV {
15374     VkStructureType            sType;
15375     void*                      pNext;
15376     VkPipelineStageFlagBits    stage;
15377     void*                      pCheckpointMarker;
15378 } VkCheckpointDataNV;
15379 
15380 typedef struct VkQueueFamilyCheckpointProperties2NV {
15381     VkStructureType          sType;
15382     void*                    pNext;
15383     VkPipelineStageFlags2    checkpointExecutionStageMask;
15384 } VkQueueFamilyCheckpointProperties2NV;
15385 
15386 typedef struct VkCheckpointData2NV {
15387     VkStructureType          sType;
15388     void*                    pNext;
15389     VkPipelineStageFlags2    stage;
15390     void*                    pCheckpointMarker;
15391 } VkCheckpointData2NV;
15392 
15393 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
15394 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
15395 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
15396 
15397 #ifndef VK_NO_PROTOTYPES
15398 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
15399     VkCommandBuffer                             commandBuffer,
15400     const void*                                 pCheckpointMarker);
15401 
15402 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
15403     VkQueue                                     queue,
15404     uint32_t*                                   pCheckpointDataCount,
15405     VkCheckpointDataNV*                         pCheckpointData);
15406 
15407 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
15408     VkQueue                                     queue,
15409     uint32_t*                                   pCheckpointDataCount,
15410     VkCheckpointData2NV*                        pCheckpointData);
15411 #endif
15412 
15413 
15414 // VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
15415 #define VK_INTEL_shader_integer_functions2 1
15416 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
15417 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
15418 typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
15419     VkStructureType    sType;
15420     void*              pNext;
15421     VkBool32           shaderIntegerFunctions2;
15422 } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
15423 
15424 
15425 
15426 // VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
15427 #define VK_INTEL_performance_query 1
15428 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
15429 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
15430 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
15431 
15432 typedef enum VkPerformanceConfigurationTypeINTEL {
15433     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
15434     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
15435 } VkPerformanceConfigurationTypeINTEL;
15436 
15437 typedef enum VkQueryPoolSamplingModeINTEL {
15438     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
15439     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
15440 } VkQueryPoolSamplingModeINTEL;
15441 
15442 typedef enum VkPerformanceOverrideTypeINTEL {
15443     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
15444     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
15445     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
15446 } VkPerformanceOverrideTypeINTEL;
15447 
15448 typedef enum VkPerformanceParameterTypeINTEL {
15449     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
15450     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
15451     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
15452 } VkPerformanceParameterTypeINTEL;
15453 
15454 typedef enum VkPerformanceValueTypeINTEL {
15455     VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
15456     VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
15457     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
15458     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
15459     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
15460     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
15461 } VkPerformanceValueTypeINTEL;
15462 typedef union VkPerformanceValueDataINTEL {
15463     uint32_t       value32;
15464     uint64_t       value64;
15465     float          valueFloat;
15466     VkBool32       valueBool;
15467     const char*    valueString;
15468 } VkPerformanceValueDataINTEL;
15469 
15470 typedef struct VkPerformanceValueINTEL {
15471     VkPerformanceValueTypeINTEL    type;
15472     VkPerformanceValueDataINTEL    data;
15473 } VkPerformanceValueINTEL;
15474 
15475 typedef struct VkInitializePerformanceApiInfoINTEL {
15476     VkStructureType    sType;
15477     const void*        pNext;
15478     void*              pUserData;
15479 } VkInitializePerformanceApiInfoINTEL;
15480 
15481 typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
15482     VkStructureType                 sType;
15483     const void*                     pNext;
15484     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
15485 } VkQueryPoolPerformanceQueryCreateInfoINTEL;
15486 
15487 typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
15488 
15489 typedef struct VkPerformanceMarkerInfoINTEL {
15490     VkStructureType    sType;
15491     const void*        pNext;
15492     uint64_t           marker;
15493 } VkPerformanceMarkerInfoINTEL;
15494 
15495 typedef struct VkPerformanceStreamMarkerInfoINTEL {
15496     VkStructureType    sType;
15497     const void*        pNext;
15498     uint32_t           marker;
15499 } VkPerformanceStreamMarkerInfoINTEL;
15500 
15501 typedef struct VkPerformanceOverrideInfoINTEL {
15502     VkStructureType                   sType;
15503     const void*                       pNext;
15504     VkPerformanceOverrideTypeINTEL    type;
15505     VkBool32                          enable;
15506     uint64_t                          parameter;
15507 } VkPerformanceOverrideInfoINTEL;
15508 
15509 typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
15510     VkStructureType                        sType;
15511     const void*                            pNext;
15512     VkPerformanceConfigurationTypeINTEL    type;
15513 } VkPerformanceConfigurationAcquireInfoINTEL;
15514 
15515 typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
15516 typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
15517 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
15518 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
15519 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
15520 typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
15521 typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
15522 typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
15523 typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
15524 
15525 #ifndef VK_NO_PROTOTYPES
15526 VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
15527     VkDevice                                    device,
15528     const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo);
15529 
15530 VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
15531     VkDevice                                    device);
15532 
15533 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
15534     VkCommandBuffer                             commandBuffer,
15535     const VkPerformanceMarkerInfoINTEL*         pMarkerInfo);
15536 
15537 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
15538     VkCommandBuffer                             commandBuffer,
15539     const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo);
15540 
15541 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
15542     VkCommandBuffer                             commandBuffer,
15543     const VkPerformanceOverrideInfoINTEL*       pOverrideInfo);
15544 
15545 VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
15546     VkDevice                                    device,
15547     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
15548     VkPerformanceConfigurationINTEL*            pConfiguration);
15549 
15550 VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
15551     VkDevice                                    device,
15552     VkPerformanceConfigurationINTEL             configuration);
15553 
15554 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
15555     VkQueue                                     queue,
15556     VkPerformanceConfigurationINTEL             configuration);
15557 
15558 VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
15559     VkDevice                                    device,
15560     VkPerformanceParameterTypeINTEL             parameter,
15561     VkPerformanceValueINTEL*                    pValue);
15562 #endif
15563 
15564 
15565 // VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
15566 #define VK_EXT_pci_bus_info 1
15567 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  2
15568 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
15569 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
15570     VkStructureType    sType;
15571     void*              pNext;
15572     uint32_t           pciDomain;
15573     uint32_t           pciBus;
15574     uint32_t           pciDevice;
15575     uint32_t           pciFunction;
15576 } VkPhysicalDevicePCIBusInfoPropertiesEXT;
15577 
15578 
15579 
15580 // VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
15581 #define VK_AMD_display_native_hdr 1
15582 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
15583 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
15584 typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
15585     VkStructureType    sType;
15586     void*              pNext;
15587     VkBool32           localDimmingSupport;
15588 } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
15589 
15590 typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
15591     VkStructureType    sType;
15592     const void*        pNext;
15593     VkBool32           localDimmingEnable;
15594 } VkSwapchainDisplayNativeHdrCreateInfoAMD;
15595 
15596 typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
15597 
15598 #ifndef VK_NO_PROTOTYPES
15599 VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
15600     VkDevice                                    device,
15601     VkSwapchainKHR                              swapChain,
15602     VkBool32                                    localDimmingEnable);
15603 #endif
15604 
15605 
15606 // VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
15607 #define VK_EXT_fragment_density_map 1
15608 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
15609 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
15610 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
15611     VkStructureType    sType;
15612     void*              pNext;
15613     VkBool32           fragmentDensityMap;
15614     VkBool32           fragmentDensityMapDynamic;
15615     VkBool32           fragmentDensityMapNonSubsampledImages;
15616 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
15617 
15618 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
15619     VkStructureType    sType;
15620     void*              pNext;
15621     VkExtent2D         minFragmentDensityTexelSize;
15622     VkExtent2D         maxFragmentDensityTexelSize;
15623     VkBool32           fragmentDensityInvocations;
15624 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
15625 
15626 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
15627     VkStructureType          sType;
15628     const void*              pNext;
15629     VkAttachmentReference    fragmentDensityMapAttachment;
15630 } VkRenderPassFragmentDensityMapCreateInfoEXT;
15631 
15632 typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
15633     VkStructureType    sType;
15634     const void*        pNext;
15635     VkImageView        imageView;
15636     VkImageLayout      imageLayout;
15637 } VkRenderingFragmentDensityMapAttachmentInfoEXT;
15638 
15639 
15640 
15641 // VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
15642 #define VK_EXT_scalar_block_layout 1
15643 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
15644 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
15645 typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
15646 
15647 
15648 
15649 // VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
15650 #define VK_GOOGLE_hlsl_functionality1 1
15651 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
15652 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
15653 // VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION is a deprecated alias
15654 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
15655 // VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME is a deprecated alias
15656 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
15657 
15658 
15659 // VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
15660 #define VK_GOOGLE_decorate_string 1
15661 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
15662 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
15663 
15664 
15665 // VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
15666 #define VK_EXT_subgroup_size_control 1
15667 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
15668 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
15669 typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
15670 
15671 typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
15672 
15673 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
15674 
15675 
15676 
15677 // VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
15678 #define VK_AMD_shader_core_properties2 1
15679 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
15680 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
15681 
15682 typedef enum VkShaderCorePropertiesFlagBitsAMD {
15683     VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
15684 } VkShaderCorePropertiesFlagBitsAMD;
15685 typedef VkFlags VkShaderCorePropertiesFlagsAMD;
15686 typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
15687     VkStructureType                   sType;
15688     void*                             pNext;
15689     VkShaderCorePropertiesFlagsAMD    shaderCoreFeatures;
15690     uint32_t                          activeComputeUnitCount;
15691 } VkPhysicalDeviceShaderCoreProperties2AMD;
15692 
15693 
15694 
15695 // VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
15696 #define VK_AMD_device_coherent_memory 1
15697 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
15698 #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
15699 typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
15700     VkStructureType    sType;
15701     void*              pNext;
15702     VkBool32           deviceCoherentMemory;
15703 } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
15704 
15705 
15706 
15707 // VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
15708 #define VK_EXT_shader_image_atomic_int64 1
15709 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
15710 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
15711 typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
15712     VkStructureType    sType;
15713     void*              pNext;
15714     VkBool32           shaderImageInt64Atomics;
15715     VkBool32           sparseImageInt64Atomics;
15716 } VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
15717 
15718 
15719 
15720 // VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
15721 #define VK_EXT_memory_budget 1
15722 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
15723 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
15724 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
15725     VkStructureType    sType;
15726     void*              pNext;
15727     VkDeviceSize       heapBudget[VK_MAX_MEMORY_HEAPS];
15728     VkDeviceSize       heapUsage[VK_MAX_MEMORY_HEAPS];
15729 } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
15730 
15731 
15732 
15733 // VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
15734 #define VK_EXT_memory_priority 1
15735 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
15736 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
15737 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
15738     VkStructureType    sType;
15739     void*              pNext;
15740     VkBool32           memoryPriority;
15741 } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
15742 
15743 typedef struct VkMemoryPriorityAllocateInfoEXT {
15744     VkStructureType    sType;
15745     const void*        pNext;
15746     float              priority;
15747 } VkMemoryPriorityAllocateInfoEXT;
15748 
15749 
15750 
15751 // VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
15752 #define VK_NV_dedicated_allocation_image_aliasing 1
15753 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
15754 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
15755 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
15756     VkStructureType    sType;
15757     void*              pNext;
15758     VkBool32           dedicatedAllocationImageAliasing;
15759 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
15760 
15761 
15762 
15763 // VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
15764 #define VK_EXT_buffer_device_address 1
15765 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
15766 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
15767 typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
15768     VkStructureType    sType;
15769     void*              pNext;
15770     VkBool32           bufferDeviceAddress;
15771     VkBool32           bufferDeviceAddressCaptureReplay;
15772     VkBool32           bufferDeviceAddressMultiDevice;
15773 } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
15774 
15775 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
15776 
15777 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
15778 
15779 typedef struct VkBufferDeviceAddressCreateInfoEXT {
15780     VkStructureType    sType;
15781     const void*        pNext;
15782     VkDeviceAddress    deviceAddress;
15783 } VkBufferDeviceAddressCreateInfoEXT;
15784 
15785 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
15786 
15787 #ifndef VK_NO_PROTOTYPES
15788 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
15789     VkDevice                                    device,
15790     const VkBufferDeviceAddressInfo*            pInfo);
15791 #endif
15792 
15793 
15794 // VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
15795 #define VK_EXT_tooling_info 1
15796 #define VK_EXT_TOOLING_INFO_SPEC_VERSION  1
15797 #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
15798 typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
15799 
15800 typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
15801 
15802 typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
15803 
15804 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
15805 
15806 #ifndef VK_NO_PROTOTYPES
15807 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
15808     VkPhysicalDevice                            physicalDevice,
15809     uint32_t*                                   pToolCount,
15810     VkPhysicalDeviceToolProperties*             pToolProperties);
15811 #endif
15812 
15813 
15814 // VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
15815 #define VK_EXT_separate_stencil_usage 1
15816 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
15817 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
15818 typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
15819 
15820 
15821 
15822 // VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
15823 #define VK_EXT_validation_features 1
15824 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
15825 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
15826 
15827 typedef enum VkValidationFeatureEnableEXT {
15828     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
15829     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
15830     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
15831     VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
15832     VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
15833     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
15834 } VkValidationFeatureEnableEXT;
15835 
15836 typedef enum VkValidationFeatureDisableEXT {
15837     VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
15838     VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
15839     VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
15840     VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
15841     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
15842     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
15843     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
15844     VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
15845     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
15846 } VkValidationFeatureDisableEXT;
15847 typedef struct VkValidationFeaturesEXT {
15848     VkStructureType                         sType;
15849     const void*                             pNext;
15850     uint32_t                                enabledValidationFeatureCount;
15851     const VkValidationFeatureEnableEXT*     pEnabledValidationFeatures;
15852     uint32_t                                disabledValidationFeatureCount;
15853     const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
15854 } VkValidationFeaturesEXT;
15855 
15856 
15857 
15858 // VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
15859 #define VK_NV_cooperative_matrix 1
15860 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
15861 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
15862 typedef VkComponentTypeKHR VkComponentTypeNV;
15863 
15864 typedef VkScopeKHR VkScopeNV;
15865 
15866 typedef struct VkCooperativeMatrixPropertiesNV {
15867     VkStructureType      sType;
15868     void*                pNext;
15869     uint32_t             MSize;
15870     uint32_t             NSize;
15871     uint32_t             KSize;
15872     VkComponentTypeNV    AType;
15873     VkComponentTypeNV    BType;
15874     VkComponentTypeNV    CType;
15875     VkComponentTypeNV    DType;
15876     VkScopeNV            scope;
15877 } VkCooperativeMatrixPropertiesNV;
15878 
15879 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
15880     VkStructureType    sType;
15881     void*              pNext;
15882     VkBool32           cooperativeMatrix;
15883     VkBool32           cooperativeMatrixRobustBufferAccess;
15884 } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
15885 
15886 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
15887     VkStructureType       sType;
15888     void*                 pNext;
15889     VkShaderStageFlags    cooperativeMatrixSupportedStages;
15890 } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
15891 
15892 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
15893 
15894 #ifndef VK_NO_PROTOTYPES
15895 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
15896     VkPhysicalDevice                            physicalDevice,
15897     uint32_t*                                   pPropertyCount,
15898     VkCooperativeMatrixPropertiesNV*            pProperties);
15899 #endif
15900 
15901 
15902 // VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
15903 #define VK_NV_coverage_reduction_mode 1
15904 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
15905 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
15906 
15907 typedef enum VkCoverageReductionModeNV {
15908     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
15909     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
15910     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
15911 } VkCoverageReductionModeNV;
15912 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
15913 typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
15914     VkStructureType    sType;
15915     void*              pNext;
15916     VkBool32           coverageReductionMode;
15917 } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
15918 
15919 typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
15920     VkStructureType                                  sType;
15921     const void*                                      pNext;
15922     VkPipelineCoverageReductionStateCreateFlagsNV    flags;
15923     VkCoverageReductionModeNV                        coverageReductionMode;
15924 } VkPipelineCoverageReductionStateCreateInfoNV;
15925 
15926 typedef struct VkFramebufferMixedSamplesCombinationNV {
15927     VkStructureType              sType;
15928     void*                        pNext;
15929     VkCoverageReductionModeNV    coverageReductionMode;
15930     VkSampleCountFlagBits        rasterizationSamples;
15931     VkSampleCountFlags           depthStencilSamples;
15932     VkSampleCountFlags           colorSamples;
15933 } VkFramebufferMixedSamplesCombinationNV;
15934 
15935 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
15936 
15937 #ifndef VK_NO_PROTOTYPES
15938 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
15939     VkPhysicalDevice                            physicalDevice,
15940     uint32_t*                                   pCombinationCount,
15941     VkFramebufferMixedSamplesCombinationNV*     pCombinations);
15942 #endif
15943 
15944 
15945 // VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
15946 #define VK_EXT_fragment_shader_interlock 1
15947 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
15948 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
15949 typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
15950     VkStructureType    sType;
15951     void*              pNext;
15952     VkBool32           fragmentShaderSampleInterlock;
15953     VkBool32           fragmentShaderPixelInterlock;
15954     VkBool32           fragmentShaderShadingRateInterlock;
15955 } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
15956 
15957 
15958 
15959 // VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
15960 #define VK_EXT_ycbcr_image_arrays 1
15961 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
15962 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
15963 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
15964     VkStructureType    sType;
15965     void*              pNext;
15966     VkBool32           ycbcrImageArrays;
15967 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
15968 
15969 
15970 
15971 // VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
15972 #define VK_EXT_provoking_vertex 1
15973 #define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
15974 #define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
15975 
15976 typedef enum VkProvokingVertexModeEXT {
15977     VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
15978     VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
15979     VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
15980 } VkProvokingVertexModeEXT;
15981 typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
15982     VkStructureType    sType;
15983     void*              pNext;
15984     VkBool32           provokingVertexLast;
15985     VkBool32           transformFeedbackPreservesProvokingVertex;
15986 } VkPhysicalDeviceProvokingVertexFeaturesEXT;
15987 
15988 typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
15989     VkStructureType    sType;
15990     void*              pNext;
15991     VkBool32           provokingVertexModePerPipeline;
15992     VkBool32           transformFeedbackPreservesTriangleFanProvokingVertex;
15993 } VkPhysicalDeviceProvokingVertexPropertiesEXT;
15994 
15995 typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
15996     VkStructureType             sType;
15997     const void*                 pNext;
15998     VkProvokingVertexModeEXT    provokingVertexMode;
15999 } VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
16000 
16001 
16002 
16003 // VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
16004 #define VK_EXT_headless_surface 1
16005 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
16006 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
16007 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
16008 typedef struct VkHeadlessSurfaceCreateInfoEXT {
16009     VkStructureType                    sType;
16010     const void*                        pNext;
16011     VkHeadlessSurfaceCreateFlagsEXT    flags;
16012 } VkHeadlessSurfaceCreateInfoEXT;
16013 
16014 typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
16015 
16016 #ifndef VK_NO_PROTOTYPES
16017 VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
16018     VkInstance                                  instance,
16019     const VkHeadlessSurfaceCreateInfoEXT*       pCreateInfo,
16020     const VkAllocationCallbacks*                pAllocator,
16021     VkSurfaceKHR*                               pSurface);
16022 #endif
16023 
16024 
16025 // VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
16026 #define VK_EXT_line_rasterization 1
16027 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
16028 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
16029 typedef VkLineRasterizationMode VkLineRasterizationModeEXT;
16030 
16031 typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesEXT;
16032 
16033 typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesEXT;
16034 
16035 typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoEXT;
16036 
16037 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
16038 
16039 #ifndef VK_NO_PROTOTYPES
16040 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
16041     VkCommandBuffer                             commandBuffer,
16042     uint32_t                                    lineStippleFactor,
16043     uint16_t                                    lineStipplePattern);
16044 #endif
16045 
16046 
16047 // VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
16048 #define VK_EXT_shader_atomic_float 1
16049 #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
16050 #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
16051 typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
16052     VkStructureType    sType;
16053     void*              pNext;
16054     VkBool32           shaderBufferFloat32Atomics;
16055     VkBool32           shaderBufferFloat32AtomicAdd;
16056     VkBool32           shaderBufferFloat64Atomics;
16057     VkBool32           shaderBufferFloat64AtomicAdd;
16058     VkBool32           shaderSharedFloat32Atomics;
16059     VkBool32           shaderSharedFloat32AtomicAdd;
16060     VkBool32           shaderSharedFloat64Atomics;
16061     VkBool32           shaderSharedFloat64AtomicAdd;
16062     VkBool32           shaderImageFloat32Atomics;
16063     VkBool32           shaderImageFloat32AtomicAdd;
16064     VkBool32           sparseImageFloat32Atomics;
16065     VkBool32           sparseImageFloat32AtomicAdd;
16066 } VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
16067 
16068 
16069 
16070 // VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
16071 #define VK_EXT_host_query_reset 1
16072 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
16073 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
16074 typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
16075 
16076 typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
16077 
16078 #ifndef VK_NO_PROTOTYPES
16079 VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
16080     VkDevice                                    device,
16081     VkQueryPool                                 queryPool,
16082     uint32_t                                    firstQuery,
16083     uint32_t                                    queryCount);
16084 #endif
16085 
16086 
16087 // VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
16088 #define VK_EXT_index_type_uint8 1
16089 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
16090 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
16091 typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
16092 
16093 
16094 
16095 // VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
16096 #define VK_EXT_extended_dynamic_state 1
16097 #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
16098 #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
16099 typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
16100     VkStructureType    sType;
16101     void*              pNext;
16102     VkBool32           extendedDynamicState;
16103 } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
16104 
16105 typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
16106 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
16107 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
16108 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
16109 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
16110 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);
16111 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
16112 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
16113 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
16114 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
16115 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
16116 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
16117 
16118 #ifndef VK_NO_PROTOTYPES
16119 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
16120     VkCommandBuffer                             commandBuffer,
16121     VkCullModeFlags                             cullMode);
16122 
16123 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
16124     VkCommandBuffer                             commandBuffer,
16125     VkFrontFace                                 frontFace);
16126 
16127 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
16128     VkCommandBuffer                             commandBuffer,
16129     VkPrimitiveTopology                         primitiveTopology);
16130 
16131 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
16132     VkCommandBuffer                             commandBuffer,
16133     uint32_t                                    viewportCount,
16134     const VkViewport*                           pViewports);
16135 
16136 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
16137     VkCommandBuffer                             commandBuffer,
16138     uint32_t                                    scissorCount,
16139     const VkRect2D*                             pScissors);
16140 
16141 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
16142     VkCommandBuffer                             commandBuffer,
16143     uint32_t                                    firstBinding,
16144     uint32_t                                    bindingCount,
16145     const VkBuffer*                             pBuffers,
16146     const VkDeviceSize*                         pOffsets,
16147     const VkDeviceSize*                         pSizes,
16148     const VkDeviceSize*                         pStrides);
16149 
16150 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
16151     VkCommandBuffer                             commandBuffer,
16152     VkBool32                                    depthTestEnable);
16153 
16154 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
16155     VkCommandBuffer                             commandBuffer,
16156     VkBool32                                    depthWriteEnable);
16157 
16158 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
16159     VkCommandBuffer                             commandBuffer,
16160     VkCompareOp                                 depthCompareOp);
16161 
16162 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
16163     VkCommandBuffer                             commandBuffer,
16164     VkBool32                                    depthBoundsTestEnable);
16165 
16166 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
16167     VkCommandBuffer                             commandBuffer,
16168     VkBool32                                    stencilTestEnable);
16169 
16170 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
16171     VkCommandBuffer                             commandBuffer,
16172     VkStencilFaceFlags                          faceMask,
16173     VkStencilOp                                 failOp,
16174     VkStencilOp                                 passOp,
16175     VkStencilOp                                 depthFailOp,
16176     VkCompareOp                                 compareOp);
16177 #endif
16178 
16179 
16180 // VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
16181 #define VK_EXT_host_image_copy 1
16182 #define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
16183 #define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
16184 typedef VkHostImageCopyFlagBits VkHostImageCopyFlagBitsEXT;
16185 
16186 typedef VkHostImageCopyFlags VkHostImageCopyFlagsEXT;
16187 
16188 typedef VkPhysicalDeviceHostImageCopyFeatures VkPhysicalDeviceHostImageCopyFeaturesEXT;
16189 
16190 typedef VkPhysicalDeviceHostImageCopyProperties VkPhysicalDeviceHostImageCopyPropertiesEXT;
16191 
16192 typedef VkMemoryToImageCopy VkMemoryToImageCopyEXT;
16193 
16194 typedef VkImageToMemoryCopy VkImageToMemoryCopyEXT;
16195 
16196 typedef VkCopyMemoryToImageInfo VkCopyMemoryToImageInfoEXT;
16197 
16198 typedef VkCopyImageToMemoryInfo VkCopyImageToMemoryInfoEXT;
16199 
16200 typedef VkCopyImageToImageInfo VkCopyImageToImageInfoEXT;
16201 
16202 typedef VkHostImageLayoutTransitionInfo VkHostImageLayoutTransitionInfoEXT;
16203 
16204 typedef VkSubresourceHostMemcpySize VkSubresourceHostMemcpySizeEXT;
16205 
16206 typedef VkHostImageCopyDevicePerformanceQuery VkHostImageCopyDevicePerformanceQueryEXT;
16207 
16208 typedef VkSubresourceLayout2 VkSubresourceLayout2EXT;
16209 
16210 typedef VkImageSubresource2 VkImageSubresource2EXT;
16211 
16212 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfo*    pCopyMemoryToImageInfo);
16213 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfo*    pCopyImageToMemoryInfo);
16214 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfo*    pCopyImageToImageInfo);
16215 typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo*    pTransitions);
16216 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
16217 
16218 #ifndef VK_NO_PROTOTYPES
16219 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
16220     VkDevice                                    device,
16221     const VkCopyMemoryToImageInfo*              pCopyMemoryToImageInfo);
16222 
16223 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
16224     VkDevice                                    device,
16225     const VkCopyImageToMemoryInfo*              pCopyImageToMemoryInfo);
16226 
16227 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
16228     VkDevice                                    device,
16229     const VkCopyImageToImageInfo*               pCopyImageToImageInfo);
16230 
16231 VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
16232     VkDevice                                    device,
16233     uint32_t                                    transitionCount,
16234     const VkHostImageLayoutTransitionInfo*      pTransitions);
16235 
16236 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
16237     VkDevice                                    device,
16238     VkImage                                     image,
16239     const VkImageSubresource2*                  pSubresource,
16240     VkSubresourceLayout2*                       pLayout);
16241 #endif
16242 
16243 
16244 // VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
16245 #define VK_EXT_map_memory_placed 1
16246 #define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
16247 #define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
16248 typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
16249     VkStructureType    sType;
16250     void*              pNext;
16251     VkBool32           memoryMapPlaced;
16252     VkBool32           memoryMapRangePlaced;
16253     VkBool32           memoryUnmapReserve;
16254 } VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
16255 
16256 typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
16257     VkStructureType    sType;
16258     void*              pNext;
16259     VkDeviceSize       minPlacedMemoryMapAlignment;
16260 } VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
16261 
16262 typedef struct VkMemoryMapPlacedInfoEXT {
16263     VkStructureType    sType;
16264     const void*        pNext;
16265     void*              pPlacedAddress;
16266 } VkMemoryMapPlacedInfoEXT;
16267 
16268 
16269 
16270 // VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
16271 #define VK_EXT_shader_atomic_float2 1
16272 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
16273 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
16274 typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
16275     VkStructureType    sType;
16276     void*              pNext;
16277     VkBool32           shaderBufferFloat16Atomics;
16278     VkBool32           shaderBufferFloat16AtomicAdd;
16279     VkBool32           shaderBufferFloat16AtomicMinMax;
16280     VkBool32           shaderBufferFloat32AtomicMinMax;
16281     VkBool32           shaderBufferFloat64AtomicMinMax;
16282     VkBool32           shaderSharedFloat16Atomics;
16283     VkBool32           shaderSharedFloat16AtomicAdd;
16284     VkBool32           shaderSharedFloat16AtomicMinMax;
16285     VkBool32           shaderSharedFloat32AtomicMinMax;
16286     VkBool32           shaderSharedFloat64AtomicMinMax;
16287     VkBool32           shaderImageFloat32AtomicMinMax;
16288     VkBool32           sparseImageFloat32AtomicMinMax;
16289 } VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
16290 
16291 
16292 
16293 // VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
16294 #define VK_EXT_surface_maintenance1 1
16295 #define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
16296 #define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
16297 
16298 typedef enum VkPresentScalingFlagBitsEXT {
16299     VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 0x00000001,
16300     VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 0x00000002,
16301     VK_PRESENT_SCALING_STRETCH_BIT_EXT = 0x00000004,
16302     VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16303 } VkPresentScalingFlagBitsEXT;
16304 typedef VkFlags VkPresentScalingFlagsEXT;
16305 
16306 typedef enum VkPresentGravityFlagBitsEXT {
16307     VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0x00000001,
16308     VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0x00000002,
16309     VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0x00000004,
16310     VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16311 } VkPresentGravityFlagBitsEXT;
16312 typedef VkFlags VkPresentGravityFlagsEXT;
16313 typedef struct VkSurfacePresentModeEXT {
16314     VkStructureType     sType;
16315     void*               pNext;
16316     VkPresentModeKHR    presentMode;
16317 } VkSurfacePresentModeEXT;
16318 
16319 typedef struct VkSurfacePresentScalingCapabilitiesEXT {
16320     VkStructureType             sType;
16321     void*                       pNext;
16322     VkPresentScalingFlagsEXT    supportedPresentScaling;
16323     VkPresentGravityFlagsEXT    supportedPresentGravityX;
16324     VkPresentGravityFlagsEXT    supportedPresentGravityY;
16325     VkExtent2D                  minScaledImageExtent;
16326     VkExtent2D                  maxScaledImageExtent;
16327 } VkSurfacePresentScalingCapabilitiesEXT;
16328 
16329 typedef struct VkSurfacePresentModeCompatibilityEXT {
16330     VkStructureType      sType;
16331     void*                pNext;
16332     uint32_t             presentModeCount;
16333     VkPresentModeKHR*    pPresentModes;
16334 } VkSurfacePresentModeCompatibilityEXT;
16335 
16336 
16337 
16338 // VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
16339 #define VK_EXT_swapchain_maintenance1 1
16340 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
16341 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
16342 typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT {
16343     VkStructureType    sType;
16344     void*              pNext;
16345     VkBool32           swapchainMaintenance1;
16346 } VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
16347 
16348 typedef struct VkSwapchainPresentFenceInfoEXT {
16349     VkStructureType    sType;
16350     const void*        pNext;
16351     uint32_t           swapchainCount;
16352     const VkFence*     pFences;
16353 } VkSwapchainPresentFenceInfoEXT;
16354 
16355 typedef struct VkSwapchainPresentModesCreateInfoEXT {
16356     VkStructureType            sType;
16357     const void*                pNext;
16358     uint32_t                   presentModeCount;
16359     const VkPresentModeKHR*    pPresentModes;
16360 } VkSwapchainPresentModesCreateInfoEXT;
16361 
16362 typedef struct VkSwapchainPresentModeInfoEXT {
16363     VkStructureType            sType;
16364     const void*                pNext;
16365     uint32_t                   swapchainCount;
16366     const VkPresentModeKHR*    pPresentModes;
16367 } VkSwapchainPresentModeInfoEXT;
16368 
16369 typedef struct VkSwapchainPresentScalingCreateInfoEXT {
16370     VkStructureType             sType;
16371     const void*                 pNext;
16372     VkPresentScalingFlagsEXT    scalingBehavior;
16373     VkPresentGravityFlagsEXT    presentGravityX;
16374     VkPresentGravityFlagsEXT    presentGravityY;
16375 } VkSwapchainPresentScalingCreateInfoEXT;
16376 
16377 typedef struct VkReleaseSwapchainImagesInfoEXT {
16378     VkStructureType    sType;
16379     const void*        pNext;
16380     VkSwapchainKHR     swapchain;
16381     uint32_t           imageIndexCount;
16382     const uint32_t*    pImageIndices;
16383 } VkReleaseSwapchainImagesInfoEXT;
16384 
16385 typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo);
16386 
16387 #ifndef VK_NO_PROTOTYPES
16388 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
16389     VkDevice                                    device,
16390     const VkReleaseSwapchainImagesInfoEXT*      pReleaseInfo);
16391 #endif
16392 
16393 
16394 // VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
16395 #define VK_EXT_shader_demote_to_helper_invocation 1
16396 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
16397 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
16398 typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
16399 
16400 
16401 
16402 // VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
16403 #define VK_NV_device_generated_commands 1
16404 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
16405 #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
16406 #define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
16407 
16408 typedef enum VkIndirectCommandsTokenTypeNV {
16409     VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
16410     VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
16411     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
16412     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
16413     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
16414     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
16415     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
16416     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
16417     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
16418     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
16419     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
16420     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16421 } VkIndirectCommandsTokenTypeNV;
16422 
16423 typedef enum VkIndirectStateFlagBitsNV {
16424     VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
16425     VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
16426 } VkIndirectStateFlagBitsNV;
16427 typedef VkFlags VkIndirectStateFlagsNV;
16428 
16429 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
16430     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
16431     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
16432     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
16433     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
16434 } VkIndirectCommandsLayoutUsageFlagBitsNV;
16435 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
16436 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
16437     VkStructureType    sType;
16438     void*              pNext;
16439     uint32_t           maxGraphicsShaderGroupCount;
16440     uint32_t           maxIndirectSequenceCount;
16441     uint32_t           maxIndirectCommandsTokenCount;
16442     uint32_t           maxIndirectCommandsStreamCount;
16443     uint32_t           maxIndirectCommandsTokenOffset;
16444     uint32_t           maxIndirectCommandsStreamStride;
16445     uint32_t           minSequencesCountBufferOffsetAlignment;
16446     uint32_t           minSequencesIndexBufferOffsetAlignment;
16447     uint32_t           minIndirectCommandsBufferOffsetAlignment;
16448 } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
16449 
16450 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
16451     VkStructureType    sType;
16452     void*              pNext;
16453     VkBool32           deviceGeneratedCommands;
16454 } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
16455 
16456 typedef struct VkGraphicsShaderGroupCreateInfoNV {
16457     VkStructureType                                 sType;
16458     const void*                                     pNext;
16459     uint32_t                                        stageCount;
16460     const VkPipelineShaderStageCreateInfo*          pStages;
16461     const VkPipelineVertexInputStateCreateInfo*     pVertexInputState;
16462     const VkPipelineTessellationStateCreateInfo*    pTessellationState;
16463 } VkGraphicsShaderGroupCreateInfoNV;
16464 
16465 typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
16466     VkStructureType                             sType;
16467     const void*                                 pNext;
16468     uint32_t                                    groupCount;
16469     const VkGraphicsShaderGroupCreateInfoNV*    pGroups;
16470     uint32_t                                    pipelineCount;
16471     const VkPipeline*                           pPipelines;
16472 } VkGraphicsPipelineShaderGroupsCreateInfoNV;
16473 
16474 typedef struct VkBindShaderGroupIndirectCommandNV {
16475     uint32_t    groupIndex;
16476 } VkBindShaderGroupIndirectCommandNV;
16477 
16478 typedef struct VkBindIndexBufferIndirectCommandNV {
16479     VkDeviceAddress    bufferAddress;
16480     uint32_t           size;
16481     VkIndexType        indexType;
16482 } VkBindIndexBufferIndirectCommandNV;
16483 
16484 typedef struct VkBindVertexBufferIndirectCommandNV {
16485     VkDeviceAddress    bufferAddress;
16486     uint32_t           size;
16487     uint32_t           stride;
16488 } VkBindVertexBufferIndirectCommandNV;
16489 
16490 typedef struct VkSetStateFlagsIndirectCommandNV {
16491     uint32_t    data;
16492 } VkSetStateFlagsIndirectCommandNV;
16493 
16494 typedef struct VkIndirectCommandsStreamNV {
16495     VkBuffer        buffer;
16496     VkDeviceSize    offset;
16497 } VkIndirectCommandsStreamNV;
16498 
16499 typedef struct VkIndirectCommandsLayoutTokenNV {
16500     VkStructureType                  sType;
16501     const void*                      pNext;
16502     VkIndirectCommandsTokenTypeNV    tokenType;
16503     uint32_t                         stream;
16504     uint32_t                         offset;
16505     uint32_t                         vertexBindingUnit;
16506     VkBool32                         vertexDynamicStride;
16507     VkPipelineLayout                 pushconstantPipelineLayout;
16508     VkShaderStageFlags               pushconstantShaderStageFlags;
16509     uint32_t                         pushconstantOffset;
16510     uint32_t                         pushconstantSize;
16511     VkIndirectStateFlagsNV           indirectStateFlags;
16512     uint32_t                         indexTypeCount;
16513     const VkIndexType*               pIndexTypes;
16514     const uint32_t*                  pIndexTypeValues;
16515 } VkIndirectCommandsLayoutTokenNV;
16516 
16517 typedef struct VkIndirectCommandsLayoutCreateInfoNV {
16518     VkStructureType                           sType;
16519     const void*                               pNext;
16520     VkIndirectCommandsLayoutUsageFlagsNV      flags;
16521     VkPipelineBindPoint                       pipelineBindPoint;
16522     uint32_t                                  tokenCount;
16523     const VkIndirectCommandsLayoutTokenNV*    pTokens;
16524     uint32_t                                  streamCount;
16525     const uint32_t*                           pStreamStrides;
16526 } VkIndirectCommandsLayoutCreateInfoNV;
16527 
16528 typedef struct VkGeneratedCommandsInfoNV {
16529     VkStructureType                      sType;
16530     const void*                          pNext;
16531     VkPipelineBindPoint                  pipelineBindPoint;
16532     VkPipeline                           pipeline;
16533     VkIndirectCommandsLayoutNV           indirectCommandsLayout;
16534     uint32_t                             streamCount;
16535     const VkIndirectCommandsStreamNV*    pStreams;
16536     uint32_t                             sequencesCount;
16537     VkBuffer                             preprocessBuffer;
16538     VkDeviceSize                         preprocessOffset;
16539     VkDeviceSize                         preprocessSize;
16540     VkBuffer                             sequencesCountBuffer;
16541     VkDeviceSize                         sequencesCountOffset;
16542     VkBuffer                             sequencesIndexBuffer;
16543     VkDeviceSize                         sequencesIndexOffset;
16544 } VkGeneratedCommandsInfoNV;
16545 
16546 typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
16547     VkStructureType               sType;
16548     const void*                   pNext;
16549     VkPipelineBindPoint           pipelineBindPoint;
16550     VkPipeline                    pipeline;
16551     VkIndirectCommandsLayoutNV    indirectCommandsLayout;
16552     uint32_t                      maxSequencesCount;
16553 } VkGeneratedCommandsMemoryRequirementsInfoNV;
16554 
16555 typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
16556 typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
16557 typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
16558 typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
16559 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
16560 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
16561 
16562 #ifndef VK_NO_PROTOTYPES
16563 VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
16564     VkDevice                                    device,
16565     const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
16566     VkMemoryRequirements2*                      pMemoryRequirements);
16567 
16568 VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
16569     VkCommandBuffer                             commandBuffer,
16570     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
16571 
16572 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
16573     VkCommandBuffer                             commandBuffer,
16574     VkBool32                                    isPreprocessed,
16575     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
16576 
16577 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
16578     VkCommandBuffer                             commandBuffer,
16579     VkPipelineBindPoint                         pipelineBindPoint,
16580     VkPipeline                                  pipeline,
16581     uint32_t                                    groupIndex);
16582 
16583 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
16584     VkDevice                                    device,
16585     const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
16586     const VkAllocationCallbacks*                pAllocator,
16587     VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout);
16588 
16589 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
16590     VkDevice                                    device,
16591     VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
16592     const VkAllocationCallbacks*                pAllocator);
16593 #endif
16594 
16595 
16596 // VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
16597 #define VK_NV_inherited_viewport_scissor 1
16598 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
16599 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
16600 typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
16601     VkStructureType    sType;
16602     void*              pNext;
16603     VkBool32           inheritedViewportScissor2D;
16604 } VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
16605 
16606 typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
16607     VkStructureType      sType;
16608     const void*          pNext;
16609     VkBool32             viewportScissor2D;
16610     uint32_t             viewportDepthCount;
16611     const VkViewport*    pViewportDepths;
16612 } VkCommandBufferInheritanceViewportScissorInfoNV;
16613 
16614 
16615 
16616 // VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
16617 #define VK_EXT_texel_buffer_alignment 1
16618 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
16619 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
16620 typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
16621     VkStructureType    sType;
16622     void*              pNext;
16623     VkBool32           texelBufferAlignment;
16624 } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
16625 
16626 typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
16627 
16628 
16629 
16630 // VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
16631 #define VK_QCOM_render_pass_transform 1
16632 #define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 4
16633 #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
16634 typedef struct VkRenderPassTransformBeginInfoQCOM {
16635     VkStructureType                  sType;
16636     void*                            pNext;
16637     VkSurfaceTransformFlagBitsKHR    transform;
16638 } VkRenderPassTransformBeginInfoQCOM;
16639 
16640 typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
16641     VkStructureType                  sType;
16642     void*                            pNext;
16643     VkSurfaceTransformFlagBitsKHR    transform;
16644     VkRect2D                         renderArea;
16645 } VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
16646 
16647 
16648 
16649 // VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
16650 #define VK_EXT_depth_bias_control 1
16651 #define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
16652 #define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
16653 
16654 typedef enum VkDepthBiasRepresentationEXT {
16655     VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
16656     VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
16657     VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
16658     VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
16659 } VkDepthBiasRepresentationEXT;
16660 typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
16661     VkStructureType    sType;
16662     void*              pNext;
16663     VkBool32           depthBiasControl;
16664     VkBool32           leastRepresentableValueForceUnormRepresentation;
16665     VkBool32           floatRepresentation;
16666     VkBool32           depthBiasExact;
16667 } VkPhysicalDeviceDepthBiasControlFeaturesEXT;
16668 
16669 typedef struct VkDepthBiasInfoEXT {
16670     VkStructureType    sType;
16671     const void*        pNext;
16672     float              depthBiasConstantFactor;
16673     float              depthBiasClamp;
16674     float              depthBiasSlopeFactor;
16675 } VkDepthBiasInfoEXT;
16676 
16677 typedef struct VkDepthBiasRepresentationInfoEXT {
16678     VkStructureType                 sType;
16679     const void*                     pNext;
16680     VkDepthBiasRepresentationEXT    depthBiasRepresentation;
16681     VkBool32                        depthBiasExact;
16682 } VkDepthBiasRepresentationInfoEXT;
16683 
16684 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT*         pDepthBiasInfo);
16685 
16686 #ifndef VK_NO_PROTOTYPES
16687 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
16688     VkCommandBuffer                             commandBuffer,
16689     const VkDepthBiasInfoEXT*                   pDepthBiasInfo);
16690 #endif
16691 
16692 
16693 // VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
16694 #define VK_EXT_device_memory_report 1
16695 #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
16696 #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
16697 
16698 typedef enum VkDeviceMemoryReportEventTypeEXT {
16699     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
16700     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
16701     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
16702     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
16703     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
16704     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
16705 } VkDeviceMemoryReportEventTypeEXT;
16706 typedef VkFlags VkDeviceMemoryReportFlagsEXT;
16707 typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
16708     VkStructureType    sType;
16709     void*              pNext;
16710     VkBool32           deviceMemoryReport;
16711 } VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
16712 
16713 typedef struct VkDeviceMemoryReportCallbackDataEXT {
16714     VkStructureType                     sType;
16715     void*                               pNext;
16716     VkDeviceMemoryReportFlagsEXT        flags;
16717     VkDeviceMemoryReportEventTypeEXT    type;
16718     uint64_t                            memoryObjectId;
16719     VkDeviceSize                        size;
16720     VkObjectType                        objectType;
16721     uint64_t                            objectHandle;
16722     uint32_t                            heapIndex;
16723 } VkDeviceMemoryReportCallbackDataEXT;
16724 
16725 typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
16726     const VkDeviceMemoryReportCallbackDataEXT*  pCallbackData,
16727     void*                                       pUserData);
16728 
16729 typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
16730     VkStructureType                        sType;
16731     const void*                            pNext;
16732     VkDeviceMemoryReportFlagsEXT           flags;
16733     PFN_vkDeviceMemoryReportCallbackEXT    pfnUserCallback;
16734     void*                                  pUserData;
16735 } VkDeviceDeviceMemoryReportCreateInfoEXT;
16736 
16737 
16738 
16739 // VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
16740 #define VK_EXT_acquire_drm_display 1
16741 #define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
16742 #define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
16743 typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
16744 typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
16745 
16746 #ifndef VK_NO_PROTOTYPES
16747 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
16748     VkPhysicalDevice                            physicalDevice,
16749     int32_t                                     drmFd,
16750     VkDisplayKHR                                display);
16751 
16752 VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
16753     VkPhysicalDevice                            physicalDevice,
16754     int32_t                                     drmFd,
16755     uint32_t                                    connectorId,
16756     VkDisplayKHR*                               display);
16757 #endif
16758 
16759 
16760 // VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
16761 #define VK_EXT_robustness2 1
16762 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION  1
16763 #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
16764 typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
16765     VkStructureType    sType;
16766     void*              pNext;
16767     VkBool32           robustBufferAccess2;
16768     VkBool32           robustImageAccess2;
16769     VkBool32           nullDescriptor;
16770 } VkPhysicalDeviceRobustness2FeaturesEXT;
16771 
16772 typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
16773     VkStructureType    sType;
16774     void*              pNext;
16775     VkDeviceSize       robustStorageBufferAccessSizeAlignment;
16776     VkDeviceSize       robustUniformBufferAccessSizeAlignment;
16777 } VkPhysicalDeviceRobustness2PropertiesEXT;
16778 
16779 
16780 
16781 // VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
16782 #define VK_EXT_custom_border_color 1
16783 #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
16784 #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
16785 typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
16786     VkStructureType      sType;
16787     const void*          pNext;
16788     VkClearColorValue    customBorderColor;
16789     VkFormat             format;
16790 } VkSamplerCustomBorderColorCreateInfoEXT;
16791 
16792 typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
16793     VkStructureType    sType;
16794     void*              pNext;
16795     uint32_t           maxCustomBorderColorSamplers;
16796 } VkPhysicalDeviceCustomBorderColorPropertiesEXT;
16797 
16798 typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
16799     VkStructureType    sType;
16800     void*              pNext;
16801     VkBool32           customBorderColors;
16802     VkBool32           customBorderColorWithoutFormat;
16803 } VkPhysicalDeviceCustomBorderColorFeaturesEXT;
16804 
16805 
16806 
16807 // VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
16808 #define VK_GOOGLE_user_type 1
16809 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
16810 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
16811 
16812 
16813 // VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
16814 #define VK_NV_present_barrier 1
16815 #define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
16816 #define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
16817 typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
16818     VkStructureType    sType;
16819     void*              pNext;
16820     VkBool32           presentBarrier;
16821 } VkPhysicalDevicePresentBarrierFeaturesNV;
16822 
16823 typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
16824     VkStructureType    sType;
16825     void*              pNext;
16826     VkBool32           presentBarrierSupported;
16827 } VkSurfaceCapabilitiesPresentBarrierNV;
16828 
16829 typedef struct VkSwapchainPresentBarrierCreateInfoNV {
16830     VkStructureType    sType;
16831     void*              pNext;
16832     VkBool32           presentBarrierEnable;
16833 } VkSwapchainPresentBarrierCreateInfoNV;
16834 
16835 
16836 
16837 // VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
16838 #define VK_EXT_private_data 1
16839 typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
16840 
16841 #define VK_EXT_PRIVATE_DATA_SPEC_VERSION  1
16842 #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
16843 typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
16844 
16845 typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
16846 
16847 typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
16848 
16849 typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
16850 
16851 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
16852 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
16853 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
16854 typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
16855 
16856 #ifndef VK_NO_PROTOTYPES
16857 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
16858     VkDevice                                    device,
16859     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
16860     const VkAllocationCallbacks*                pAllocator,
16861     VkPrivateDataSlot*                          pPrivateDataSlot);
16862 
16863 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
16864     VkDevice                                    device,
16865     VkPrivateDataSlot                           privateDataSlot,
16866     const VkAllocationCallbacks*                pAllocator);
16867 
16868 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
16869     VkDevice                                    device,
16870     VkObjectType                                objectType,
16871     uint64_t                                    objectHandle,
16872     VkPrivateDataSlot                           privateDataSlot,
16873     uint64_t                                    data);
16874 
16875 VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
16876     VkDevice                                    device,
16877     VkObjectType                                objectType,
16878     uint64_t                                    objectHandle,
16879     VkPrivateDataSlot                           privateDataSlot,
16880     uint64_t*                                   pData);
16881 #endif
16882 
16883 
16884 // VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
16885 #define VK_EXT_pipeline_creation_cache_control 1
16886 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
16887 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
16888 typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
16889 
16890 
16891 
16892 // VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
16893 #define VK_NV_device_diagnostics_config 1
16894 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
16895 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
16896 
16897 typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
16898     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
16899     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
16900     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
16901     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
16902     VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
16903 } VkDeviceDiagnosticsConfigFlagBitsNV;
16904 typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
16905 typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
16906     VkStructureType    sType;
16907     void*              pNext;
16908     VkBool32           diagnosticsConfig;
16909 } VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
16910 
16911 typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
16912     VkStructureType                     sType;
16913     const void*                         pNext;
16914     VkDeviceDiagnosticsConfigFlagsNV    flags;
16915 } VkDeviceDiagnosticsConfigCreateInfoNV;
16916 
16917 
16918 
16919 // VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
16920 #define VK_QCOM_render_pass_store_ops 1
16921 #define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
16922 #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
16923 
16924 
16925 // VK_NV_cuda_kernel_launch is a preprocessor guard. Do not pass it to API calls.
16926 #define VK_NV_cuda_kernel_launch 1
16927 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaModuleNV)
16928 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaFunctionNV)
16929 #define VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION 2
16930 #define VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME "VK_NV_cuda_kernel_launch"
16931 typedef struct VkCudaModuleCreateInfoNV {
16932     VkStructureType    sType;
16933     const void*        pNext;
16934     size_t             dataSize;
16935     const void*        pData;
16936 } VkCudaModuleCreateInfoNV;
16937 
16938 typedef struct VkCudaFunctionCreateInfoNV {
16939     VkStructureType    sType;
16940     const void*        pNext;
16941     VkCudaModuleNV     module;
16942     const char*        pName;
16943 } VkCudaFunctionCreateInfoNV;
16944 
16945 typedef struct VkCudaLaunchInfoNV {
16946     VkStructureType        sType;
16947     const void*            pNext;
16948     VkCudaFunctionNV       function;
16949     uint32_t               gridDimX;
16950     uint32_t               gridDimY;
16951     uint32_t               gridDimZ;
16952     uint32_t               blockDimX;
16953     uint32_t               blockDimY;
16954     uint32_t               blockDimZ;
16955     uint32_t               sharedMemBytes;
16956     size_t                 paramCount;
16957     const void* const *    pParams;
16958     size_t                 extraCount;
16959     const void* const *    pExtras;
16960 } VkCudaLaunchInfoNV;
16961 
16962 typedef struct VkPhysicalDeviceCudaKernelLaunchFeaturesNV {
16963     VkStructureType    sType;
16964     void*              pNext;
16965     VkBool32           cudaKernelLaunchFeatures;
16966 } VkPhysicalDeviceCudaKernelLaunchFeaturesNV;
16967 
16968 typedef struct VkPhysicalDeviceCudaKernelLaunchPropertiesNV {
16969     VkStructureType    sType;
16970     void*              pNext;
16971     uint32_t           computeCapabilityMinor;
16972     uint32_t           computeCapabilityMajor;
16973 } VkPhysicalDeviceCudaKernelLaunchPropertiesNV;
16974 
16975 typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaModuleNV)(VkDevice device, const VkCudaModuleCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaModuleNV* pModule);
16976 typedef VkResult (VKAPI_PTR *PFN_vkGetCudaModuleCacheNV)(VkDevice device, VkCudaModuleNV module, size_t* pCacheSize, void* pCacheData);
16977 typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaFunctionNV)(VkDevice device, const VkCudaFunctionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaFunctionNV* pFunction);
16978 typedef void (VKAPI_PTR *PFN_vkDestroyCudaModuleNV)(VkDevice device, VkCudaModuleNV module, const VkAllocationCallbacks* pAllocator);
16979 typedef void (VKAPI_PTR *PFN_vkDestroyCudaFunctionNV)(VkDevice device, VkCudaFunctionNV function, const VkAllocationCallbacks* pAllocator);
16980 typedef void (VKAPI_PTR *PFN_vkCmdCudaLaunchKernelNV)(VkCommandBuffer commandBuffer, const VkCudaLaunchInfoNV* pLaunchInfo);
16981 
16982 #ifndef VK_NO_PROTOTYPES
16983 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaModuleNV(
16984     VkDevice                                    device,
16985     const VkCudaModuleCreateInfoNV*             pCreateInfo,
16986     const VkAllocationCallbacks*                pAllocator,
16987     VkCudaModuleNV*                             pModule);
16988 
16989 VKAPI_ATTR VkResult VKAPI_CALL vkGetCudaModuleCacheNV(
16990     VkDevice                                    device,
16991     VkCudaModuleNV                              module,
16992     size_t*                                     pCacheSize,
16993     void*                                       pCacheData);
16994 
16995 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaFunctionNV(
16996     VkDevice                                    device,
16997     const VkCudaFunctionCreateInfoNV*           pCreateInfo,
16998     const VkAllocationCallbacks*                pAllocator,
16999     VkCudaFunctionNV*                           pFunction);
17000 
17001 VKAPI_ATTR void VKAPI_CALL vkDestroyCudaModuleNV(
17002     VkDevice                                    device,
17003     VkCudaModuleNV                              module,
17004     const VkAllocationCallbacks*                pAllocator);
17005 
17006 VKAPI_ATTR void VKAPI_CALL vkDestroyCudaFunctionNV(
17007     VkDevice                                    device,
17008     VkCudaFunctionNV                            function,
17009     const VkAllocationCallbacks*                pAllocator);
17010 
17011 VKAPI_ATTR void VKAPI_CALL vkCmdCudaLaunchKernelNV(
17012     VkCommandBuffer                             commandBuffer,
17013     const VkCudaLaunchInfoNV*                   pLaunchInfo);
17014 #endif
17015 
17016 
17017 // VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
17018 #define VK_NV_low_latency 1
17019 #define VK_NV_LOW_LATENCY_SPEC_VERSION    1
17020 #define VK_NV_LOW_LATENCY_EXTENSION_NAME  "VK_NV_low_latency"
17021 typedef struct VkQueryLowLatencySupportNV {
17022     VkStructureType    sType;
17023     const void*        pNext;
17024     void*              pQueriedLowLatencyData;
17025 } VkQueryLowLatencySupportNV;
17026 
17027 
17028 
17029 // VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
17030 #define VK_EXT_descriptor_buffer 1
17031 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
17032 #define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
17033 #define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
17034 typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
17035     VkStructureType    sType;
17036     void*              pNext;
17037     VkBool32           combinedImageSamplerDescriptorSingleArray;
17038     VkBool32           bufferlessPushDescriptors;
17039     VkBool32           allowSamplerImageViewPostSubmitCreation;
17040     VkDeviceSize       descriptorBufferOffsetAlignment;
17041     uint32_t           maxDescriptorBufferBindings;
17042     uint32_t           maxResourceDescriptorBufferBindings;
17043     uint32_t           maxSamplerDescriptorBufferBindings;
17044     uint32_t           maxEmbeddedImmutableSamplerBindings;
17045     uint32_t           maxEmbeddedImmutableSamplers;
17046     size_t             bufferCaptureReplayDescriptorDataSize;
17047     size_t             imageCaptureReplayDescriptorDataSize;
17048     size_t             imageViewCaptureReplayDescriptorDataSize;
17049     size_t             samplerCaptureReplayDescriptorDataSize;
17050     size_t             accelerationStructureCaptureReplayDescriptorDataSize;
17051     size_t             samplerDescriptorSize;
17052     size_t             combinedImageSamplerDescriptorSize;
17053     size_t             sampledImageDescriptorSize;
17054     size_t             storageImageDescriptorSize;
17055     size_t             uniformTexelBufferDescriptorSize;
17056     size_t             robustUniformTexelBufferDescriptorSize;
17057     size_t             storageTexelBufferDescriptorSize;
17058     size_t             robustStorageTexelBufferDescriptorSize;
17059     size_t             uniformBufferDescriptorSize;
17060     size_t             robustUniformBufferDescriptorSize;
17061     size_t             storageBufferDescriptorSize;
17062     size_t             robustStorageBufferDescriptorSize;
17063     size_t             inputAttachmentDescriptorSize;
17064     size_t             accelerationStructureDescriptorSize;
17065     VkDeviceSize       maxSamplerDescriptorBufferRange;
17066     VkDeviceSize       maxResourceDescriptorBufferRange;
17067     VkDeviceSize       samplerDescriptorBufferAddressSpaceSize;
17068     VkDeviceSize       resourceDescriptorBufferAddressSpaceSize;
17069     VkDeviceSize       descriptorBufferAddressSpaceSize;
17070 } VkPhysicalDeviceDescriptorBufferPropertiesEXT;
17071 
17072 typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
17073     VkStructureType    sType;
17074     void*              pNext;
17075     size_t             combinedImageSamplerDensityMapDescriptorSize;
17076 } VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
17077 
17078 typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
17079     VkStructureType    sType;
17080     void*              pNext;
17081     VkBool32           descriptorBuffer;
17082     VkBool32           descriptorBufferCaptureReplay;
17083     VkBool32           descriptorBufferImageLayoutIgnored;
17084     VkBool32           descriptorBufferPushDescriptors;
17085 } VkPhysicalDeviceDescriptorBufferFeaturesEXT;
17086 
17087 typedef struct VkDescriptorAddressInfoEXT {
17088     VkStructureType    sType;
17089     void*              pNext;
17090     VkDeviceAddress    address;
17091     VkDeviceSize       range;
17092     VkFormat           format;
17093 } VkDescriptorAddressInfoEXT;
17094 
17095 typedef struct VkDescriptorBufferBindingInfoEXT {
17096     VkStructureType       sType;
17097     const void*           pNext;
17098     VkDeviceAddress       address;
17099     VkBufferUsageFlags    usage;
17100 } VkDescriptorBufferBindingInfoEXT;
17101 
17102 typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
17103     VkStructureType    sType;
17104     const void*        pNext;
17105     VkBuffer           buffer;
17106 } VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
17107 
17108 typedef union VkDescriptorDataEXT {
17109     const VkSampler*                     pSampler;
17110     const VkDescriptorImageInfo*         pCombinedImageSampler;
17111     const VkDescriptorImageInfo*         pInputAttachmentImage;
17112     const VkDescriptorImageInfo*         pSampledImage;
17113     const VkDescriptorImageInfo*         pStorageImage;
17114     const VkDescriptorAddressInfoEXT*    pUniformTexelBuffer;
17115     const VkDescriptorAddressInfoEXT*    pStorageTexelBuffer;
17116     const VkDescriptorAddressInfoEXT*    pUniformBuffer;
17117     const VkDescriptorAddressInfoEXT*    pStorageBuffer;
17118     VkDeviceAddress                      accelerationStructure;
17119 } VkDescriptorDataEXT;
17120 
17121 typedef struct VkDescriptorGetInfoEXT {
17122     VkStructureType        sType;
17123     const void*            pNext;
17124     VkDescriptorType       type;
17125     VkDescriptorDataEXT    data;
17126 } VkDescriptorGetInfoEXT;
17127 
17128 typedef struct VkBufferCaptureDescriptorDataInfoEXT {
17129     VkStructureType    sType;
17130     const void*        pNext;
17131     VkBuffer           buffer;
17132 } VkBufferCaptureDescriptorDataInfoEXT;
17133 
17134 typedef struct VkImageCaptureDescriptorDataInfoEXT {
17135     VkStructureType    sType;
17136     const void*        pNext;
17137     VkImage            image;
17138 } VkImageCaptureDescriptorDataInfoEXT;
17139 
17140 typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
17141     VkStructureType    sType;
17142     const void*        pNext;
17143     VkImageView        imageView;
17144 } VkImageViewCaptureDescriptorDataInfoEXT;
17145 
17146 typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
17147     VkStructureType    sType;
17148     const void*        pNext;
17149     VkSampler          sampler;
17150 } VkSamplerCaptureDescriptorDataInfoEXT;
17151 
17152 typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
17153     VkStructureType    sType;
17154     const void*        pNext;
17155     const void*        opaqueCaptureDescriptorData;
17156 } VkOpaqueCaptureDescriptorDataCreateInfoEXT;
17157 
17158 typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
17159     VkStructureType               sType;
17160     const void*                   pNext;
17161     VkAccelerationStructureKHR    accelerationStructure;
17162     VkAccelerationStructureNV     accelerationStructureNV;
17163 } VkAccelerationStructureCaptureDescriptorDataInfoEXT;
17164 
17165 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
17166 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
17167 typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
17168 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
17169 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);
17170 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
17171 typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
17172 typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
17173 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
17174 typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
17175 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
17176 
17177 #ifndef VK_NO_PROTOTYPES
17178 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
17179     VkDevice                                    device,
17180     VkDescriptorSetLayout                       layout,
17181     VkDeviceSize*                               pLayoutSizeInBytes);
17182 
17183 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
17184     VkDevice                                    device,
17185     VkDescriptorSetLayout                       layout,
17186     uint32_t                                    binding,
17187     VkDeviceSize*                               pOffset);
17188 
17189 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
17190     VkDevice                                    device,
17191     const VkDescriptorGetInfoEXT*               pDescriptorInfo,
17192     size_t                                      dataSize,
17193     void*                                       pDescriptor);
17194 
17195 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
17196     VkCommandBuffer                             commandBuffer,
17197     uint32_t                                    bufferCount,
17198     const VkDescriptorBufferBindingInfoEXT*     pBindingInfos);
17199 
17200 VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
17201     VkCommandBuffer                             commandBuffer,
17202     VkPipelineBindPoint                         pipelineBindPoint,
17203     VkPipelineLayout                            layout,
17204     uint32_t                                    firstSet,
17205     uint32_t                                    setCount,
17206     const uint32_t*                             pBufferIndices,
17207     const VkDeviceSize*                         pOffsets);
17208 
17209 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
17210     VkCommandBuffer                             commandBuffer,
17211     VkPipelineBindPoint                         pipelineBindPoint,
17212     VkPipelineLayout                            layout,
17213     uint32_t                                    set);
17214 
17215 VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
17216     VkDevice                                    device,
17217     const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
17218     void*                                       pData);
17219 
17220 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
17221     VkDevice                                    device,
17222     const VkImageCaptureDescriptorDataInfoEXT*  pInfo,
17223     void*                                       pData);
17224 
17225 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
17226     VkDevice                                    device,
17227     const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
17228     void*                                       pData);
17229 
17230 VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
17231     VkDevice                                    device,
17232     const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
17233     void*                                       pData);
17234 
17235 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
17236     VkDevice                                    device,
17237     const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
17238     void*                                       pData);
17239 #endif
17240 
17241 
17242 // VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
17243 #define VK_EXT_graphics_pipeline_library 1
17244 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
17245 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
17246 
17247 typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
17248     VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
17249     VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
17250     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
17251     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
17252     VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17253 } VkGraphicsPipelineLibraryFlagBitsEXT;
17254 typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
17255 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
17256     VkStructureType    sType;
17257     void*              pNext;
17258     VkBool32           graphicsPipelineLibrary;
17259 } VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
17260 
17261 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
17262     VkStructureType    sType;
17263     void*              pNext;
17264     VkBool32           graphicsPipelineLibraryFastLinking;
17265     VkBool32           graphicsPipelineLibraryIndependentInterpolationDecoration;
17266 } VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
17267 
17268 typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
17269     VkStructureType                      sType;
17270     const void*                          pNext;
17271     VkGraphicsPipelineLibraryFlagsEXT    flags;
17272 } VkGraphicsPipelineLibraryCreateInfoEXT;
17273 
17274 
17275 
17276 // VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
17277 #define VK_AMD_shader_early_and_late_fragment_tests 1
17278 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
17279 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
17280 typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
17281     VkStructureType    sType;
17282     void*              pNext;
17283     VkBool32           shaderEarlyAndLateFragmentTests;
17284 } VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
17285 
17286 
17287 
17288 // VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
17289 #define VK_NV_fragment_shading_rate_enums 1
17290 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
17291 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
17292 
17293 typedef enum VkFragmentShadingRateTypeNV {
17294     VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
17295     VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
17296     VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
17297 } VkFragmentShadingRateTypeNV;
17298 
17299 typedef enum VkFragmentShadingRateNV {
17300     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
17301     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
17302     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
17303     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
17304     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
17305     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
17306     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
17307     VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
17308     VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
17309     VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
17310     VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
17311     VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
17312     VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
17313 } VkFragmentShadingRateNV;
17314 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
17315     VkStructureType    sType;
17316     void*              pNext;
17317     VkBool32           fragmentShadingRateEnums;
17318     VkBool32           supersampleFragmentShadingRates;
17319     VkBool32           noInvocationFragmentShadingRates;
17320 } VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
17321 
17322 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
17323     VkStructureType          sType;
17324     void*                    pNext;
17325     VkSampleCountFlagBits    maxFragmentShadingRateInvocationCount;
17326 } VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
17327 
17328 typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
17329     VkStructureType                       sType;
17330     const void*                           pNext;
17331     VkFragmentShadingRateTypeNV           shadingRateType;
17332     VkFragmentShadingRateNV               shadingRate;
17333     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
17334 } VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
17335 
17336 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer           commandBuffer, VkFragmentShadingRateNV                     shadingRate, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
17337 
17338 #ifndef VK_NO_PROTOTYPES
17339 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
17340     VkCommandBuffer                             commandBuffer,
17341     VkFragmentShadingRateNV                     shadingRate,
17342     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
17343 #endif
17344 
17345 
17346 // VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
17347 #define VK_NV_ray_tracing_motion_blur 1
17348 #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
17349 #define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
17350 
17351 typedef enum VkAccelerationStructureMotionInstanceTypeNV {
17352     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
17353     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
17354     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
17355     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
17356 } VkAccelerationStructureMotionInstanceTypeNV;
17357 typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
17358 typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
17359 typedef union VkDeviceOrHostAddressConstKHR {
17360     VkDeviceAddress    deviceAddress;
17361     const void*        hostAddress;
17362 } VkDeviceOrHostAddressConstKHR;
17363 
17364 typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
17365     VkStructureType                  sType;
17366     const void*                      pNext;
17367     VkDeviceOrHostAddressConstKHR    vertexData;
17368 } VkAccelerationStructureGeometryMotionTrianglesDataNV;
17369 
17370 typedef struct VkAccelerationStructureMotionInfoNV {
17371     VkStructureType                             sType;
17372     const void*                                 pNext;
17373     uint32_t                                    maxInstances;
17374     VkAccelerationStructureMotionInfoFlagsNV    flags;
17375 } VkAccelerationStructureMotionInfoNV;
17376 
17377 typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
17378     VkTransformMatrixKHR          transformT0;
17379     VkTransformMatrixKHR          transformT1;
17380     uint32_t                      instanceCustomIndex:24;
17381     uint32_t                      mask:8;
17382     uint32_t                      instanceShaderBindingTableRecordOffset:24;
17383     VkGeometryInstanceFlagsKHR    flags:8;
17384     uint64_t                      accelerationStructureReference;
17385 } VkAccelerationStructureMatrixMotionInstanceNV;
17386 
17387 typedef struct VkSRTDataNV {
17388     float    sx;
17389     float    a;
17390     float    b;
17391     float    pvx;
17392     float    sy;
17393     float    c;
17394     float    pvy;
17395     float    sz;
17396     float    pvz;
17397     float    qx;
17398     float    qy;
17399     float    qz;
17400     float    qw;
17401     float    tx;
17402     float    ty;
17403     float    tz;
17404 } VkSRTDataNV;
17405 
17406 typedef struct VkAccelerationStructureSRTMotionInstanceNV {
17407     VkSRTDataNV                   transformT0;
17408     VkSRTDataNV                   transformT1;
17409     uint32_t                      instanceCustomIndex:24;
17410     uint32_t                      mask:8;
17411     uint32_t                      instanceShaderBindingTableRecordOffset:24;
17412     VkGeometryInstanceFlagsKHR    flags:8;
17413     uint64_t                      accelerationStructureReference;
17414 } VkAccelerationStructureSRTMotionInstanceNV;
17415 
17416 typedef union VkAccelerationStructureMotionInstanceDataNV {
17417     VkAccelerationStructureInstanceKHR               staticInstance;
17418     VkAccelerationStructureMatrixMotionInstanceNV    matrixMotionInstance;
17419     VkAccelerationStructureSRTMotionInstanceNV       srtMotionInstance;
17420 } VkAccelerationStructureMotionInstanceDataNV;
17421 
17422 typedef struct VkAccelerationStructureMotionInstanceNV {
17423     VkAccelerationStructureMotionInstanceTypeNV     type;
17424     VkAccelerationStructureMotionInstanceFlagsNV    flags;
17425     VkAccelerationStructureMotionInstanceDataNV     data;
17426 } VkAccelerationStructureMotionInstanceNV;
17427 
17428 typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
17429     VkStructureType    sType;
17430     void*              pNext;
17431     VkBool32           rayTracingMotionBlur;
17432     VkBool32           rayTracingMotionBlurPipelineTraceRaysIndirect;
17433 } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
17434 
17435 
17436 
17437 // VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
17438 #define VK_EXT_ycbcr_2plane_444_formats 1
17439 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
17440 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
17441 typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
17442     VkStructureType    sType;
17443     void*              pNext;
17444     VkBool32           ycbcr2plane444Formats;
17445 } VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
17446 
17447 
17448 
17449 // VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
17450 #define VK_EXT_fragment_density_map2 1
17451 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
17452 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
17453 typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
17454     VkStructureType    sType;
17455     void*              pNext;
17456     VkBool32           fragmentDensityMapDeferred;
17457 } VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
17458 
17459 typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
17460     VkStructureType    sType;
17461     void*              pNext;
17462     VkBool32           subsampledLoads;
17463     VkBool32           subsampledCoarseReconstructionEarlyAccess;
17464     uint32_t           maxSubsampledArrayLayers;
17465     uint32_t           maxDescriptorSetSubsampledSamplers;
17466 } VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
17467 
17468 
17469 
17470 // VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
17471 #define VK_QCOM_rotated_copy_commands 1
17472 #define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
17473 #define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
17474 typedef struct VkCopyCommandTransformInfoQCOM {
17475     VkStructureType                  sType;
17476     const void*                      pNext;
17477     VkSurfaceTransformFlagBitsKHR    transform;
17478 } VkCopyCommandTransformInfoQCOM;
17479 
17480 
17481 
17482 // VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
17483 #define VK_EXT_image_robustness 1
17484 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
17485 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
17486 typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
17487 
17488 
17489 
17490 // VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
17491 #define VK_EXT_image_compression_control 1
17492 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
17493 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
17494 
17495 typedef enum VkImageCompressionFlagBitsEXT {
17496     VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
17497     VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
17498     VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
17499     VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
17500     VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17501 } VkImageCompressionFlagBitsEXT;
17502 typedef VkFlags VkImageCompressionFlagsEXT;
17503 
17504 typedef enum VkImageCompressionFixedRateFlagBitsEXT {
17505     VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
17506     VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
17507     VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
17508     VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
17509     VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
17510     VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
17511     VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
17512     VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
17513     VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
17514     VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
17515     VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
17516     VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
17517     VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
17518     VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
17519     VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
17520     VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
17521     VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
17522     VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
17523     VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
17524     VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
17525     VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
17526     VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
17527     VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
17528     VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
17529     VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
17530     VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17531 } VkImageCompressionFixedRateFlagBitsEXT;
17532 typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
17533 typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
17534     VkStructureType    sType;
17535     void*              pNext;
17536     VkBool32           imageCompressionControl;
17537 } VkPhysicalDeviceImageCompressionControlFeaturesEXT;
17538 
17539 typedef struct VkImageCompressionControlEXT {
17540     VkStructureType                         sType;
17541     const void*                             pNext;
17542     VkImageCompressionFlagsEXT              flags;
17543     uint32_t                                compressionControlPlaneCount;
17544     VkImageCompressionFixedRateFlagsEXT*    pFixedRateFlags;
17545 } VkImageCompressionControlEXT;
17546 
17547 typedef struct VkImageCompressionPropertiesEXT {
17548     VkStructureType                        sType;
17549     void*                                  pNext;
17550     VkImageCompressionFlagsEXT             imageCompressionFlags;
17551     VkImageCompressionFixedRateFlagsEXT    imageCompressionFixedRateFlags;
17552 } VkImageCompressionPropertiesEXT;
17553 
17554 
17555 
17556 // VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
17557 #define VK_EXT_attachment_feedback_loop_layout 1
17558 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
17559 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
17560 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
17561     VkStructureType    sType;
17562     void*              pNext;
17563     VkBool32           attachmentFeedbackLoopLayout;
17564 } VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
17565 
17566 
17567 
17568 // VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
17569 #define VK_EXT_4444_formats 1
17570 #define VK_EXT_4444_FORMATS_SPEC_VERSION  1
17571 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
17572 typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
17573     VkStructureType    sType;
17574     void*              pNext;
17575     VkBool32           formatA4R4G4B4;
17576     VkBool32           formatA4B4G4R4;
17577 } VkPhysicalDevice4444FormatsFeaturesEXT;
17578 
17579 
17580 
17581 // VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
17582 #define VK_EXT_device_fault 1
17583 #define VK_EXT_DEVICE_FAULT_SPEC_VERSION  2
17584 #define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
17585 
17586 typedef enum VkDeviceFaultAddressTypeEXT {
17587     VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
17588     VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
17589     VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
17590     VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
17591     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
17592     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
17593     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
17594     VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
17595 } VkDeviceFaultAddressTypeEXT;
17596 
17597 typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
17598     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
17599     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
17600 } VkDeviceFaultVendorBinaryHeaderVersionEXT;
17601 typedef struct VkPhysicalDeviceFaultFeaturesEXT {
17602     VkStructureType    sType;
17603     void*              pNext;
17604     VkBool32           deviceFault;
17605     VkBool32           deviceFaultVendorBinary;
17606 } VkPhysicalDeviceFaultFeaturesEXT;
17607 
17608 typedef struct VkDeviceFaultCountsEXT {
17609     VkStructureType    sType;
17610     void*              pNext;
17611     uint32_t           addressInfoCount;
17612     uint32_t           vendorInfoCount;
17613     VkDeviceSize       vendorBinarySize;
17614 } VkDeviceFaultCountsEXT;
17615 
17616 typedef struct VkDeviceFaultAddressInfoEXT {
17617     VkDeviceFaultAddressTypeEXT    addressType;
17618     VkDeviceAddress                reportedAddress;
17619     VkDeviceSize                   addressPrecision;
17620 } VkDeviceFaultAddressInfoEXT;
17621 
17622 typedef struct VkDeviceFaultVendorInfoEXT {
17623     char        description[VK_MAX_DESCRIPTION_SIZE];
17624     uint64_t    vendorFaultCode;
17625     uint64_t    vendorFaultData;
17626 } VkDeviceFaultVendorInfoEXT;
17627 
17628 typedef struct VkDeviceFaultInfoEXT {
17629     VkStructureType                 sType;
17630     void*                           pNext;
17631     char                            description[VK_MAX_DESCRIPTION_SIZE];
17632     VkDeviceFaultAddressInfoEXT*    pAddressInfos;
17633     VkDeviceFaultVendorInfoEXT*     pVendorInfos;
17634     void*                           pVendorBinaryData;
17635 } VkDeviceFaultInfoEXT;
17636 
17637 typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
17638     uint32_t                                     headerSize;
17639     VkDeviceFaultVendorBinaryHeaderVersionEXT    headerVersion;
17640     uint32_t                                     vendorID;
17641     uint32_t                                     deviceID;
17642     uint32_t                                     driverVersion;
17643     uint8_t                                      pipelineCacheUUID[VK_UUID_SIZE];
17644     uint32_t                                     applicationNameOffset;
17645     uint32_t                                     applicationVersion;
17646     uint32_t                                     engineNameOffset;
17647     uint32_t                                     engineVersion;
17648     uint32_t                                     apiVersion;
17649 } VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
17650 
17651 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
17652 
17653 #ifndef VK_NO_PROTOTYPES
17654 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
17655     VkDevice                                    device,
17656     VkDeviceFaultCountsEXT*                     pFaultCounts,
17657     VkDeviceFaultInfoEXT*                       pFaultInfo);
17658 #endif
17659 
17660 
17661 // VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
17662 #define VK_ARM_rasterization_order_attachment_access 1
17663 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
17664 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
17665 typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
17666     VkStructureType    sType;
17667     void*              pNext;
17668     VkBool32           rasterizationOrderColorAttachmentAccess;
17669     VkBool32           rasterizationOrderDepthAttachmentAccess;
17670     VkBool32           rasterizationOrderStencilAttachmentAccess;
17671 } VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
17672 
17673 typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
17674 
17675 
17676 
17677 // VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
17678 #define VK_EXT_rgba10x6_formats 1
17679 #define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
17680 #define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
17681 typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
17682     VkStructureType    sType;
17683     void*              pNext;
17684     VkBool32           formatRgba10x6WithoutYCbCrSampler;
17685 } VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
17686 
17687 
17688 
17689 // VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
17690 #define VK_VALVE_mutable_descriptor_type 1
17691 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
17692 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
17693 typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
17694     VkStructureType    sType;
17695     void*              pNext;
17696     VkBool32           mutableDescriptorType;
17697 } VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
17698 
17699 typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
17700 
17701 typedef struct VkMutableDescriptorTypeListEXT {
17702     uint32_t                   descriptorTypeCount;
17703     const VkDescriptorType*    pDescriptorTypes;
17704 } VkMutableDescriptorTypeListEXT;
17705 
17706 typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
17707 
17708 typedef struct VkMutableDescriptorTypeCreateInfoEXT {
17709     VkStructureType                          sType;
17710     const void*                              pNext;
17711     uint32_t                                 mutableDescriptorTypeListCount;
17712     const VkMutableDescriptorTypeListEXT*    pMutableDescriptorTypeLists;
17713 } VkMutableDescriptorTypeCreateInfoEXT;
17714 
17715 typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
17716 
17717 
17718 
17719 // VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
17720 #define VK_EXT_vertex_input_dynamic_state 1
17721 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
17722 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
17723 typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
17724     VkStructureType    sType;
17725     void*              pNext;
17726     VkBool32           vertexInputDynamicState;
17727 } VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
17728 
17729 typedef struct VkVertexInputBindingDescription2EXT {
17730     VkStructureType      sType;
17731     void*                pNext;
17732     uint32_t             binding;
17733     uint32_t             stride;
17734     VkVertexInputRate    inputRate;
17735     uint32_t             divisor;
17736 } VkVertexInputBindingDescription2EXT;
17737 
17738 typedef struct VkVertexInputAttributeDescription2EXT {
17739     VkStructureType    sType;
17740     void*              pNext;
17741     uint32_t           location;
17742     uint32_t           binding;
17743     VkFormat           format;
17744     uint32_t           offset;
17745 } VkVertexInputAttributeDescription2EXT;
17746 
17747 typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
17748 
17749 #ifndef VK_NO_PROTOTYPES
17750 VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
17751     VkCommandBuffer                             commandBuffer,
17752     uint32_t                                    vertexBindingDescriptionCount,
17753     const VkVertexInputBindingDescription2EXT*  pVertexBindingDescriptions,
17754     uint32_t                                    vertexAttributeDescriptionCount,
17755     const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
17756 #endif
17757 
17758 
17759 // VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
17760 #define VK_EXT_physical_device_drm 1
17761 #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
17762 #define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
17763 typedef struct VkPhysicalDeviceDrmPropertiesEXT {
17764     VkStructureType    sType;
17765     void*              pNext;
17766     VkBool32           hasPrimary;
17767     VkBool32           hasRender;
17768     int64_t            primaryMajor;
17769     int64_t            primaryMinor;
17770     int64_t            renderMajor;
17771     int64_t            renderMinor;
17772 } VkPhysicalDeviceDrmPropertiesEXT;
17773 
17774 
17775 
17776 // VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
17777 #define VK_EXT_device_address_binding_report 1
17778 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
17779 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
17780 
17781 typedef enum VkDeviceAddressBindingTypeEXT {
17782     VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
17783     VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
17784     VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
17785 } VkDeviceAddressBindingTypeEXT;
17786 
17787 typedef enum VkDeviceAddressBindingFlagBitsEXT {
17788     VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
17789     VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17790 } VkDeviceAddressBindingFlagBitsEXT;
17791 typedef VkFlags VkDeviceAddressBindingFlagsEXT;
17792 typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
17793     VkStructureType    sType;
17794     void*              pNext;
17795     VkBool32           reportAddressBinding;
17796 } VkPhysicalDeviceAddressBindingReportFeaturesEXT;
17797 
17798 typedef struct VkDeviceAddressBindingCallbackDataEXT {
17799     VkStructureType                   sType;
17800     void*                             pNext;
17801     VkDeviceAddressBindingFlagsEXT    flags;
17802     VkDeviceAddress                   baseAddress;
17803     VkDeviceSize                      size;
17804     VkDeviceAddressBindingTypeEXT     bindingType;
17805 } VkDeviceAddressBindingCallbackDataEXT;
17806 
17807 
17808 
17809 // VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
17810 #define VK_EXT_depth_clip_control 1
17811 #define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
17812 #define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
17813 typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
17814     VkStructureType    sType;
17815     void*              pNext;
17816     VkBool32           depthClipControl;
17817 } VkPhysicalDeviceDepthClipControlFeaturesEXT;
17818 
17819 typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
17820     VkStructureType    sType;
17821     const void*        pNext;
17822     VkBool32           negativeOneToOne;
17823 } VkPipelineViewportDepthClipControlCreateInfoEXT;
17824 
17825 
17826 
17827 // VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
17828 #define VK_EXT_primitive_topology_list_restart 1
17829 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
17830 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
17831 typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
17832     VkStructureType    sType;
17833     void*              pNext;
17834     VkBool32           primitiveTopologyListRestart;
17835     VkBool32           primitiveTopologyPatchListRestart;
17836 } VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
17837 
17838 
17839 
17840 // VK_EXT_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
17841 #define VK_EXT_present_mode_fifo_latest_ready 1
17842 #define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
17843 #define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_EXT_present_mode_fifo_latest_ready"
17844 typedef struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT {
17845     VkStructureType    sType;
17846     void*              pNext;
17847     VkBool32           presentModeFifoLatestReady;
17848 } VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT;
17849 
17850 
17851 
17852 // VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
17853 #define VK_HUAWEI_subpass_shading 1
17854 #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
17855 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
17856 typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
17857     VkStructureType    sType;
17858     void*              pNext;
17859     VkRenderPass       renderPass;
17860     uint32_t           subpass;
17861 } VkSubpassShadingPipelineCreateInfoHUAWEI;
17862 
17863 typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
17864     VkStructureType    sType;
17865     void*              pNext;
17866     VkBool32           subpassShading;
17867 } VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
17868 
17869 typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
17870     VkStructureType    sType;
17871     void*              pNext;
17872     uint32_t           maxSubpassShadingWorkgroupSizeAspectRatio;
17873 } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
17874 
17875 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
17876 typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
17877 
17878 #ifndef VK_NO_PROTOTYPES
17879 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
17880     VkDevice                                    device,
17881     VkRenderPass                                renderpass,
17882     VkExtent2D*                                 pMaxWorkgroupSize);
17883 
17884 VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
17885     VkCommandBuffer                             commandBuffer);
17886 #endif
17887 
17888 
17889 // VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
17890 #define VK_HUAWEI_invocation_mask 1
17891 #define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
17892 #define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
17893 typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
17894     VkStructureType    sType;
17895     void*              pNext;
17896     VkBool32           invocationMask;
17897 } VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
17898 
17899 typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
17900 
17901 #ifndef VK_NO_PROTOTYPES
17902 VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
17903     VkCommandBuffer                             commandBuffer,
17904     VkImageView                                 imageView,
17905     VkImageLayout                               imageLayout);
17906 #endif
17907 
17908 
17909 // VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
17910 #define VK_NV_external_memory_rdma 1
17911 typedef void* VkRemoteAddressNV;
17912 #define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
17913 #define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
17914 typedef struct VkMemoryGetRemoteAddressInfoNV {
17915     VkStructureType                       sType;
17916     const void*                           pNext;
17917     VkDeviceMemory                        memory;
17918     VkExternalMemoryHandleTypeFlagBits    handleType;
17919 } VkMemoryGetRemoteAddressInfoNV;
17920 
17921 typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
17922     VkStructureType    sType;
17923     void*              pNext;
17924     VkBool32           externalMemoryRDMA;
17925 } VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
17926 
17927 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
17928 
17929 #ifndef VK_NO_PROTOTYPES
17930 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
17931     VkDevice                                    device,
17932     const VkMemoryGetRemoteAddressInfoNV*       pMemoryGetRemoteAddressInfo,
17933     VkRemoteAddressNV*                          pAddress);
17934 #endif
17935 
17936 
17937 // VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
17938 #define VK_EXT_pipeline_properties 1
17939 #define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
17940 #define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
17941 typedef VkPipelineInfoKHR VkPipelineInfoEXT;
17942 
17943 typedef struct VkPipelinePropertiesIdentifierEXT {
17944     VkStructureType    sType;
17945     void*              pNext;
17946     uint8_t            pipelineIdentifier[VK_UUID_SIZE];
17947 } VkPipelinePropertiesIdentifierEXT;
17948 
17949 typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
17950     VkStructureType    sType;
17951     void*              pNext;
17952     VkBool32           pipelinePropertiesIdentifier;
17953 } VkPhysicalDevicePipelinePropertiesFeaturesEXT;
17954 
17955 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
17956 
17957 #ifndef VK_NO_PROTOTYPES
17958 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
17959     VkDevice                                    device,
17960     const VkPipelineInfoEXT*                    pPipelineInfo,
17961     VkBaseOutStructure*                         pPipelineProperties);
17962 #endif
17963 
17964 
17965 // VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
17966 #define VK_EXT_frame_boundary 1
17967 #define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
17968 #define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
17969 
17970 typedef enum VkFrameBoundaryFlagBitsEXT {
17971     VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
17972     VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17973 } VkFrameBoundaryFlagBitsEXT;
17974 typedef VkFlags VkFrameBoundaryFlagsEXT;
17975 typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
17976     VkStructureType    sType;
17977     void*              pNext;
17978     VkBool32           frameBoundary;
17979 } VkPhysicalDeviceFrameBoundaryFeaturesEXT;
17980 
17981 typedef struct VkFrameBoundaryEXT {
17982     VkStructureType            sType;
17983     const void*                pNext;
17984     VkFrameBoundaryFlagsEXT    flags;
17985     uint64_t                   frameID;
17986     uint32_t                   imageCount;
17987     const VkImage*             pImages;
17988     uint32_t                   bufferCount;
17989     const VkBuffer*            pBuffers;
17990     uint64_t                   tagName;
17991     size_t                     tagSize;
17992     const void*                pTag;
17993 } VkFrameBoundaryEXT;
17994 
17995 
17996 
17997 // VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
17998 #define VK_EXT_multisampled_render_to_single_sampled 1
17999 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
18000 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
18001 typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
18002     VkStructureType    sType;
18003     void*              pNext;
18004     VkBool32           multisampledRenderToSingleSampled;
18005 } VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
18006 
18007 typedef struct VkSubpassResolvePerformanceQueryEXT {
18008     VkStructureType    sType;
18009     void*              pNext;
18010     VkBool32           optimal;
18011 } VkSubpassResolvePerformanceQueryEXT;
18012 
18013 typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
18014     VkStructureType          sType;
18015     const void*              pNext;
18016     VkBool32                 multisampledRenderToSingleSampledEnable;
18017     VkSampleCountFlagBits    rasterizationSamples;
18018 } VkMultisampledRenderToSingleSampledInfoEXT;
18019 
18020 
18021 
18022 // VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
18023 #define VK_EXT_extended_dynamic_state2 1
18024 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
18025 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
18026 typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
18027     VkStructureType    sType;
18028     void*              pNext;
18029     VkBool32           extendedDynamicState2;
18030     VkBool32           extendedDynamicState2LogicOp;
18031     VkBool32           extendedDynamicState2PatchControlPoints;
18032 } VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
18033 
18034 typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
18035 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
18036 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
18037 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
18038 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
18039 
18040 #ifndef VK_NO_PROTOTYPES
18041 VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
18042     VkCommandBuffer                             commandBuffer,
18043     uint32_t                                    patchControlPoints);
18044 
18045 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
18046     VkCommandBuffer                             commandBuffer,
18047     VkBool32                                    rasterizerDiscardEnable);
18048 
18049 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
18050     VkCommandBuffer                             commandBuffer,
18051     VkBool32                                    depthBiasEnable);
18052 
18053 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
18054     VkCommandBuffer                             commandBuffer,
18055     VkLogicOp                                   logicOp);
18056 
18057 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
18058     VkCommandBuffer                             commandBuffer,
18059     VkBool32                                    primitiveRestartEnable);
18060 #endif
18061 
18062 
18063 // VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
18064 #define VK_EXT_color_write_enable 1
18065 #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
18066 #define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
18067 typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
18068     VkStructureType    sType;
18069     void*              pNext;
18070     VkBool32           colorWriteEnable;
18071 } VkPhysicalDeviceColorWriteEnableFeaturesEXT;
18072 
18073 typedef struct VkPipelineColorWriteCreateInfoEXT {
18074     VkStructureType    sType;
18075     const void*        pNext;
18076     uint32_t           attachmentCount;
18077     const VkBool32*    pColorWriteEnables;
18078 } VkPipelineColorWriteCreateInfoEXT;
18079 
18080 typedef void                                    (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer       commandBuffer, uint32_t                                attachmentCount, const VkBool32*   pColorWriteEnables);
18081 
18082 #ifndef VK_NO_PROTOTYPES
18083 VKAPI_ATTR void                                    VKAPI_CALL vkCmdSetColorWriteEnableEXT(
18084     VkCommandBuffer                             commandBuffer,
18085     uint32_t                                    attachmentCount,
18086     const VkBool32*                             pColorWriteEnables);
18087 #endif
18088 
18089 
18090 // VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
18091 #define VK_EXT_primitives_generated_query 1
18092 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
18093 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
18094 typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
18095     VkStructureType    sType;
18096     void*              pNext;
18097     VkBool32           primitivesGeneratedQuery;
18098     VkBool32           primitivesGeneratedQueryWithRasterizerDiscard;
18099     VkBool32           primitivesGeneratedQueryWithNonZeroStreams;
18100 } VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
18101 
18102 
18103 
18104 // VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
18105 #define VK_EXT_global_priority_query 1
18106 #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
18107 #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
18108 #define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT   VK_MAX_GLOBAL_PRIORITY_SIZE
18109 typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
18110 
18111 typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesEXT;
18112 
18113 
18114 
18115 // VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
18116 #define VK_EXT_image_view_min_lod 1
18117 #define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
18118 #define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
18119 typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
18120     VkStructureType    sType;
18121     void*              pNext;
18122     VkBool32           minLod;
18123 } VkPhysicalDeviceImageViewMinLodFeaturesEXT;
18124 
18125 typedef struct VkImageViewMinLodCreateInfoEXT {
18126     VkStructureType    sType;
18127     const void*        pNext;
18128     float              minLod;
18129 } VkImageViewMinLodCreateInfoEXT;
18130 
18131 
18132 
18133 // VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
18134 #define VK_EXT_multi_draw 1
18135 #define VK_EXT_MULTI_DRAW_SPEC_VERSION    1
18136 #define VK_EXT_MULTI_DRAW_EXTENSION_NAME  "VK_EXT_multi_draw"
18137 typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
18138     VkStructureType    sType;
18139     void*              pNext;
18140     VkBool32           multiDraw;
18141 } VkPhysicalDeviceMultiDrawFeaturesEXT;
18142 
18143 typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
18144     VkStructureType    sType;
18145     void*              pNext;
18146     uint32_t           maxMultiDrawCount;
18147 } VkPhysicalDeviceMultiDrawPropertiesEXT;
18148 
18149 typedef struct VkMultiDrawInfoEXT {
18150     uint32_t    firstVertex;
18151     uint32_t    vertexCount;
18152 } VkMultiDrawInfoEXT;
18153 
18154 typedef struct VkMultiDrawIndexedInfoEXT {
18155     uint32_t    firstIndex;
18156     uint32_t    indexCount;
18157     int32_t     vertexOffset;
18158 } VkMultiDrawIndexedInfoEXT;
18159 
18160 typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
18161 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);
18162 
18163 #ifndef VK_NO_PROTOTYPES
18164 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
18165     VkCommandBuffer                             commandBuffer,
18166     uint32_t                                    drawCount,
18167     const VkMultiDrawInfoEXT*                   pVertexInfo,
18168     uint32_t                                    instanceCount,
18169     uint32_t                                    firstInstance,
18170     uint32_t                                    stride);
18171 
18172 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
18173     VkCommandBuffer                             commandBuffer,
18174     uint32_t                                    drawCount,
18175     const VkMultiDrawIndexedInfoEXT*            pIndexInfo,
18176     uint32_t                                    instanceCount,
18177     uint32_t                                    firstInstance,
18178     uint32_t                                    stride,
18179     const int32_t*                              pVertexOffset);
18180 #endif
18181 
18182 
18183 // VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
18184 #define VK_EXT_image_2d_view_of_3d 1
18185 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
18186 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
18187 typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
18188     VkStructureType    sType;
18189     void*              pNext;
18190     VkBool32           image2DViewOf3D;
18191     VkBool32           sampler2DViewOf3D;
18192 } VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
18193 
18194 
18195 
18196 // VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
18197 #define VK_EXT_shader_tile_image 1
18198 #define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
18199 #define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
18200 typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
18201     VkStructureType    sType;
18202     void*              pNext;
18203     VkBool32           shaderTileImageColorReadAccess;
18204     VkBool32           shaderTileImageDepthReadAccess;
18205     VkBool32           shaderTileImageStencilReadAccess;
18206 } VkPhysicalDeviceShaderTileImageFeaturesEXT;
18207 
18208 typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
18209     VkStructureType    sType;
18210     void*              pNext;
18211     VkBool32           shaderTileImageCoherentReadAccelerated;
18212     VkBool32           shaderTileImageReadSampleFromPixelRateInvocation;
18213     VkBool32           shaderTileImageReadFromHelperInvocation;
18214 } VkPhysicalDeviceShaderTileImagePropertiesEXT;
18215 
18216 
18217 
18218 // VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
18219 #define VK_EXT_opacity_micromap 1
18220 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
18221 #define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
18222 #define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
18223 
18224 typedef enum VkMicromapTypeEXT {
18225     VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
18226 #ifdef VK_ENABLE_BETA_EXTENSIONS
18227     VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
18228 #endif
18229     VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
18230 } VkMicromapTypeEXT;
18231 
18232 typedef enum VkBuildMicromapModeEXT {
18233     VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
18234     VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
18235 } VkBuildMicromapModeEXT;
18236 
18237 typedef enum VkCopyMicromapModeEXT {
18238     VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
18239     VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
18240     VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
18241     VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
18242     VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
18243 } VkCopyMicromapModeEXT;
18244 
18245 typedef enum VkOpacityMicromapFormatEXT {
18246     VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
18247     VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
18248     VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
18249 } VkOpacityMicromapFormatEXT;
18250 
18251 typedef enum VkOpacityMicromapSpecialIndexEXT {
18252     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
18253     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
18254     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
18255     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
18256     VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
18257 } VkOpacityMicromapSpecialIndexEXT;
18258 
18259 typedef enum VkAccelerationStructureCompatibilityKHR {
18260     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
18261     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
18262     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
18263 } VkAccelerationStructureCompatibilityKHR;
18264 
18265 typedef enum VkAccelerationStructureBuildTypeKHR {
18266     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
18267     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
18268     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
18269     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
18270 } VkAccelerationStructureBuildTypeKHR;
18271 
18272 typedef enum VkBuildMicromapFlagBitsEXT {
18273     VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
18274     VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
18275     VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
18276     VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18277 } VkBuildMicromapFlagBitsEXT;
18278 typedef VkFlags VkBuildMicromapFlagsEXT;
18279 
18280 typedef enum VkMicromapCreateFlagBitsEXT {
18281     VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
18282     VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18283 } VkMicromapCreateFlagBitsEXT;
18284 typedef VkFlags VkMicromapCreateFlagsEXT;
18285 typedef struct VkMicromapUsageEXT {
18286     uint32_t    count;
18287     uint32_t    subdivisionLevel;
18288     uint32_t    format;
18289 } VkMicromapUsageEXT;
18290 
18291 typedef union VkDeviceOrHostAddressKHR {
18292     VkDeviceAddress    deviceAddress;
18293     void*              hostAddress;
18294 } VkDeviceOrHostAddressKHR;
18295 
18296 typedef struct VkMicromapBuildInfoEXT {
18297     VkStructureType                     sType;
18298     const void*                         pNext;
18299     VkMicromapTypeEXT                   type;
18300     VkBuildMicromapFlagsEXT             flags;
18301     VkBuildMicromapModeEXT              mode;
18302     VkMicromapEXT                       dstMicromap;
18303     uint32_t                            usageCountsCount;
18304     const VkMicromapUsageEXT*           pUsageCounts;
18305     const VkMicromapUsageEXT* const*    ppUsageCounts;
18306     VkDeviceOrHostAddressConstKHR       data;
18307     VkDeviceOrHostAddressKHR            scratchData;
18308     VkDeviceOrHostAddressConstKHR       triangleArray;
18309     VkDeviceSize                        triangleArrayStride;
18310 } VkMicromapBuildInfoEXT;
18311 
18312 typedef struct VkMicromapCreateInfoEXT {
18313     VkStructureType             sType;
18314     const void*                 pNext;
18315     VkMicromapCreateFlagsEXT    createFlags;
18316     VkBuffer                    buffer;
18317     VkDeviceSize                offset;
18318     VkDeviceSize                size;
18319     VkMicromapTypeEXT           type;
18320     VkDeviceAddress             deviceAddress;
18321 } VkMicromapCreateInfoEXT;
18322 
18323 typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
18324     VkStructureType    sType;
18325     void*              pNext;
18326     VkBool32           micromap;
18327     VkBool32           micromapCaptureReplay;
18328     VkBool32           micromapHostCommands;
18329 } VkPhysicalDeviceOpacityMicromapFeaturesEXT;
18330 
18331 typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
18332     VkStructureType    sType;
18333     void*              pNext;
18334     uint32_t           maxOpacity2StateSubdivisionLevel;
18335     uint32_t           maxOpacity4StateSubdivisionLevel;
18336 } VkPhysicalDeviceOpacityMicromapPropertiesEXT;
18337 
18338 typedef struct VkMicromapVersionInfoEXT {
18339     VkStructureType    sType;
18340     const void*        pNext;
18341     const uint8_t*     pVersionData;
18342 } VkMicromapVersionInfoEXT;
18343 
18344 typedef struct VkCopyMicromapToMemoryInfoEXT {
18345     VkStructureType             sType;
18346     const void*                 pNext;
18347     VkMicromapEXT               src;
18348     VkDeviceOrHostAddressKHR    dst;
18349     VkCopyMicromapModeEXT       mode;
18350 } VkCopyMicromapToMemoryInfoEXT;
18351 
18352 typedef struct VkCopyMemoryToMicromapInfoEXT {
18353     VkStructureType                  sType;
18354     const void*                      pNext;
18355     VkDeviceOrHostAddressConstKHR    src;
18356     VkMicromapEXT                    dst;
18357     VkCopyMicromapModeEXT            mode;
18358 } VkCopyMemoryToMicromapInfoEXT;
18359 
18360 typedef struct VkCopyMicromapInfoEXT {
18361     VkStructureType          sType;
18362     const void*              pNext;
18363     VkMicromapEXT            src;
18364     VkMicromapEXT            dst;
18365     VkCopyMicromapModeEXT    mode;
18366 } VkCopyMicromapInfoEXT;
18367 
18368 typedef struct VkMicromapBuildSizesInfoEXT {
18369     VkStructureType    sType;
18370     const void*        pNext;
18371     VkDeviceSize       micromapSize;
18372     VkDeviceSize       buildScratchSize;
18373     VkBool32           discardable;
18374 } VkMicromapBuildSizesInfoEXT;
18375 
18376 typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
18377     VkStructureType                     sType;
18378     void*                               pNext;
18379     VkIndexType                         indexType;
18380     VkDeviceOrHostAddressConstKHR       indexBuffer;
18381     VkDeviceSize                        indexStride;
18382     uint32_t                            baseTriangle;
18383     uint32_t                            usageCountsCount;
18384     const VkMicromapUsageEXT*           pUsageCounts;
18385     const VkMicromapUsageEXT* const*    ppUsageCounts;
18386     VkMicromapEXT                       micromap;
18387 } VkAccelerationStructureTrianglesOpacityMicromapEXT;
18388 
18389 typedef struct VkMicromapTriangleEXT {
18390     uint32_t    dataOffset;
18391     uint16_t    subdivisionLevel;
18392     uint16_t    format;
18393 } VkMicromapTriangleEXT;
18394 
18395 typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice                                           device, const VkMicromapCreateInfoEXT*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkMicromapEXT*                        pMicromap);
18396 typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
18397 typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
18398 typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
18399 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
18400 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
18401 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
18402 typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
18403 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
18404 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
18405 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
18406 typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
18407 typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
18408 typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkMicromapBuildInfoEXT*  pBuildInfo, VkMicromapBuildSizesInfoEXT*           pSizeInfo);
18409 
18410 #ifndef VK_NO_PROTOTYPES
18411 VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
18412     VkDevice                                    device,
18413     const VkMicromapCreateInfoEXT*              pCreateInfo,
18414     const VkAllocationCallbacks*                pAllocator,
18415     VkMicromapEXT*                              pMicromap);
18416 
18417 VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
18418     VkDevice                                    device,
18419     VkMicromapEXT                               micromap,
18420     const VkAllocationCallbacks*                pAllocator);
18421 
18422 VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
18423     VkCommandBuffer                             commandBuffer,
18424     uint32_t                                    infoCount,
18425     const VkMicromapBuildInfoEXT*               pInfos);
18426 
18427 VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
18428     VkDevice                                    device,
18429     VkDeferredOperationKHR                      deferredOperation,
18430     uint32_t                                    infoCount,
18431     const VkMicromapBuildInfoEXT*               pInfos);
18432 
18433 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
18434     VkDevice                                    device,
18435     VkDeferredOperationKHR                      deferredOperation,
18436     const VkCopyMicromapInfoEXT*                pInfo);
18437 
18438 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
18439     VkDevice                                    device,
18440     VkDeferredOperationKHR                      deferredOperation,
18441     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
18442 
18443 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
18444     VkDevice                                    device,
18445     VkDeferredOperationKHR                      deferredOperation,
18446     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
18447 
18448 VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
18449     VkDevice                                    device,
18450     uint32_t                                    micromapCount,
18451     const VkMicromapEXT*                        pMicromaps,
18452     VkQueryType                                 queryType,
18453     size_t                                      dataSize,
18454     void*                                       pData,
18455     size_t                                      stride);
18456 
18457 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
18458     VkCommandBuffer                             commandBuffer,
18459     const VkCopyMicromapInfoEXT*                pInfo);
18460 
18461 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
18462     VkCommandBuffer                             commandBuffer,
18463     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
18464 
18465 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
18466     VkCommandBuffer                             commandBuffer,
18467     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
18468 
18469 VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
18470     VkCommandBuffer                             commandBuffer,
18471     uint32_t                                    micromapCount,
18472     const VkMicromapEXT*                        pMicromaps,
18473     VkQueryType                                 queryType,
18474     VkQueryPool                                 queryPool,
18475     uint32_t                                    firstQuery);
18476 
18477 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
18478     VkDevice                                    device,
18479     const VkMicromapVersionInfoEXT*             pVersionInfo,
18480     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
18481 
18482 VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
18483     VkDevice                                    device,
18484     VkAccelerationStructureBuildTypeKHR         buildType,
18485     const VkMicromapBuildInfoEXT*               pBuildInfo,
18486     VkMicromapBuildSizesInfoEXT*                pSizeInfo);
18487 #endif
18488 
18489 
18490 // VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
18491 #define VK_EXT_load_store_op_none 1
18492 #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
18493 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
18494 
18495 
18496 // VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
18497 #define VK_HUAWEI_cluster_culling_shader 1
18498 #define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
18499 #define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
18500 typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
18501     VkStructureType    sType;
18502     void*              pNext;
18503     VkBool32           clustercullingShader;
18504     VkBool32           multiviewClusterCullingShader;
18505 } VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
18506 
18507 typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
18508     VkStructureType    sType;
18509     void*              pNext;
18510     uint32_t           maxWorkGroupCount[3];
18511     uint32_t           maxWorkGroupSize[3];
18512     uint32_t           maxOutputClusterCount;
18513     VkDeviceSize       indirectBufferOffsetAlignment;
18514 } VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
18515 
18516 typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
18517     VkStructureType    sType;
18518     void*              pNext;
18519     VkBool32           clusterShadingRate;
18520 } VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
18521 
18522 typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
18523 typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
18524 
18525 #ifndef VK_NO_PROTOTYPES
18526 VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
18527     VkCommandBuffer                             commandBuffer,
18528     uint32_t                                    groupCountX,
18529     uint32_t                                    groupCountY,
18530     uint32_t                                    groupCountZ);
18531 
18532 VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
18533     VkCommandBuffer                             commandBuffer,
18534     VkBuffer                                    buffer,
18535     VkDeviceSize                                offset);
18536 #endif
18537 
18538 
18539 // VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
18540 #define VK_EXT_border_color_swizzle 1
18541 #define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
18542 #define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
18543 typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
18544     VkStructureType    sType;
18545     void*              pNext;
18546     VkBool32           borderColorSwizzle;
18547     VkBool32           borderColorSwizzleFromImage;
18548 } VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
18549 
18550 typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
18551     VkStructureType       sType;
18552     const void*           pNext;
18553     VkComponentMapping    components;
18554     VkBool32              srgb;
18555 } VkSamplerBorderColorComponentMappingCreateInfoEXT;
18556 
18557 
18558 
18559 // VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
18560 #define VK_EXT_pageable_device_local_memory 1
18561 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
18562 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
18563 typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
18564     VkStructureType    sType;
18565     void*              pNext;
18566     VkBool32           pageableDeviceLocalMemory;
18567 } VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
18568 
18569 typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice       device, VkDeviceMemory memory, float          priority);
18570 
18571 #ifndef VK_NO_PROTOTYPES
18572 VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
18573     VkDevice                                    device,
18574     VkDeviceMemory                              memory,
18575     float                                       priority);
18576 #endif
18577 
18578 
18579 // VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
18580 #define VK_ARM_shader_core_properties 1
18581 #define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
18582 #define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
18583 typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
18584     VkStructureType    sType;
18585     void*              pNext;
18586     uint32_t           pixelRate;
18587     uint32_t           texelRate;
18588     uint32_t           fmaRate;
18589 } VkPhysicalDeviceShaderCorePropertiesARM;
18590 
18591 
18592 
18593 // VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
18594 #define VK_ARM_scheduling_controls 1
18595 #define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1
18596 #define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
18597 typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
18598 
18599 // Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
18600 typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
18601 static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
18602 
18603 typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
18604     VkStructureType    sType;
18605     void*              pNext;
18606     uint32_t           shaderCoreCount;
18607 } VkDeviceQueueShaderCoreControlCreateInfoARM;
18608 
18609 typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
18610     VkStructureType    sType;
18611     void*              pNext;
18612     VkBool32           schedulingControls;
18613 } VkPhysicalDeviceSchedulingControlsFeaturesARM;
18614 
18615 typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
18616     VkStructureType                               sType;
18617     void*                                         pNext;
18618     VkPhysicalDeviceSchedulingControlsFlagsARM    schedulingControlsFlags;
18619 } VkPhysicalDeviceSchedulingControlsPropertiesARM;
18620 
18621 
18622 
18623 // VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
18624 #define VK_EXT_image_sliced_view_of_3d 1
18625 #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
18626 #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
18627 #define VK_REMAINING_3D_SLICES_EXT        (~0U)
18628 typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
18629     VkStructureType    sType;
18630     void*              pNext;
18631     VkBool32           imageSlicedViewOf3D;
18632 } VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
18633 
18634 typedef struct VkImageViewSlicedCreateInfoEXT {
18635     VkStructureType    sType;
18636     const void*        pNext;
18637     uint32_t           sliceOffset;
18638     uint32_t           sliceCount;
18639 } VkImageViewSlicedCreateInfoEXT;
18640 
18641 
18642 
18643 // VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
18644 #define VK_VALVE_descriptor_set_host_mapping 1
18645 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
18646 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
18647 typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
18648     VkStructureType    sType;
18649     void*              pNext;
18650     VkBool32           descriptorSetHostMapping;
18651 } VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
18652 
18653 typedef struct VkDescriptorSetBindingReferenceVALVE {
18654     VkStructureType          sType;
18655     const void*              pNext;
18656     VkDescriptorSetLayout    descriptorSetLayout;
18657     uint32_t                 binding;
18658 } VkDescriptorSetBindingReferenceVALVE;
18659 
18660 typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
18661     VkStructureType    sType;
18662     void*              pNext;
18663     size_t             descriptorOffset;
18664     uint32_t           descriptorSize;
18665 } VkDescriptorSetLayoutHostMappingInfoVALVE;
18666 
18667 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
18668 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
18669 
18670 #ifndef VK_NO_PROTOTYPES
18671 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
18672     VkDevice                                    device,
18673     const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
18674     VkDescriptorSetLayoutHostMappingInfoVALVE*  pHostMapping);
18675 
18676 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
18677     VkDevice                                    device,
18678     VkDescriptorSet                             descriptorSet,
18679     void**                                      ppData);
18680 #endif
18681 
18682 
18683 // VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
18684 #define VK_EXT_depth_clamp_zero_one 1
18685 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
18686 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
18687 typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT {
18688     VkStructureType    sType;
18689     void*              pNext;
18690     VkBool32           depthClampZeroOne;
18691 } VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
18692 
18693 
18694 
18695 // VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
18696 #define VK_EXT_non_seamless_cube_map 1
18697 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
18698 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
18699 typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
18700     VkStructureType    sType;
18701     void*              pNext;
18702     VkBool32           nonSeamlessCubeMap;
18703 } VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
18704 
18705 
18706 
18707 // VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
18708 #define VK_ARM_render_pass_striped 1
18709 #define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
18710 #define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
18711 typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
18712     VkStructureType    sType;
18713     void*              pNext;
18714     VkBool32           renderPassStriped;
18715 } VkPhysicalDeviceRenderPassStripedFeaturesARM;
18716 
18717 typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
18718     VkStructureType    sType;
18719     void*              pNext;
18720     VkExtent2D         renderPassStripeGranularity;
18721     uint32_t           maxRenderPassStripes;
18722 } VkPhysicalDeviceRenderPassStripedPropertiesARM;
18723 
18724 typedef struct VkRenderPassStripeInfoARM {
18725     VkStructureType    sType;
18726     const void*        pNext;
18727     VkRect2D           stripeArea;
18728 } VkRenderPassStripeInfoARM;
18729 
18730 typedef struct VkRenderPassStripeBeginInfoARM {
18731     VkStructureType                     sType;
18732     const void*                         pNext;
18733     uint32_t                            stripeInfoCount;
18734     const VkRenderPassStripeInfoARM*    pStripeInfos;
18735 } VkRenderPassStripeBeginInfoARM;
18736 
18737 typedef struct VkRenderPassStripeSubmitInfoARM {
18738     VkStructureType                 sType;
18739     const void*                     pNext;
18740     uint32_t                        stripeSemaphoreInfoCount;
18741     const VkSemaphoreSubmitInfo*    pStripeSemaphoreInfos;
18742 } VkRenderPassStripeSubmitInfoARM;
18743 
18744 
18745 
18746 // VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
18747 #define VK_QCOM_fragment_density_map_offset 1
18748 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 2
18749 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
18750 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
18751     VkStructureType    sType;
18752     void*              pNext;
18753     VkBool32           fragmentDensityMapOffset;
18754 } VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
18755 
18756 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
18757     VkStructureType    sType;
18758     void*              pNext;
18759     VkExtent2D         fragmentDensityOffsetGranularity;
18760 } VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
18761 
18762 typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM {
18763     VkStructureType      sType;
18764     const void*          pNext;
18765     uint32_t             fragmentDensityOffsetCount;
18766     const VkOffset2D*    pFragmentDensityOffsets;
18767 } VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
18768 
18769 
18770 
18771 // VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
18772 #define VK_NV_copy_memory_indirect 1
18773 #define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
18774 #define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
18775 typedef struct VkCopyMemoryIndirectCommandNV {
18776     VkDeviceAddress    srcAddress;
18777     VkDeviceAddress    dstAddress;
18778     VkDeviceSize       size;
18779 } VkCopyMemoryIndirectCommandNV;
18780 
18781 typedef struct VkCopyMemoryToImageIndirectCommandNV {
18782     VkDeviceAddress             srcAddress;
18783     uint32_t                    bufferRowLength;
18784     uint32_t                    bufferImageHeight;
18785     VkImageSubresourceLayers    imageSubresource;
18786     VkOffset3D                  imageOffset;
18787     VkExtent3D                  imageExtent;
18788 } VkCopyMemoryToImageIndirectCommandNV;
18789 
18790 typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
18791     VkStructureType    sType;
18792     void*              pNext;
18793     VkBool32           indirectCopy;
18794 } VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
18795 
18796 typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV {
18797     VkStructureType    sType;
18798     void*              pNext;
18799     VkQueueFlags       supportedQueues;
18800 } VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
18801 
18802 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
18803 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
18804 
18805 #ifndef VK_NO_PROTOTYPES
18806 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
18807     VkCommandBuffer                             commandBuffer,
18808     VkDeviceAddress                             copyBufferAddress,
18809     uint32_t                                    copyCount,
18810     uint32_t                                    stride);
18811 
18812 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
18813     VkCommandBuffer                             commandBuffer,
18814     VkDeviceAddress                             copyBufferAddress,
18815     uint32_t                                    copyCount,
18816     uint32_t                                    stride,
18817     VkImage                                     dstImage,
18818     VkImageLayout                               dstImageLayout,
18819     const VkImageSubresourceLayers*             pImageSubresources);
18820 #endif
18821 
18822 
18823 // VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
18824 #define VK_NV_memory_decompression 1
18825 #define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
18826 #define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
18827 
18828 // Flag bits for VkMemoryDecompressionMethodFlagBitsNV
18829 typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsNV;
18830 static const VkMemoryDecompressionMethodFlagBitsNV VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
18831 
18832 typedef VkFlags64 VkMemoryDecompressionMethodFlagsNV;
18833 typedef struct VkDecompressMemoryRegionNV {
18834     VkDeviceAddress                       srcAddress;
18835     VkDeviceAddress                       dstAddress;
18836     VkDeviceSize                          compressedSize;
18837     VkDeviceSize                          decompressedSize;
18838     VkMemoryDecompressionMethodFlagsNV    decompressionMethod;
18839 } VkDecompressMemoryRegionNV;
18840 
18841 typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV {
18842     VkStructureType    sType;
18843     void*              pNext;
18844     VkBool32           memoryDecompression;
18845 } VkPhysicalDeviceMemoryDecompressionFeaturesNV;
18846 
18847 typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV {
18848     VkStructureType                       sType;
18849     void*                                 pNext;
18850     VkMemoryDecompressionMethodFlagsNV    decompressionMethods;
18851     uint64_t                              maxDecompressionIndirectCount;
18852 } VkPhysicalDeviceMemoryDecompressionPropertiesNV;
18853 
18854 typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
18855 typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
18856 
18857 #ifndef VK_NO_PROTOTYPES
18858 VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
18859     VkCommandBuffer                             commandBuffer,
18860     uint32_t                                    decompressRegionCount,
18861     const VkDecompressMemoryRegionNV*           pDecompressMemoryRegions);
18862 
18863 VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
18864     VkCommandBuffer                             commandBuffer,
18865     VkDeviceAddress                             indirectCommandsAddress,
18866     VkDeviceAddress                             indirectCommandsCountAddress,
18867     uint32_t                                    stride);
18868 #endif
18869 
18870 
18871 // VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
18872 #define VK_NV_device_generated_commands_compute 1
18873 #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
18874 #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
18875 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
18876     VkStructureType    sType;
18877     void*              pNext;
18878     VkBool32           deviceGeneratedCompute;
18879     VkBool32           deviceGeneratedComputePipelines;
18880     VkBool32           deviceGeneratedComputeCaptureReplay;
18881 } VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
18882 
18883 typedef struct VkComputePipelineIndirectBufferInfoNV {
18884     VkStructureType    sType;
18885     const void*        pNext;
18886     VkDeviceAddress    deviceAddress;
18887     VkDeviceSize       size;
18888     VkDeviceAddress    pipelineDeviceAddressCaptureReplay;
18889 } VkComputePipelineIndirectBufferInfoNV;
18890 
18891 typedef struct VkPipelineIndirectDeviceAddressInfoNV {
18892     VkStructureType        sType;
18893     const void*            pNext;
18894     VkPipelineBindPoint    pipelineBindPoint;
18895     VkPipeline             pipeline;
18896 } VkPipelineIndirectDeviceAddressInfoNV;
18897 
18898 typedef struct VkBindPipelineIndirectCommandNV {
18899     VkDeviceAddress    pipelineAddress;
18900 } VkBindPipelineIndirectCommandNV;
18901 
18902 typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
18903 typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint           pipelineBindPoint, VkPipeline                    pipeline);
18904 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
18905 
18906 #ifndef VK_NO_PROTOTYPES
18907 VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
18908     VkDevice                                    device,
18909     const VkComputePipelineCreateInfo*          pCreateInfo,
18910     VkMemoryRequirements2*                      pMemoryRequirements);
18911 
18912 VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
18913     VkCommandBuffer                             commandBuffer,
18914     VkPipelineBindPoint                         pipelineBindPoint,
18915     VkPipeline                                  pipeline);
18916 
18917 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
18918     VkDevice                                    device,
18919     const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
18920 #endif
18921 
18922 
18923 // VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
18924 #define VK_NV_linear_color_attachment 1
18925 #define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
18926 #define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
18927 typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
18928     VkStructureType    sType;
18929     void*              pNext;
18930     VkBool32           linearColorAttachment;
18931 } VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
18932 
18933 
18934 
18935 // VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
18936 #define VK_GOOGLE_surfaceless_query 1
18937 #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
18938 #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
18939 
18940 
18941 // VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
18942 #define VK_EXT_image_compression_control_swapchain 1
18943 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
18944 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
18945 typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
18946     VkStructureType    sType;
18947     void*              pNext;
18948     VkBool32           imageCompressionControlSwapchain;
18949 } VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
18950 
18951 
18952 
18953 // VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
18954 #define VK_QCOM_image_processing 1
18955 #define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
18956 #define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
18957 typedef struct VkImageViewSampleWeightCreateInfoQCOM {
18958     VkStructureType    sType;
18959     const void*        pNext;
18960     VkOffset2D         filterCenter;
18961     VkExtent2D         filterSize;
18962     uint32_t           numPhases;
18963 } VkImageViewSampleWeightCreateInfoQCOM;
18964 
18965 typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
18966     VkStructureType    sType;
18967     void*              pNext;
18968     VkBool32           textureSampleWeighted;
18969     VkBool32           textureBoxFilter;
18970     VkBool32           textureBlockMatch;
18971 } VkPhysicalDeviceImageProcessingFeaturesQCOM;
18972 
18973 typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
18974     VkStructureType    sType;
18975     void*              pNext;
18976     uint32_t           maxWeightFilterPhases;
18977     VkExtent2D         maxWeightFilterDimension;
18978     VkExtent2D         maxBlockMatchRegion;
18979     VkExtent2D         maxBoxFilterBlockSize;
18980 } VkPhysicalDeviceImageProcessingPropertiesQCOM;
18981 
18982 
18983 
18984 // VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
18985 #define VK_EXT_nested_command_buffer 1
18986 #define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
18987 #define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
18988 typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
18989     VkStructureType    sType;
18990     void*              pNext;
18991     VkBool32           nestedCommandBuffer;
18992     VkBool32           nestedCommandBufferRendering;
18993     VkBool32           nestedCommandBufferSimultaneousUse;
18994 } VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
18995 
18996 typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
18997     VkStructureType    sType;
18998     void*              pNext;
18999     uint32_t           maxCommandBufferNestingLevel;
19000 } VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
19001 
19002 
19003 
19004 // VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
19005 #define VK_EXT_external_memory_acquire_unmodified 1
19006 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
19007 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
19008 typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
19009     VkStructureType    sType;
19010     const void*        pNext;
19011     VkBool32           acquireUnmodifiedMemory;
19012 } VkExternalMemoryAcquireUnmodifiedEXT;
19013 
19014 
19015 
19016 // VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
19017 #define VK_EXT_extended_dynamic_state3 1
19018 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
19019 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
19020 typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
19021     VkStructureType    sType;
19022     void*              pNext;
19023     VkBool32           extendedDynamicState3TessellationDomainOrigin;
19024     VkBool32           extendedDynamicState3DepthClampEnable;
19025     VkBool32           extendedDynamicState3PolygonMode;
19026     VkBool32           extendedDynamicState3RasterizationSamples;
19027     VkBool32           extendedDynamicState3SampleMask;
19028     VkBool32           extendedDynamicState3AlphaToCoverageEnable;
19029     VkBool32           extendedDynamicState3AlphaToOneEnable;
19030     VkBool32           extendedDynamicState3LogicOpEnable;
19031     VkBool32           extendedDynamicState3ColorBlendEnable;
19032     VkBool32           extendedDynamicState3ColorBlendEquation;
19033     VkBool32           extendedDynamicState3ColorWriteMask;
19034     VkBool32           extendedDynamicState3RasterizationStream;
19035     VkBool32           extendedDynamicState3ConservativeRasterizationMode;
19036     VkBool32           extendedDynamicState3ExtraPrimitiveOverestimationSize;
19037     VkBool32           extendedDynamicState3DepthClipEnable;
19038     VkBool32           extendedDynamicState3SampleLocationsEnable;
19039     VkBool32           extendedDynamicState3ColorBlendAdvanced;
19040     VkBool32           extendedDynamicState3ProvokingVertexMode;
19041     VkBool32           extendedDynamicState3LineRasterizationMode;
19042     VkBool32           extendedDynamicState3LineStippleEnable;
19043     VkBool32           extendedDynamicState3DepthClipNegativeOneToOne;
19044     VkBool32           extendedDynamicState3ViewportWScalingEnable;
19045     VkBool32           extendedDynamicState3ViewportSwizzle;
19046     VkBool32           extendedDynamicState3CoverageToColorEnable;
19047     VkBool32           extendedDynamicState3CoverageToColorLocation;
19048     VkBool32           extendedDynamicState3CoverageModulationMode;
19049     VkBool32           extendedDynamicState3CoverageModulationTableEnable;
19050     VkBool32           extendedDynamicState3CoverageModulationTable;
19051     VkBool32           extendedDynamicState3CoverageReductionMode;
19052     VkBool32           extendedDynamicState3RepresentativeFragmentTestEnable;
19053     VkBool32           extendedDynamicState3ShadingRateImageEnable;
19054 } VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
19055 
19056 typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
19057     VkStructureType    sType;
19058     void*              pNext;
19059     VkBool32           dynamicPrimitiveTopologyUnrestricted;
19060 } VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
19061 
19062 typedef struct VkColorBlendEquationEXT {
19063     VkBlendFactor    srcColorBlendFactor;
19064     VkBlendFactor    dstColorBlendFactor;
19065     VkBlendOp        colorBlendOp;
19066     VkBlendFactor    srcAlphaBlendFactor;
19067     VkBlendFactor    dstAlphaBlendFactor;
19068     VkBlendOp        alphaBlendOp;
19069 } VkColorBlendEquationEXT;
19070 
19071 typedef struct VkColorBlendAdvancedEXT {
19072     VkBlendOp            advancedBlendOp;
19073     VkBool32             srcPremultiplied;
19074     VkBool32             dstPremultiplied;
19075     VkBlendOverlapEXT    blendOverlap;
19076     VkBool32             clampResults;
19077 } VkColorBlendAdvancedEXT;
19078 
19079 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
19080 typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
19081 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  rasterizationSamples);
19082 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  samples, const VkSampleMask*    pSampleMask);
19083 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
19084 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
19085 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
19086 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
19087 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
19088 typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
19089 typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
19090 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
19091 typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
19092 typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
19093 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
19094 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
19095 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
19096 typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
19097 typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
19098 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
19099 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
19100 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
19101 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
19102 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
19103 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
19104 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
19105 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
19106 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
19107 typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
19108 typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
19109 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
19110 
19111 #ifndef VK_NO_PROTOTYPES
19112 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
19113     VkCommandBuffer                             commandBuffer,
19114     VkBool32                                    depthClampEnable);
19115 
19116 VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
19117     VkCommandBuffer                             commandBuffer,
19118     VkPolygonMode                               polygonMode);
19119 
19120 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
19121     VkCommandBuffer                             commandBuffer,
19122     VkSampleCountFlagBits                       rasterizationSamples);
19123 
19124 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
19125     VkCommandBuffer                             commandBuffer,
19126     VkSampleCountFlagBits                       samples,
19127     const VkSampleMask*                         pSampleMask);
19128 
19129 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
19130     VkCommandBuffer                             commandBuffer,
19131     VkBool32                                    alphaToCoverageEnable);
19132 
19133 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
19134     VkCommandBuffer                             commandBuffer,
19135     VkBool32                                    alphaToOneEnable);
19136 
19137 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
19138     VkCommandBuffer                             commandBuffer,
19139     VkBool32                                    logicOpEnable);
19140 
19141 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
19142     VkCommandBuffer                             commandBuffer,
19143     uint32_t                                    firstAttachment,
19144     uint32_t                                    attachmentCount,
19145     const VkBool32*                             pColorBlendEnables);
19146 
19147 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
19148     VkCommandBuffer                             commandBuffer,
19149     uint32_t                                    firstAttachment,
19150     uint32_t                                    attachmentCount,
19151     const VkColorBlendEquationEXT*              pColorBlendEquations);
19152 
19153 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
19154     VkCommandBuffer                             commandBuffer,
19155     uint32_t                                    firstAttachment,
19156     uint32_t                                    attachmentCount,
19157     const VkColorComponentFlags*                pColorWriteMasks);
19158 
19159 VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
19160     VkCommandBuffer                             commandBuffer,
19161     VkTessellationDomainOrigin                  domainOrigin);
19162 
19163 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
19164     VkCommandBuffer                             commandBuffer,
19165     uint32_t                                    rasterizationStream);
19166 
19167 VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
19168     VkCommandBuffer                             commandBuffer,
19169     VkConservativeRasterizationModeEXT          conservativeRasterizationMode);
19170 
19171 VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
19172     VkCommandBuffer                             commandBuffer,
19173     float                                       extraPrimitiveOverestimationSize);
19174 
19175 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
19176     VkCommandBuffer                             commandBuffer,
19177     VkBool32                                    depthClipEnable);
19178 
19179 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
19180     VkCommandBuffer                             commandBuffer,
19181     VkBool32                                    sampleLocationsEnable);
19182 
19183 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
19184     VkCommandBuffer                             commandBuffer,
19185     uint32_t                                    firstAttachment,
19186     uint32_t                                    attachmentCount,
19187     const VkColorBlendAdvancedEXT*              pColorBlendAdvanced);
19188 
19189 VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
19190     VkCommandBuffer                             commandBuffer,
19191     VkProvokingVertexModeEXT                    provokingVertexMode);
19192 
19193 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
19194     VkCommandBuffer                             commandBuffer,
19195     VkLineRasterizationModeEXT                  lineRasterizationMode);
19196 
19197 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
19198     VkCommandBuffer                             commandBuffer,
19199     VkBool32                                    stippledLineEnable);
19200 
19201 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
19202     VkCommandBuffer                             commandBuffer,
19203     VkBool32                                    negativeOneToOne);
19204 
19205 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
19206     VkCommandBuffer                             commandBuffer,
19207     VkBool32                                    viewportWScalingEnable);
19208 
19209 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
19210     VkCommandBuffer                             commandBuffer,
19211     uint32_t                                    firstViewport,
19212     uint32_t                                    viewportCount,
19213     const VkViewportSwizzleNV*                  pViewportSwizzles);
19214 
19215 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
19216     VkCommandBuffer                             commandBuffer,
19217     VkBool32                                    coverageToColorEnable);
19218 
19219 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
19220     VkCommandBuffer                             commandBuffer,
19221     uint32_t                                    coverageToColorLocation);
19222 
19223 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
19224     VkCommandBuffer                             commandBuffer,
19225     VkCoverageModulationModeNV                  coverageModulationMode);
19226 
19227 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
19228     VkCommandBuffer                             commandBuffer,
19229     VkBool32                                    coverageModulationTableEnable);
19230 
19231 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
19232     VkCommandBuffer                             commandBuffer,
19233     uint32_t                                    coverageModulationTableCount,
19234     const float*                                pCoverageModulationTable);
19235 
19236 VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
19237     VkCommandBuffer                             commandBuffer,
19238     VkBool32                                    shadingRateImageEnable);
19239 
19240 VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
19241     VkCommandBuffer                             commandBuffer,
19242     VkBool32                                    representativeFragmentTestEnable);
19243 
19244 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
19245     VkCommandBuffer                             commandBuffer,
19246     VkCoverageReductionModeNV                   coverageReductionMode);
19247 #endif
19248 
19249 
19250 // VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
19251 #define VK_EXT_subpass_merge_feedback 1
19252 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
19253 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
19254 
19255 typedef enum VkSubpassMergeStatusEXT {
19256     VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
19257     VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
19258     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
19259     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
19260     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
19261     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
19262     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
19263     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
19264     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
19265     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
19266     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
19267     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
19268     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
19269     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
19270     VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
19271 } VkSubpassMergeStatusEXT;
19272 typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
19273     VkStructureType    sType;
19274     void*              pNext;
19275     VkBool32           subpassMergeFeedback;
19276 } VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
19277 
19278 typedef struct VkRenderPassCreationControlEXT {
19279     VkStructureType    sType;
19280     const void*        pNext;
19281     VkBool32           disallowMerging;
19282 } VkRenderPassCreationControlEXT;
19283 
19284 typedef struct VkRenderPassCreationFeedbackInfoEXT {
19285     uint32_t    postMergeSubpassCount;
19286 } VkRenderPassCreationFeedbackInfoEXT;
19287 
19288 typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
19289     VkStructureType                         sType;
19290     const void*                             pNext;
19291     VkRenderPassCreationFeedbackInfoEXT*    pRenderPassFeedback;
19292 } VkRenderPassCreationFeedbackCreateInfoEXT;
19293 
19294 typedef struct VkRenderPassSubpassFeedbackInfoEXT {
19295     VkSubpassMergeStatusEXT    subpassMergeStatus;
19296     char                       description[VK_MAX_DESCRIPTION_SIZE];
19297     uint32_t                   postMergeIndex;
19298 } VkRenderPassSubpassFeedbackInfoEXT;
19299 
19300 typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
19301     VkStructureType                        sType;
19302     const void*                            pNext;
19303     VkRenderPassSubpassFeedbackInfoEXT*    pSubpassFeedback;
19304 } VkRenderPassSubpassFeedbackCreateInfoEXT;
19305 
19306 
19307 
19308 // VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
19309 #define VK_LUNARG_direct_driver_loading 1
19310 #define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
19311 #define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
19312 
19313 typedef enum VkDirectDriverLoadingModeLUNARG {
19314     VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
19315     VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
19316     VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
19317 } VkDirectDriverLoadingModeLUNARG;
19318 typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
19319 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
19320     VkInstance instance, const char* pName);
19321 
19322 typedef struct VkDirectDriverLoadingInfoLUNARG {
19323     VkStructureType                     sType;
19324     void*                               pNext;
19325     VkDirectDriverLoadingFlagsLUNARG    flags;
19326     PFN_vkGetInstanceProcAddrLUNARG     pfnGetInstanceProcAddr;
19327 } VkDirectDriverLoadingInfoLUNARG;
19328 
19329 typedef struct VkDirectDriverLoadingListLUNARG {
19330     VkStructureType                           sType;
19331     const void*                               pNext;
19332     VkDirectDriverLoadingModeLUNARG           mode;
19333     uint32_t                                  driverCount;
19334     const VkDirectDriverLoadingInfoLUNARG*    pDrivers;
19335 } VkDirectDriverLoadingListLUNARG;
19336 
19337 
19338 
19339 // VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
19340 #define VK_EXT_shader_module_identifier 1
19341 #define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
19342 #define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
19343 #define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
19344 typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
19345     VkStructureType    sType;
19346     void*              pNext;
19347     VkBool32           shaderModuleIdentifier;
19348 } VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
19349 
19350 typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
19351     VkStructureType    sType;
19352     void*              pNext;
19353     uint8_t            shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
19354 } VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
19355 
19356 typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
19357     VkStructureType    sType;
19358     const void*        pNext;
19359     uint32_t           identifierSize;
19360     const uint8_t*     pIdentifier;
19361 } VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
19362 
19363 typedef struct VkShaderModuleIdentifierEXT {
19364     VkStructureType    sType;
19365     void*              pNext;
19366     uint32_t           identifierSize;
19367     uint8_t            identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
19368 } VkShaderModuleIdentifierEXT;
19369 
19370 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
19371 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
19372 
19373 #ifndef VK_NO_PROTOTYPES
19374 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
19375     VkDevice                                    device,
19376     VkShaderModule                              shaderModule,
19377     VkShaderModuleIdentifierEXT*                pIdentifier);
19378 
19379 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
19380     VkDevice                                    device,
19381     const VkShaderModuleCreateInfo*             pCreateInfo,
19382     VkShaderModuleIdentifierEXT*                pIdentifier);
19383 #endif
19384 
19385 
19386 // VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
19387 #define VK_EXT_rasterization_order_attachment_access 1
19388 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
19389 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
19390 
19391 
19392 // VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
19393 #define VK_NV_optical_flow 1
19394 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
19395 #define VK_NV_OPTICAL_FLOW_SPEC_VERSION   1
19396 #define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
19397 
19398 typedef enum VkOpticalFlowPerformanceLevelNV {
19399     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
19400     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
19401     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
19402     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
19403     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
19404 } VkOpticalFlowPerformanceLevelNV;
19405 
19406 typedef enum VkOpticalFlowSessionBindingPointNV {
19407     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
19408     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
19409     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
19410     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
19411     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
19412     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
19413     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
19414     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
19415     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
19416     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
19417 } VkOpticalFlowSessionBindingPointNV;
19418 
19419 typedef enum VkOpticalFlowGridSizeFlagBitsNV {
19420     VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
19421     VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
19422     VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
19423     VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
19424     VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
19425     VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19426 } VkOpticalFlowGridSizeFlagBitsNV;
19427 typedef VkFlags   VkOpticalFlowGridSizeFlagsNV;
19428 
19429 typedef enum VkOpticalFlowUsageFlagBitsNV {
19430     VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
19431     VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
19432     VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
19433     VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
19434     VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
19435     VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
19436     VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19437 } VkOpticalFlowUsageFlagBitsNV;
19438 typedef VkFlags   VkOpticalFlowUsageFlagsNV;
19439 
19440 typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
19441     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
19442     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
19443     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
19444     VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
19445     VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
19446     VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19447 } VkOpticalFlowSessionCreateFlagBitsNV;
19448 typedef VkFlags   VkOpticalFlowSessionCreateFlagsNV;
19449 
19450 typedef enum VkOpticalFlowExecuteFlagBitsNV {
19451     VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
19452     VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19453 } VkOpticalFlowExecuteFlagBitsNV;
19454 typedef VkFlags   VkOpticalFlowExecuteFlagsNV;
19455 typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
19456     VkStructureType    sType;
19457     void*              pNext;
19458     VkBool32           opticalFlow;
19459 } VkPhysicalDeviceOpticalFlowFeaturesNV;
19460 
19461 typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
19462     VkStructureType                 sType;
19463     void*                           pNext;
19464     VkOpticalFlowGridSizeFlagsNV    supportedOutputGridSizes;
19465     VkOpticalFlowGridSizeFlagsNV    supportedHintGridSizes;
19466     VkBool32                        hintSupported;
19467     VkBool32                        costSupported;
19468     VkBool32                        bidirectionalFlowSupported;
19469     VkBool32                        globalFlowSupported;
19470     uint32_t                        minWidth;
19471     uint32_t                        minHeight;
19472     uint32_t                        maxWidth;
19473     uint32_t                        maxHeight;
19474     uint32_t                        maxNumRegionsOfInterest;
19475 } VkPhysicalDeviceOpticalFlowPropertiesNV;
19476 
19477 typedef struct VkOpticalFlowImageFormatInfoNV {
19478     VkStructureType              sType;
19479     const void*                  pNext;
19480     VkOpticalFlowUsageFlagsNV    usage;
19481 } VkOpticalFlowImageFormatInfoNV;
19482 
19483 typedef struct VkOpticalFlowImageFormatPropertiesNV {
19484     VkStructureType    sType;
19485     const void*        pNext;
19486     VkFormat           format;
19487 } VkOpticalFlowImageFormatPropertiesNV;
19488 
19489 typedef struct VkOpticalFlowSessionCreateInfoNV {
19490     VkStructureType                      sType;
19491     void*                                pNext;
19492     uint32_t                             width;
19493     uint32_t                             height;
19494     VkFormat                             imageFormat;
19495     VkFormat                             flowVectorFormat;
19496     VkFormat                             costFormat;
19497     VkOpticalFlowGridSizeFlagsNV         outputGridSize;
19498     VkOpticalFlowGridSizeFlagsNV         hintGridSize;
19499     VkOpticalFlowPerformanceLevelNV      performanceLevel;
19500     VkOpticalFlowSessionCreateFlagsNV    flags;
19501 } VkOpticalFlowSessionCreateInfoNV;
19502 
19503 typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
19504     VkStructureType    sType;
19505     void*              pNext;
19506     uint32_t           id;
19507     uint32_t           size;
19508     const void*        pPrivateData;
19509 } VkOpticalFlowSessionCreatePrivateDataInfoNV;
19510 
19511 typedef struct VkOpticalFlowExecuteInfoNV {
19512     VkStructureType                sType;
19513     void*                          pNext;
19514     VkOpticalFlowExecuteFlagsNV    flags;
19515     uint32_t                       regionCount;
19516     const VkRect2D*                pRegions;
19517 } VkOpticalFlowExecuteInfoNV;
19518 
19519 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
19520 typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
19521 typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
19522 typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
19523 typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
19524 
19525 #ifndef VK_NO_PROTOTYPES
19526 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
19527     VkPhysicalDevice                            physicalDevice,
19528     const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
19529     uint32_t*                                   pFormatCount,
19530     VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties);
19531 
19532 VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
19533     VkDevice                                    device,
19534     const VkOpticalFlowSessionCreateInfoNV*     pCreateInfo,
19535     const VkAllocationCallbacks*                pAllocator,
19536     VkOpticalFlowSessionNV*                     pSession);
19537 
19538 VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
19539     VkDevice                                    device,
19540     VkOpticalFlowSessionNV                      session,
19541     const VkAllocationCallbacks*                pAllocator);
19542 
19543 VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
19544     VkDevice                                    device,
19545     VkOpticalFlowSessionNV                      session,
19546     VkOpticalFlowSessionBindingPointNV          bindingPoint,
19547     VkImageView                                 view,
19548     VkImageLayout                               layout);
19549 
19550 VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
19551     VkCommandBuffer                             commandBuffer,
19552     VkOpticalFlowSessionNV                      session,
19553     const VkOpticalFlowExecuteInfoNV*           pExecuteInfo);
19554 #endif
19555 
19556 
19557 // VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
19558 #define VK_EXT_legacy_dithering 1
19559 #define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 2
19560 #define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
19561 typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
19562     VkStructureType    sType;
19563     void*              pNext;
19564     VkBool32           legacyDithering;
19565 } VkPhysicalDeviceLegacyDitheringFeaturesEXT;
19566 
19567 
19568 
19569 // VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
19570 #define VK_EXT_pipeline_protected_access 1
19571 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
19572 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
19573 typedef VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
19574 
19575 
19576 
19577 // VK_AMD_anti_lag is a preprocessor guard. Do not pass it to API calls.
19578 #define VK_AMD_anti_lag 1
19579 #define VK_AMD_ANTI_LAG_SPEC_VERSION      1
19580 #define VK_AMD_ANTI_LAG_EXTENSION_NAME    "VK_AMD_anti_lag"
19581 
19582 typedef enum VkAntiLagModeAMD {
19583     VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD = 0,
19584     VK_ANTI_LAG_MODE_ON_AMD = 1,
19585     VK_ANTI_LAG_MODE_OFF_AMD = 2,
19586     VK_ANTI_LAG_MODE_MAX_ENUM_AMD = 0x7FFFFFFF
19587 } VkAntiLagModeAMD;
19588 
19589 typedef enum VkAntiLagStageAMD {
19590     VK_ANTI_LAG_STAGE_INPUT_AMD = 0,
19591     VK_ANTI_LAG_STAGE_PRESENT_AMD = 1,
19592     VK_ANTI_LAG_STAGE_MAX_ENUM_AMD = 0x7FFFFFFF
19593 } VkAntiLagStageAMD;
19594 typedef struct VkPhysicalDeviceAntiLagFeaturesAMD {
19595     VkStructureType    sType;
19596     void*              pNext;
19597     VkBool32           antiLag;
19598 } VkPhysicalDeviceAntiLagFeaturesAMD;
19599 
19600 typedef struct VkAntiLagPresentationInfoAMD {
19601     VkStructureType      sType;
19602     void*                pNext;
19603     VkAntiLagStageAMD    stage;
19604     uint64_t             frameIndex;
19605 } VkAntiLagPresentationInfoAMD;
19606 
19607 typedef struct VkAntiLagDataAMD {
19608     VkStructureType                        sType;
19609     const void*                            pNext;
19610     VkAntiLagModeAMD                       mode;
19611     uint32_t                               maxFPS;
19612     const VkAntiLagPresentationInfoAMD*    pPresentationInfo;
19613 } VkAntiLagDataAMD;
19614 
19615 typedef void (VKAPI_PTR *PFN_vkAntiLagUpdateAMD)(VkDevice device, const VkAntiLagDataAMD* pData);
19616 
19617 #ifndef VK_NO_PROTOTYPES
19618 VKAPI_ATTR void VKAPI_CALL vkAntiLagUpdateAMD(
19619     VkDevice                                    device,
19620     const VkAntiLagDataAMD*                     pData);
19621 #endif
19622 
19623 
19624 // VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
19625 #define VK_EXT_shader_object 1
19626 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
19627 #define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
19628 #define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
19629 
19630 typedef enum VkShaderCodeTypeEXT {
19631     VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
19632     VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
19633     VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19634 } VkShaderCodeTypeEXT;
19635 
19636 typedef enum VkDepthClampModeEXT {
19637     VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT = 0,
19638     VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT = 1,
19639     VK_DEPTH_CLAMP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
19640 } VkDepthClampModeEXT;
19641 
19642 typedef enum VkShaderCreateFlagBitsEXT {
19643     VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
19644     VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
19645     VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
19646     VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
19647     VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
19648     VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
19649     VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
19650     VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT = 0x00000080,
19651     VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19652 } VkShaderCreateFlagBitsEXT;
19653 typedef VkFlags VkShaderCreateFlagsEXT;
19654 typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
19655     VkStructureType    sType;
19656     void*              pNext;
19657     VkBool32           shaderObject;
19658 } VkPhysicalDeviceShaderObjectFeaturesEXT;
19659 
19660 typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
19661     VkStructureType    sType;
19662     void*              pNext;
19663     uint8_t            shaderBinaryUUID[VK_UUID_SIZE];
19664     uint32_t           shaderBinaryVersion;
19665 } VkPhysicalDeviceShaderObjectPropertiesEXT;
19666 
19667 typedef struct VkShaderCreateInfoEXT {
19668     VkStructureType                 sType;
19669     const void*                     pNext;
19670     VkShaderCreateFlagsEXT          flags;
19671     VkShaderStageFlagBits           stage;
19672     VkShaderStageFlags              nextStage;
19673     VkShaderCodeTypeEXT             codeType;
19674     size_t                          codeSize;
19675     const void*                     pCode;
19676     const char*                     pName;
19677     uint32_t                        setLayoutCount;
19678     const VkDescriptorSetLayout*    pSetLayouts;
19679     uint32_t                        pushConstantRangeCount;
19680     const VkPushConstantRange*      pPushConstantRanges;
19681     const VkSpecializationInfo*     pSpecializationInfo;
19682 } VkShaderCreateInfoEXT;
19683 
19684 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
19685 
19686 typedef struct VkDepthClampRangeEXT {
19687     float    minDepthClamp;
19688     float    maxDepthClamp;
19689 } VkDepthClampRangeEXT;
19690 
19691 typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
19692 typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
19693 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
19694 typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
19695 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampRangeEXT)(VkCommandBuffer commandBuffer, VkDepthClampModeEXT depthClampMode, const VkDepthClampRangeEXT* pDepthClampRange);
19696 
19697 #ifndef VK_NO_PROTOTYPES
19698 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
19699     VkDevice                                    device,
19700     uint32_t                                    createInfoCount,
19701     const VkShaderCreateInfoEXT*                pCreateInfos,
19702     const VkAllocationCallbacks*                pAllocator,
19703     VkShaderEXT*                                pShaders);
19704 
19705 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
19706     VkDevice                                    device,
19707     VkShaderEXT                                 shader,
19708     const VkAllocationCallbacks*                pAllocator);
19709 
19710 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
19711     VkDevice                                    device,
19712     VkShaderEXT                                 shader,
19713     size_t*                                     pDataSize,
19714     void*                                       pData);
19715 
19716 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
19717     VkCommandBuffer                             commandBuffer,
19718     uint32_t                                    stageCount,
19719     const VkShaderStageFlagBits*                pStages,
19720     const VkShaderEXT*                          pShaders);
19721 
19722 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampRangeEXT(
19723     VkCommandBuffer                             commandBuffer,
19724     VkDepthClampModeEXT                         depthClampMode,
19725     const VkDepthClampRangeEXT*                 pDepthClampRange);
19726 #endif
19727 
19728 
19729 // VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
19730 #define VK_QCOM_tile_properties 1
19731 #define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
19732 #define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
19733 typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
19734     VkStructureType    sType;
19735     void*              pNext;
19736     VkBool32           tileProperties;
19737 } VkPhysicalDeviceTilePropertiesFeaturesQCOM;
19738 
19739 typedef struct VkTilePropertiesQCOM {
19740     VkStructureType    sType;
19741     void*              pNext;
19742     VkExtent3D         tileSize;
19743     VkExtent2D         apronSize;
19744     VkOffset2D         origin;
19745 } VkTilePropertiesQCOM;
19746 
19747 typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
19748 typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
19749 
19750 #ifndef VK_NO_PROTOTYPES
19751 VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
19752     VkDevice                                    device,
19753     VkFramebuffer                               framebuffer,
19754     uint32_t*                                   pPropertiesCount,
19755     VkTilePropertiesQCOM*                       pProperties);
19756 
19757 VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
19758     VkDevice                                    device,
19759     const VkRenderingInfo*                      pRenderingInfo,
19760     VkTilePropertiesQCOM*                       pProperties);
19761 #endif
19762 
19763 
19764 // VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
19765 #define VK_SEC_amigo_profiling 1
19766 #define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
19767 #define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
19768 typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
19769     VkStructureType    sType;
19770     void*              pNext;
19771     VkBool32           amigoProfiling;
19772 } VkPhysicalDeviceAmigoProfilingFeaturesSEC;
19773 
19774 typedef struct VkAmigoProfilingSubmitInfoSEC {
19775     VkStructureType    sType;
19776     const void*        pNext;
19777     uint64_t           firstDrawTimestamp;
19778     uint64_t           swapBufferTimestamp;
19779 } VkAmigoProfilingSubmitInfoSEC;
19780 
19781 
19782 
19783 // VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
19784 #define VK_QCOM_multiview_per_view_viewports 1
19785 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
19786 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
19787 typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
19788     VkStructureType    sType;
19789     void*              pNext;
19790     VkBool32           multiviewPerViewViewports;
19791 } VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
19792 
19793 
19794 
19795 // VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
19796 #define VK_NV_ray_tracing_invocation_reorder 1
19797 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
19798 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
19799 
19800 typedef enum VkRayTracingInvocationReorderModeNV {
19801     VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0,
19802     VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1,
19803     VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 0x7FFFFFFF
19804 } VkRayTracingInvocationReorderModeNV;
19805 typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
19806     VkStructureType                        sType;
19807     void*                                  pNext;
19808     VkRayTracingInvocationReorderModeNV    rayTracingInvocationReorderReorderingHint;
19809 } VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
19810 
19811 typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
19812     VkStructureType    sType;
19813     void*              pNext;
19814     VkBool32           rayTracingInvocationReorder;
19815 } VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
19816 
19817 
19818 
19819 // VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
19820 #define VK_NV_extended_sparse_address_space 1
19821 #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
19822 #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
19823 typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
19824     VkStructureType    sType;
19825     void*              pNext;
19826     VkBool32           extendedSparseAddressSpace;
19827 } VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
19828 
19829 typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
19830     VkStructureType       sType;
19831     void*                 pNext;
19832     VkDeviceSize          extendedSparseAddressSpaceSize;
19833     VkImageUsageFlags     extendedSparseImageUsageFlags;
19834     VkBufferUsageFlags    extendedSparseBufferUsageFlags;
19835 } VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
19836 
19837 
19838 
19839 // VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
19840 #define VK_EXT_mutable_descriptor_type 1
19841 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
19842 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
19843 
19844 
19845 // VK_EXT_legacy_vertex_attributes is a preprocessor guard. Do not pass it to API calls.
19846 #define VK_EXT_legacy_vertex_attributes 1
19847 #define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION 1
19848 #define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME "VK_EXT_legacy_vertex_attributes"
19849 typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT {
19850     VkStructureType    sType;
19851     void*              pNext;
19852     VkBool32           legacyVertexAttributes;
19853 } VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
19854 
19855 typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT {
19856     VkStructureType    sType;
19857     void*              pNext;
19858     VkBool32           nativeUnalignedPerformance;
19859 } VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
19860 
19861 
19862 
19863 // VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
19864 #define VK_EXT_layer_settings 1
19865 #define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
19866 #define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
19867 
19868 typedef enum VkLayerSettingTypeEXT {
19869     VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
19870     VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
19871     VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
19872     VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
19873     VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
19874     VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
19875     VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
19876     VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
19877     VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19878 } VkLayerSettingTypeEXT;
19879 typedef struct VkLayerSettingEXT {
19880     const char*              pLayerName;
19881     const char*              pSettingName;
19882     VkLayerSettingTypeEXT    type;
19883     uint32_t                 valueCount;
19884     const void*              pValues;
19885 } VkLayerSettingEXT;
19886 
19887 typedef struct VkLayerSettingsCreateInfoEXT {
19888     VkStructureType             sType;
19889     const void*                 pNext;
19890     uint32_t                    settingCount;
19891     const VkLayerSettingEXT*    pSettings;
19892 } VkLayerSettingsCreateInfoEXT;
19893 
19894 
19895 
19896 // VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
19897 #define VK_ARM_shader_core_builtins 1
19898 #define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
19899 #define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
19900 typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
19901     VkStructureType    sType;
19902     void*              pNext;
19903     VkBool32           shaderCoreBuiltins;
19904 } VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
19905 
19906 typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
19907     VkStructureType    sType;
19908     void*              pNext;
19909     uint64_t           shaderCoreMask;
19910     uint32_t           shaderCoreCount;
19911     uint32_t           shaderWarpsPerCore;
19912 } VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
19913 
19914 
19915 
19916 // VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
19917 #define VK_EXT_pipeline_library_group_handles 1
19918 #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
19919 #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
19920 typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
19921     VkStructureType    sType;
19922     void*              pNext;
19923     VkBool32           pipelineLibraryGroupHandles;
19924 } VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
19925 
19926 
19927 
19928 // VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
19929 #define VK_EXT_dynamic_rendering_unused_attachments 1
19930 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
19931 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
19932 typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
19933     VkStructureType    sType;
19934     void*              pNext;
19935     VkBool32           dynamicRenderingUnusedAttachments;
19936 } VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
19937 
19938 
19939 
19940 // VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
19941 #define VK_NV_low_latency2 1
19942 #define VK_NV_LOW_LATENCY_2_SPEC_VERSION  2
19943 #define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
19944 
19945 typedef enum VkLatencyMarkerNV {
19946     VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
19947     VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
19948     VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
19949     VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
19950     VK_LATENCY_MARKER_PRESENT_START_NV = 4,
19951     VK_LATENCY_MARKER_PRESENT_END_NV = 5,
19952     VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
19953     VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
19954     VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
19955     VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
19956     VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
19957     VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
19958     VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
19959 } VkLatencyMarkerNV;
19960 
19961 typedef enum VkOutOfBandQueueTypeNV {
19962     VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
19963     VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
19964     VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
19965 } VkOutOfBandQueueTypeNV;
19966 typedef struct VkLatencySleepModeInfoNV {
19967     VkStructureType    sType;
19968     const void*        pNext;
19969     VkBool32           lowLatencyMode;
19970     VkBool32           lowLatencyBoost;
19971     uint32_t           minimumIntervalUs;
19972 } VkLatencySleepModeInfoNV;
19973 
19974 typedef struct VkLatencySleepInfoNV {
19975     VkStructureType    sType;
19976     const void*        pNext;
19977     VkSemaphore        signalSemaphore;
19978     uint64_t           value;
19979 } VkLatencySleepInfoNV;
19980 
19981 typedef struct VkSetLatencyMarkerInfoNV {
19982     VkStructureType      sType;
19983     const void*          pNext;
19984     uint64_t             presentID;
19985     VkLatencyMarkerNV    marker;
19986 } VkSetLatencyMarkerInfoNV;
19987 
19988 typedef struct VkLatencyTimingsFrameReportNV {
19989     VkStructureType    sType;
19990     const void*        pNext;
19991     uint64_t           presentID;
19992     uint64_t           inputSampleTimeUs;
19993     uint64_t           simStartTimeUs;
19994     uint64_t           simEndTimeUs;
19995     uint64_t           renderSubmitStartTimeUs;
19996     uint64_t           renderSubmitEndTimeUs;
19997     uint64_t           presentStartTimeUs;
19998     uint64_t           presentEndTimeUs;
19999     uint64_t           driverStartTimeUs;
20000     uint64_t           driverEndTimeUs;
20001     uint64_t           osRenderQueueStartTimeUs;
20002     uint64_t           osRenderQueueEndTimeUs;
20003     uint64_t           gpuRenderStartTimeUs;
20004     uint64_t           gpuRenderEndTimeUs;
20005 } VkLatencyTimingsFrameReportNV;
20006 
20007 typedef struct VkGetLatencyMarkerInfoNV {
20008     VkStructureType                   sType;
20009     const void*                       pNext;
20010     uint32_t                          timingCount;
20011     VkLatencyTimingsFrameReportNV*    pTimings;
20012 } VkGetLatencyMarkerInfoNV;
20013 
20014 typedef struct VkLatencySubmissionPresentIdNV {
20015     VkStructureType    sType;
20016     const void*        pNext;
20017     uint64_t           presentID;
20018 } VkLatencySubmissionPresentIdNV;
20019 
20020 typedef struct VkSwapchainLatencyCreateInfoNV {
20021     VkStructureType    sType;
20022     const void*        pNext;
20023     VkBool32           latencyModeEnable;
20024 } VkSwapchainLatencyCreateInfoNV;
20025 
20026 typedef struct VkOutOfBandQueueTypeInfoNV {
20027     VkStructureType           sType;
20028     const void*               pNext;
20029     VkOutOfBandQueueTypeNV    queueType;
20030 } VkOutOfBandQueueTypeInfoNV;
20031 
20032 typedef struct VkLatencySurfaceCapabilitiesNV {
20033     VkStructureType      sType;
20034     const void*          pNext;
20035     uint32_t             presentModeCount;
20036     VkPresentModeKHR*    pPresentModes;
20037 } VkLatencySurfaceCapabilitiesNV;
20038 
20039 typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
20040 typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
20041 typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
20042 typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
20043 typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
20044 
20045 #ifndef VK_NO_PROTOTYPES
20046 VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
20047     VkDevice                                    device,
20048     VkSwapchainKHR                              swapchain,
20049     const VkLatencySleepModeInfoNV*             pSleepModeInfo);
20050 
20051 VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
20052     VkDevice                                    device,
20053     VkSwapchainKHR                              swapchain,
20054     const VkLatencySleepInfoNV*                 pSleepInfo);
20055 
20056 VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
20057     VkDevice                                    device,
20058     VkSwapchainKHR                              swapchain,
20059     const VkSetLatencyMarkerInfoNV*             pLatencyMarkerInfo);
20060 
20061 VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
20062     VkDevice                                    device,
20063     VkSwapchainKHR                              swapchain,
20064     VkGetLatencyMarkerInfoNV*                   pLatencyMarkerInfo);
20065 
20066 VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
20067     VkQueue                                     queue,
20068     const VkOutOfBandQueueTypeInfoNV*           pQueueTypeInfo);
20069 #endif
20070 
20071 
20072 // VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
20073 #define VK_QCOM_multiview_per_view_render_areas 1
20074 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
20075 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
20076 typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
20077     VkStructureType    sType;
20078     void*              pNext;
20079     VkBool32           multiviewPerViewRenderAreas;
20080 } VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
20081 
20082 typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
20083     VkStructureType    sType;
20084     const void*        pNext;
20085     uint32_t           perViewRenderAreaCount;
20086     const VkRect2D*    pPerViewRenderAreas;
20087 } VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
20088 
20089 
20090 
20091 // VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
20092 #define VK_NV_per_stage_descriptor_set 1
20093 #define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
20094 #define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
20095 typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
20096     VkStructureType    sType;
20097     void*              pNext;
20098     VkBool32           perStageDescriptorSet;
20099     VkBool32           dynamicPipelineLayout;
20100 } VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
20101 
20102 
20103 
20104 // VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
20105 #define VK_QCOM_image_processing2 1
20106 #define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
20107 #define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
20108 
20109 typedef enum VkBlockMatchWindowCompareModeQCOM {
20110     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
20111     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
20112     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
20113 } VkBlockMatchWindowCompareModeQCOM;
20114 typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
20115     VkStructureType    sType;
20116     void*              pNext;
20117     VkBool32           textureBlockMatch2;
20118 } VkPhysicalDeviceImageProcessing2FeaturesQCOM;
20119 
20120 typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
20121     VkStructureType    sType;
20122     void*              pNext;
20123     VkExtent2D         maxBlockMatchWindow;
20124 } VkPhysicalDeviceImageProcessing2PropertiesQCOM;
20125 
20126 typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
20127     VkStructureType                      sType;
20128     const void*                          pNext;
20129     VkExtent2D                           windowExtent;
20130     VkBlockMatchWindowCompareModeQCOM    windowCompareMode;
20131 } VkSamplerBlockMatchWindowCreateInfoQCOM;
20132 
20133 
20134 
20135 // VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
20136 #define VK_QCOM_filter_cubic_weights 1
20137 #define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
20138 #define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
20139 
20140 typedef enum VkCubicFilterWeightsQCOM {
20141     VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
20142     VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
20143     VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
20144     VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
20145     VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
20146 } VkCubicFilterWeightsQCOM;
20147 typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
20148     VkStructureType    sType;
20149     void*              pNext;
20150     VkBool32           selectableCubicWeights;
20151 } VkPhysicalDeviceCubicWeightsFeaturesQCOM;
20152 
20153 typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
20154     VkStructureType             sType;
20155     const void*                 pNext;
20156     VkCubicFilterWeightsQCOM    cubicWeights;
20157 } VkSamplerCubicWeightsCreateInfoQCOM;
20158 
20159 typedef struct VkBlitImageCubicWeightsInfoQCOM {
20160     VkStructureType             sType;
20161     const void*                 pNext;
20162     VkCubicFilterWeightsQCOM    cubicWeights;
20163 } VkBlitImageCubicWeightsInfoQCOM;
20164 
20165 
20166 
20167 // VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
20168 #define VK_QCOM_ycbcr_degamma 1
20169 #define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
20170 #define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
20171 typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
20172     VkStructureType    sType;
20173     void*              pNext;
20174     VkBool32           ycbcrDegamma;
20175 } VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
20176 
20177 typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
20178     VkStructureType    sType;
20179     void*              pNext;
20180     VkBool32           enableYDegamma;
20181     VkBool32           enableCbCrDegamma;
20182 } VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
20183 
20184 
20185 
20186 // VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
20187 #define VK_QCOM_filter_cubic_clamp 1
20188 #define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
20189 #define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
20190 typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
20191     VkStructureType    sType;
20192     void*              pNext;
20193     VkBool32           cubicRangeClamp;
20194 } VkPhysicalDeviceCubicClampFeaturesQCOM;
20195 
20196 
20197 
20198 // VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
20199 #define VK_EXT_attachment_feedback_loop_dynamic_state 1
20200 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
20201 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
20202 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
20203     VkStructureType    sType;
20204     void*              pNext;
20205     VkBool32           attachmentFeedbackLoopDynamicState;
20206 } VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
20207 
20208 typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
20209 
20210 #ifndef VK_NO_PROTOTYPES
20211 VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
20212     VkCommandBuffer                             commandBuffer,
20213     VkImageAspectFlags                          aspectMask);
20214 #endif
20215 
20216 
20217 // VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
20218 #define VK_MSFT_layered_driver 1
20219 #define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
20220 #define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
20221 
20222 typedef enum VkLayeredDriverUnderlyingApiMSFT {
20223     VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
20224     VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
20225     VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
20226 } VkLayeredDriverUnderlyingApiMSFT;
20227 typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
20228     VkStructureType                     sType;
20229     void*                               pNext;
20230     VkLayeredDriverUnderlyingApiMSFT    underlyingAPI;
20231 } VkPhysicalDeviceLayeredDriverPropertiesMSFT;
20232 
20233 
20234 
20235 // VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
20236 #define VK_NV_descriptor_pool_overallocation 1
20237 #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
20238 #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
20239 typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
20240     VkStructureType    sType;
20241     void*              pNext;
20242     VkBool32           descriptorPoolOverallocation;
20243 } VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
20244 
20245 
20246 
20247 // VK_NV_display_stereo is a preprocessor guard. Do not pass it to API calls.
20248 #define VK_NV_display_stereo 1
20249 #define VK_NV_DISPLAY_STEREO_SPEC_VERSION 1
20250 #define VK_NV_DISPLAY_STEREO_EXTENSION_NAME "VK_NV_display_stereo"
20251 
20252 typedef enum VkDisplaySurfaceStereoTypeNV {
20253     VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV = 0,
20254     VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV = 1,
20255     VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV = 2,
20256     VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV = 3,
20257     VK_DISPLAY_SURFACE_STEREO_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
20258 } VkDisplaySurfaceStereoTypeNV;
20259 typedef struct VkDisplaySurfaceStereoCreateInfoNV {
20260     VkStructureType                 sType;
20261     const void*                     pNext;
20262     VkDisplaySurfaceStereoTypeNV    stereoType;
20263 } VkDisplaySurfaceStereoCreateInfoNV;
20264 
20265 typedef struct VkDisplayModeStereoPropertiesNV {
20266     VkStructureType    sType;
20267     const void*        pNext;
20268     VkBool32           hdmi3DSupported;
20269 } VkDisplayModeStereoPropertiesNV;
20270 
20271 
20272 
20273 // VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
20274 #define VK_NV_raw_access_chains 1
20275 #define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
20276 #define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
20277 typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
20278     VkStructureType    sType;
20279     void*              pNext;
20280     VkBool32           shaderRawAccessChains;
20281 } VkPhysicalDeviceRawAccessChainsFeaturesNV;
20282 
20283 
20284 
20285 // VK_NV_command_buffer_inheritance is a preprocessor guard. Do not pass it to API calls.
20286 #define VK_NV_command_buffer_inheritance 1
20287 #define VK_NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION 1
20288 #define VK_NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME "VK_NV_command_buffer_inheritance"
20289 typedef struct VkPhysicalDeviceCommandBufferInheritanceFeaturesNV {
20290     VkStructureType    sType;
20291     void*              pNext;
20292     VkBool32           commandBufferInheritance;
20293 } VkPhysicalDeviceCommandBufferInheritanceFeaturesNV;
20294 
20295 
20296 
20297 // VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
20298 #define VK_NV_shader_atomic_float16_vector 1
20299 #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
20300 #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
20301 typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
20302     VkStructureType    sType;
20303     void*              pNext;
20304     VkBool32           shaderFloat16VectorAtomics;
20305 } VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
20306 
20307 
20308 
20309 // VK_EXT_shader_replicated_composites is a preprocessor guard. Do not pass it to API calls.
20310 #define VK_EXT_shader_replicated_composites 1
20311 #define VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION 1
20312 #define VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME "VK_EXT_shader_replicated_composites"
20313 typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
20314     VkStructureType    sType;
20315     void*              pNext;
20316     VkBool32           shaderReplicatedComposites;
20317 } VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT;
20318 
20319 
20320 
20321 // VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls.
20322 #define VK_NV_ray_tracing_validation 1
20323 #define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1
20324 #define VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME "VK_NV_ray_tracing_validation"
20325 typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
20326     VkStructureType    sType;
20327     void*              pNext;
20328     VkBool32           rayTracingValidation;
20329 } VkPhysicalDeviceRayTracingValidationFeaturesNV;
20330 
20331 
20332 
20333 // VK_EXT_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
20334 #define VK_EXT_device_generated_commands 1
20335 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectExecutionSetEXT)
20336 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutEXT)
20337 #define VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
20338 #define VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_EXT_device_generated_commands"
20339 
20340 typedef enum VkIndirectExecutionSetInfoTypeEXT {
20341     VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT = 0,
20342     VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT = 1,
20343     VK_INDIRECT_EXECUTION_SET_INFO_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
20344 } VkIndirectExecutionSetInfoTypeEXT;
20345 
20346 typedef enum VkIndirectCommandsTokenTypeEXT {
20347     VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT = 0,
20348     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT = 1,
20349     VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT = 2,
20350     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT = 3,
20351     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT = 4,
20352     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT = 5,
20353     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT = 6,
20354     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT = 7,
20355     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT = 8,
20356     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT = 9,
20357     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT = 1000202002,
20358     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT = 1000202003,
20359     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT = 1000328000,
20360     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT = 1000328001,
20361     VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT = 1000386004,
20362     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
20363 } VkIndirectCommandsTokenTypeEXT;
20364 
20365 typedef enum VkIndirectCommandsInputModeFlagBitsEXT {
20366     VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT = 0x00000001,
20367     VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT = 0x00000002,
20368     VK_INDIRECT_COMMANDS_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20369 } VkIndirectCommandsInputModeFlagBitsEXT;
20370 typedef VkFlags VkIndirectCommandsInputModeFlagsEXT;
20371 
20372 typedef enum VkIndirectCommandsLayoutUsageFlagBitsEXT {
20373     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT = 0x00000001,
20374     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT = 0x00000002,
20375     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20376 } VkIndirectCommandsLayoutUsageFlagBitsEXT;
20377 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;
20378 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
20379     VkStructureType    sType;
20380     void*              pNext;
20381     VkBool32           deviceGeneratedCommands;
20382     VkBool32           dynamicGeneratedPipelineLayout;
20383 } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
20384 
20385 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
20386     VkStructureType                        sType;
20387     void*                                  pNext;
20388     uint32_t                               maxIndirectPipelineCount;
20389     uint32_t                               maxIndirectShaderObjectCount;
20390     uint32_t                               maxIndirectSequenceCount;
20391     uint32_t                               maxIndirectCommandsTokenCount;
20392     uint32_t                               maxIndirectCommandsTokenOffset;
20393     uint32_t                               maxIndirectCommandsIndirectStride;
20394     VkIndirectCommandsInputModeFlagsEXT    supportedIndirectCommandsInputModes;
20395     VkShaderStageFlags                     supportedIndirectCommandsShaderStages;
20396     VkShaderStageFlags                     supportedIndirectCommandsShaderStagesPipelineBinding;
20397     VkShaderStageFlags                     supportedIndirectCommandsShaderStagesShaderBinding;
20398     VkBool32                               deviceGeneratedCommandsTransformFeedback;
20399     VkBool32                               deviceGeneratedCommandsMultiDrawIndirectCount;
20400 } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
20401 
20402 typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
20403     VkStructureType                sType;
20404     const void*                    pNext;
20405     VkIndirectExecutionSetEXT      indirectExecutionSet;
20406     VkIndirectCommandsLayoutEXT    indirectCommandsLayout;
20407     uint32_t                       maxSequenceCount;
20408     uint32_t                       maxDrawCount;
20409 } VkGeneratedCommandsMemoryRequirementsInfoEXT;
20410 
20411 typedef struct VkIndirectExecutionSetPipelineInfoEXT {
20412     VkStructureType    sType;
20413     const void*        pNext;
20414     VkPipeline         initialPipeline;
20415     uint32_t           maxPipelineCount;
20416 } VkIndirectExecutionSetPipelineInfoEXT;
20417 
20418 typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT {
20419     VkStructureType                 sType;
20420     const void*                     pNext;
20421     uint32_t                        setLayoutCount;
20422     const VkDescriptorSetLayout*    pSetLayouts;
20423 } VkIndirectExecutionSetShaderLayoutInfoEXT;
20424 
20425 typedef struct VkIndirectExecutionSetShaderInfoEXT {
20426     VkStructureType                                     sType;
20427     const void*                                         pNext;
20428     uint32_t                                            shaderCount;
20429     const VkShaderEXT*                                  pInitialShaders;
20430     const VkIndirectExecutionSetShaderLayoutInfoEXT*    pSetLayoutInfos;
20431     uint32_t                                            maxShaderCount;
20432     uint32_t                                            pushConstantRangeCount;
20433     const VkPushConstantRange*                          pPushConstantRanges;
20434 } VkIndirectExecutionSetShaderInfoEXT;
20435 
20436 typedef union VkIndirectExecutionSetInfoEXT {
20437     const VkIndirectExecutionSetPipelineInfoEXT*    pPipelineInfo;
20438     const VkIndirectExecutionSetShaderInfoEXT*      pShaderInfo;
20439 } VkIndirectExecutionSetInfoEXT;
20440 
20441 typedef struct VkIndirectExecutionSetCreateInfoEXT {
20442     VkStructureType                      sType;
20443     const void*                          pNext;
20444     VkIndirectExecutionSetInfoTypeEXT    type;
20445     VkIndirectExecutionSetInfoEXT        info;
20446 } VkIndirectExecutionSetCreateInfoEXT;
20447 
20448 typedef struct VkGeneratedCommandsInfoEXT {
20449     VkStructureType                sType;
20450     const void*                    pNext;
20451     VkShaderStageFlags             shaderStages;
20452     VkIndirectExecutionSetEXT      indirectExecutionSet;
20453     VkIndirectCommandsLayoutEXT    indirectCommandsLayout;
20454     VkDeviceAddress                indirectAddress;
20455     VkDeviceSize                   indirectAddressSize;
20456     VkDeviceAddress                preprocessAddress;
20457     VkDeviceSize                   preprocessSize;
20458     uint32_t                       maxSequenceCount;
20459     VkDeviceAddress                sequenceCountAddress;
20460     uint32_t                       maxDrawCount;
20461 } VkGeneratedCommandsInfoEXT;
20462 
20463 typedef struct VkWriteIndirectExecutionSetPipelineEXT {
20464     VkStructureType    sType;
20465     const void*        pNext;
20466     uint32_t           index;
20467     VkPipeline         pipeline;
20468 } VkWriteIndirectExecutionSetPipelineEXT;
20469 
20470 typedef struct VkIndirectCommandsPushConstantTokenEXT {
20471     VkPushConstantRange    updateRange;
20472 } VkIndirectCommandsPushConstantTokenEXT;
20473 
20474 typedef struct VkIndirectCommandsVertexBufferTokenEXT {
20475     uint32_t    vertexBindingUnit;
20476 } VkIndirectCommandsVertexBufferTokenEXT;
20477 
20478 typedef struct VkIndirectCommandsIndexBufferTokenEXT {
20479     VkIndirectCommandsInputModeFlagBitsEXT    mode;
20480 } VkIndirectCommandsIndexBufferTokenEXT;
20481 
20482 typedef struct VkIndirectCommandsExecutionSetTokenEXT {
20483     VkIndirectExecutionSetInfoTypeEXT    type;
20484     VkShaderStageFlags                   shaderStages;
20485 } VkIndirectCommandsExecutionSetTokenEXT;
20486 
20487 typedef union VkIndirectCommandsTokenDataEXT {
20488     const VkIndirectCommandsPushConstantTokenEXT*    pPushConstant;
20489     const VkIndirectCommandsVertexBufferTokenEXT*    pVertexBuffer;
20490     const VkIndirectCommandsIndexBufferTokenEXT*     pIndexBuffer;
20491     const VkIndirectCommandsExecutionSetTokenEXT*    pExecutionSet;
20492 } VkIndirectCommandsTokenDataEXT;
20493 
20494 typedef struct VkIndirectCommandsLayoutTokenEXT {
20495     VkStructureType                   sType;
20496     const void*                       pNext;
20497     VkIndirectCommandsTokenTypeEXT    type;
20498     VkIndirectCommandsTokenDataEXT    data;
20499     uint32_t                          offset;
20500 } VkIndirectCommandsLayoutTokenEXT;
20501 
20502 typedef struct VkIndirectCommandsLayoutCreateInfoEXT {
20503     VkStructureType                            sType;
20504     const void*                                pNext;
20505     VkIndirectCommandsLayoutUsageFlagsEXT      flags;
20506     VkShaderStageFlags                         shaderStages;
20507     uint32_t                                   indirectStride;
20508     VkPipelineLayout                           pipelineLayout;
20509     uint32_t                                   tokenCount;
20510     const VkIndirectCommandsLayoutTokenEXT*    pTokens;
20511 } VkIndirectCommandsLayoutCreateInfoEXT;
20512 
20513 typedef struct VkDrawIndirectCountIndirectCommandEXT {
20514     VkDeviceAddress    bufferAddress;
20515     uint32_t           stride;
20516     uint32_t           commandCount;
20517 } VkDrawIndirectCountIndirectCommandEXT;
20518 
20519 typedef struct VkBindVertexBufferIndirectCommandEXT {
20520     VkDeviceAddress    bufferAddress;
20521     uint32_t           size;
20522     uint32_t           stride;
20523 } VkBindVertexBufferIndirectCommandEXT;
20524 
20525 typedef struct VkBindIndexBufferIndirectCommandEXT {
20526     VkDeviceAddress    bufferAddress;
20527     uint32_t           size;
20528     VkIndexType        indexType;
20529 } VkBindIndexBufferIndirectCommandEXT;
20530 
20531 typedef struct VkGeneratedCommandsPipelineInfoEXT {
20532     VkStructureType    sType;
20533     void*              pNext;
20534     VkPipeline         pipeline;
20535 } VkGeneratedCommandsPipelineInfoEXT;
20536 
20537 typedef struct VkGeneratedCommandsShaderInfoEXT {
20538     VkStructureType       sType;
20539     void*                 pNext;
20540     uint32_t              shaderCount;
20541     const VkShaderEXT*    pShaders;
20542 } VkGeneratedCommandsShaderInfoEXT;
20543 
20544 typedef struct VkWriteIndirectExecutionSetShaderEXT {
20545     VkStructureType    sType;
20546     const void*        pNext;
20547     uint32_t           index;
20548     VkShaderEXT        shader;
20549 } VkWriteIndirectExecutionSetShaderEXT;
20550 
20551 typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements);
20552 typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo, VkCommandBuffer stateCommandBuffer);
20553 typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
20554 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutEXT)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
20555 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutEXT)(VkDevice device, VkIndirectCommandsLayoutEXT indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
20556 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectExecutionSetEXT)(VkDevice device, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectExecutionSetEXT* pIndirectExecutionSet);
20557 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectExecutionSetEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, const VkAllocationCallbacks* pAllocator);
20558 typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetPipelineEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
20559 typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetShaderEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
20560 
20561 #ifndef VK_NO_PROTOTYPES
20562 VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsEXT(
20563     VkDevice                                    device,
20564     const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
20565     VkMemoryRequirements2*                      pMemoryRequirements);
20566 
20567 VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsEXT(
20568     VkCommandBuffer                             commandBuffer,
20569     const VkGeneratedCommandsInfoEXT*           pGeneratedCommandsInfo,
20570     VkCommandBuffer                             stateCommandBuffer);
20571 
20572 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsEXT(
20573     VkCommandBuffer                             commandBuffer,
20574     VkBool32                                    isPreprocessed,
20575     const VkGeneratedCommandsInfoEXT*           pGeneratedCommandsInfo);
20576 
20577 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutEXT(
20578     VkDevice                                    device,
20579     const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
20580     const VkAllocationCallbacks*                pAllocator,
20581     VkIndirectCommandsLayoutEXT*                pIndirectCommandsLayout);
20582 
20583 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutEXT(
20584     VkDevice                                    device,
20585     VkIndirectCommandsLayoutEXT                 indirectCommandsLayout,
20586     const VkAllocationCallbacks*                pAllocator);
20587 
20588 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectExecutionSetEXT(
20589     VkDevice                                    device,
20590     const VkIndirectExecutionSetCreateInfoEXT*  pCreateInfo,
20591     const VkAllocationCallbacks*                pAllocator,
20592     VkIndirectExecutionSetEXT*                  pIndirectExecutionSet);
20593 
20594 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectExecutionSetEXT(
20595     VkDevice                                    device,
20596     VkIndirectExecutionSetEXT                   indirectExecutionSet,
20597     const VkAllocationCallbacks*                pAllocator);
20598 
20599 VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetPipelineEXT(
20600     VkDevice                                    device,
20601     VkIndirectExecutionSetEXT                   indirectExecutionSet,
20602     uint32_t                                    executionSetWriteCount,
20603     const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
20604 
20605 VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetShaderEXT(
20606     VkDevice                                    device,
20607     VkIndirectExecutionSetEXT                   indirectExecutionSet,
20608     uint32_t                                    executionSetWriteCount,
20609     const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
20610 #endif
20611 
20612 
20613 // VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
20614 #define VK_MESA_image_alignment_control 1
20615 #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
20616 #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME "VK_MESA_image_alignment_control"
20617 typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA {
20618     VkStructureType    sType;
20619     void*              pNext;
20620     VkBool32           imageAlignmentControl;
20621 } VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
20622 
20623 typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA {
20624     VkStructureType    sType;
20625     void*              pNext;
20626     uint32_t           supportedImageAlignmentMask;
20627 } VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
20628 
20629 typedef struct VkImageAlignmentControlCreateInfoMESA {
20630     VkStructureType    sType;
20631     const void*        pNext;
20632     uint32_t           maximumRequestedAlignment;
20633 } VkImageAlignmentControlCreateInfoMESA;
20634 
20635 
20636 
20637 // VK_EXT_depth_clamp_control is a preprocessor guard. Do not pass it to API calls.
20638 #define VK_EXT_depth_clamp_control 1
20639 #define VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION 1
20640 #define VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clamp_control"
20641 typedef struct VkPhysicalDeviceDepthClampControlFeaturesEXT {
20642     VkStructureType    sType;
20643     void*              pNext;
20644     VkBool32           depthClampControl;
20645 } VkPhysicalDeviceDepthClampControlFeaturesEXT;
20646 
20647 typedef struct VkPipelineViewportDepthClampControlCreateInfoEXT {
20648     VkStructureType                sType;
20649     const void*                    pNext;
20650     VkDepthClampModeEXT            depthClampMode;
20651     const VkDepthClampRangeEXT*    pDepthClampRange;
20652 } VkPipelineViewportDepthClampControlCreateInfoEXT;
20653 
20654 
20655 
20656 // VK_HUAWEI_hdr_vivid is a preprocessor guard. Do not pass it to API calls.
20657 #define VK_HUAWEI_hdr_vivid 1
20658 #define VK_HUAWEI_HDR_VIVID_SPEC_VERSION  1
20659 #define VK_HUAWEI_HDR_VIVID_EXTENSION_NAME "VK_HUAWEI_hdr_vivid"
20660 typedef struct VkPhysicalDeviceHdrVividFeaturesHUAWEI {
20661     VkStructureType    sType;
20662     void*              pNext;
20663     VkBool32           hdrVivid;
20664 } VkPhysicalDeviceHdrVividFeaturesHUAWEI;
20665 
20666 typedef struct VkHdrVividDynamicMetadataHUAWEI {
20667     VkStructureType    sType;
20668     const void*        pNext;
20669     size_t             dynamicMetadataSize;
20670     const void*        pDynamicMetadata;
20671 } VkHdrVividDynamicMetadataHUAWEI;
20672 
20673 
20674 
20675 // VK_NV_cooperative_matrix2 is a preprocessor guard. Do not pass it to API calls.
20676 #define VK_NV_cooperative_matrix2 1
20677 #define VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION 1
20678 #define VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME "VK_NV_cooperative_matrix2"
20679 typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV {
20680     VkStructureType       sType;
20681     void*                 pNext;
20682     uint32_t              MGranularity;
20683     uint32_t              NGranularity;
20684     uint32_t              KGranularity;
20685     VkComponentTypeKHR    AType;
20686     VkComponentTypeKHR    BType;
20687     VkComponentTypeKHR    CType;
20688     VkComponentTypeKHR    ResultType;
20689     VkBool32              saturatingAccumulation;
20690     VkScopeKHR            scope;
20691     uint32_t              workgroupInvocations;
20692 } VkCooperativeMatrixFlexibleDimensionsPropertiesNV;
20693 
20694 typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV {
20695     VkStructureType    sType;
20696     void*              pNext;
20697     VkBool32           cooperativeMatrixWorkgroupScope;
20698     VkBool32           cooperativeMatrixFlexibleDimensions;
20699     VkBool32           cooperativeMatrixReductions;
20700     VkBool32           cooperativeMatrixConversions;
20701     VkBool32           cooperativeMatrixPerElementOperations;
20702     VkBool32           cooperativeMatrixTensorAddressing;
20703     VkBool32           cooperativeMatrixBlockLoads;
20704 } VkPhysicalDeviceCooperativeMatrix2FeaturesNV;
20705 
20706 typedef struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV {
20707     VkStructureType    sType;
20708     void*              pNext;
20709     uint32_t           cooperativeMatrixWorkgroupScopeMaxWorkgroupSize;
20710     uint32_t           cooperativeMatrixFlexibleDimensionsMaxDimension;
20711     uint32_t           cooperativeMatrixWorkgroupScopeReservedSharedMemory;
20712 } VkPhysicalDeviceCooperativeMatrix2PropertiesNV;
20713 
20714 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
20715 
20716 #ifndef VK_NO_PROTOTYPES
20717 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
20718     VkPhysicalDevice                            physicalDevice,
20719     uint32_t*                                   pPropertyCount,
20720     VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
20721 #endif
20722 
20723 
20724 // VK_EXT_vertex_attribute_robustness is a preprocessor guard. Do not pass it to API calls.
20725 #define VK_EXT_vertex_attribute_robustness 1
20726 #define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION 1
20727 #define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_vertex_attribute_robustness"
20728 typedef struct VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
20729     VkStructureType    sType;
20730     void*              pNext;
20731     VkBool32           vertexAttributeRobustness;
20732 } VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT;
20733 
20734 
20735 
20736 // VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
20737 #define VK_KHR_acceleration_structure 1
20738 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
20739 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
20740 
20741 typedef enum VkBuildAccelerationStructureModeKHR {
20742     VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
20743     VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
20744     VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
20745 } VkBuildAccelerationStructureModeKHR;
20746 
20747 typedef enum VkAccelerationStructureCreateFlagBitsKHR {
20748     VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
20749     VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
20750     VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
20751     VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
20752 } VkAccelerationStructureCreateFlagBitsKHR;
20753 typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
20754 typedef struct VkAccelerationStructureBuildRangeInfoKHR {
20755     uint32_t    primitiveCount;
20756     uint32_t    primitiveOffset;
20757     uint32_t    firstVertex;
20758     uint32_t    transformOffset;
20759 } VkAccelerationStructureBuildRangeInfoKHR;
20760 
20761 typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
20762     VkStructureType                  sType;
20763     const void*                      pNext;
20764     VkFormat                         vertexFormat;
20765     VkDeviceOrHostAddressConstKHR    vertexData;
20766     VkDeviceSize                     vertexStride;
20767     uint32_t                         maxVertex;
20768     VkIndexType                      indexType;
20769     VkDeviceOrHostAddressConstKHR    indexData;
20770     VkDeviceOrHostAddressConstKHR    transformData;
20771 } VkAccelerationStructureGeometryTrianglesDataKHR;
20772 
20773 typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
20774     VkStructureType                  sType;
20775     const void*                      pNext;
20776     VkDeviceOrHostAddressConstKHR    data;
20777     VkDeviceSize                     stride;
20778 } VkAccelerationStructureGeometryAabbsDataKHR;
20779 
20780 typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
20781     VkStructureType                  sType;
20782     const void*                      pNext;
20783     VkBool32                         arrayOfPointers;
20784     VkDeviceOrHostAddressConstKHR    data;
20785 } VkAccelerationStructureGeometryInstancesDataKHR;
20786 
20787 typedef union VkAccelerationStructureGeometryDataKHR {
20788     VkAccelerationStructureGeometryTrianglesDataKHR    triangles;
20789     VkAccelerationStructureGeometryAabbsDataKHR        aabbs;
20790     VkAccelerationStructureGeometryInstancesDataKHR    instances;
20791 } VkAccelerationStructureGeometryDataKHR;
20792 
20793 typedef struct VkAccelerationStructureGeometryKHR {
20794     VkStructureType                           sType;
20795     const void*                               pNext;
20796     VkGeometryTypeKHR                         geometryType;
20797     VkAccelerationStructureGeometryDataKHR    geometry;
20798     VkGeometryFlagsKHR                        flags;
20799 } VkAccelerationStructureGeometryKHR;
20800 
20801 typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
20802     VkStructureType                                     sType;
20803     const void*                                         pNext;
20804     VkAccelerationStructureTypeKHR                      type;
20805     VkBuildAccelerationStructureFlagsKHR                flags;
20806     VkBuildAccelerationStructureModeKHR                 mode;
20807     VkAccelerationStructureKHR                          srcAccelerationStructure;
20808     VkAccelerationStructureKHR                          dstAccelerationStructure;
20809     uint32_t                                            geometryCount;
20810     const VkAccelerationStructureGeometryKHR*           pGeometries;
20811     const VkAccelerationStructureGeometryKHR* const*    ppGeometries;
20812     VkDeviceOrHostAddressKHR                            scratchData;
20813 } VkAccelerationStructureBuildGeometryInfoKHR;
20814 
20815 typedef struct VkAccelerationStructureCreateInfoKHR {
20816     VkStructureType                          sType;
20817     const void*                              pNext;
20818     VkAccelerationStructureCreateFlagsKHR    createFlags;
20819     VkBuffer                                 buffer;
20820     VkDeviceSize                             offset;
20821     VkDeviceSize                             size;
20822     VkAccelerationStructureTypeKHR           type;
20823     VkDeviceAddress                          deviceAddress;
20824 } VkAccelerationStructureCreateInfoKHR;
20825 
20826 typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
20827     VkStructureType                      sType;
20828     const void*                          pNext;
20829     uint32_t                             accelerationStructureCount;
20830     const VkAccelerationStructureKHR*    pAccelerationStructures;
20831 } VkWriteDescriptorSetAccelerationStructureKHR;
20832 
20833 typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
20834     VkStructureType    sType;
20835     void*              pNext;
20836     VkBool32           accelerationStructure;
20837     VkBool32           accelerationStructureCaptureReplay;
20838     VkBool32           accelerationStructureIndirectBuild;
20839     VkBool32           accelerationStructureHostCommands;
20840     VkBool32           descriptorBindingAccelerationStructureUpdateAfterBind;
20841 } VkPhysicalDeviceAccelerationStructureFeaturesKHR;
20842 
20843 typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
20844     VkStructureType    sType;
20845     void*              pNext;
20846     uint64_t           maxGeometryCount;
20847     uint64_t           maxInstanceCount;
20848     uint64_t           maxPrimitiveCount;
20849     uint32_t           maxPerStageDescriptorAccelerationStructures;
20850     uint32_t           maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
20851     uint32_t           maxDescriptorSetAccelerationStructures;
20852     uint32_t           maxDescriptorSetUpdateAfterBindAccelerationStructures;
20853     uint32_t           minAccelerationStructureScratchOffsetAlignment;
20854 } VkPhysicalDeviceAccelerationStructurePropertiesKHR;
20855 
20856 typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
20857     VkStructureType               sType;
20858     const void*                   pNext;
20859     VkAccelerationStructureKHR    accelerationStructure;
20860 } VkAccelerationStructureDeviceAddressInfoKHR;
20861 
20862 typedef struct VkAccelerationStructureVersionInfoKHR {
20863     VkStructureType    sType;
20864     const void*        pNext;
20865     const uint8_t*     pVersionData;
20866 } VkAccelerationStructureVersionInfoKHR;
20867 
20868 typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
20869     VkStructureType                       sType;
20870     const void*                           pNext;
20871     VkAccelerationStructureKHR            src;
20872     VkDeviceOrHostAddressKHR              dst;
20873     VkCopyAccelerationStructureModeKHR    mode;
20874 } VkCopyAccelerationStructureToMemoryInfoKHR;
20875 
20876 typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
20877     VkStructureType                       sType;
20878     const void*                           pNext;
20879     VkDeviceOrHostAddressConstKHR         src;
20880     VkAccelerationStructureKHR            dst;
20881     VkCopyAccelerationStructureModeKHR    mode;
20882 } VkCopyMemoryToAccelerationStructureInfoKHR;
20883 
20884 typedef struct VkCopyAccelerationStructureInfoKHR {
20885     VkStructureType                       sType;
20886     const void*                           pNext;
20887     VkAccelerationStructureKHR            src;
20888     VkAccelerationStructureKHR            dst;
20889     VkCopyAccelerationStructureModeKHR    mode;
20890 } VkCopyAccelerationStructureInfoKHR;
20891 
20892 typedef struct VkAccelerationStructureBuildSizesInfoKHR {
20893     VkStructureType    sType;
20894     const void*        pNext;
20895     VkDeviceSize       accelerationStructureSize;
20896     VkDeviceSize       updateScratchSize;
20897     VkDeviceSize       buildScratchSize;
20898 } VkAccelerationStructureBuildSizesInfoKHR;
20899 
20900 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure);
20901 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
20902 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
20903 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);
20904 typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
20905 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
20906 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
20907 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
20908 typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
20909 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
20910 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
20911 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
20912 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
20913 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
20914 typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
20915 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkAccelerationStructureBuildGeometryInfoKHR*  pBuildInfo, const uint32_t*  pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR*           pSizeInfo);
20916 
20917 #ifndef VK_NO_PROTOTYPES
20918 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
20919     VkDevice                                    device,
20920     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
20921     const VkAllocationCallbacks*                pAllocator,
20922     VkAccelerationStructureKHR*                 pAccelerationStructure);
20923 
20924 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
20925     VkDevice                                    device,
20926     VkAccelerationStructureKHR                  accelerationStructure,
20927     const VkAllocationCallbacks*                pAllocator);
20928 
20929 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
20930     VkCommandBuffer                             commandBuffer,
20931     uint32_t                                    infoCount,
20932     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
20933     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
20934 
20935 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
20936     VkCommandBuffer                             commandBuffer,
20937     uint32_t                                    infoCount,
20938     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
20939     const VkDeviceAddress*                      pIndirectDeviceAddresses,
20940     const uint32_t*                             pIndirectStrides,
20941     const uint32_t* const*                      ppMaxPrimitiveCounts);
20942 
20943 VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
20944     VkDevice                                    device,
20945     VkDeferredOperationKHR                      deferredOperation,
20946     uint32_t                                    infoCount,
20947     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
20948     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
20949 
20950 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
20951     VkDevice                                    device,
20952     VkDeferredOperationKHR                      deferredOperation,
20953     const VkCopyAccelerationStructureInfoKHR*   pInfo);
20954 
20955 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
20956     VkDevice                                    device,
20957     VkDeferredOperationKHR                      deferredOperation,
20958     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
20959 
20960 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
20961     VkDevice                                    device,
20962     VkDeferredOperationKHR                      deferredOperation,
20963     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
20964 
20965 VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
20966     VkDevice                                    device,
20967     uint32_t                                    accelerationStructureCount,
20968     const VkAccelerationStructureKHR*           pAccelerationStructures,
20969     VkQueryType                                 queryType,
20970     size_t                                      dataSize,
20971     void*                                       pData,
20972     size_t                                      stride);
20973 
20974 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
20975     VkCommandBuffer                             commandBuffer,
20976     const VkCopyAccelerationStructureInfoKHR*   pInfo);
20977 
20978 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
20979     VkCommandBuffer                             commandBuffer,
20980     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
20981 
20982 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
20983     VkCommandBuffer                             commandBuffer,
20984     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
20985 
20986 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
20987     VkDevice                                    device,
20988     const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
20989 
20990 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
20991     VkCommandBuffer                             commandBuffer,
20992     uint32_t                                    accelerationStructureCount,
20993     const VkAccelerationStructureKHR*           pAccelerationStructures,
20994     VkQueryType                                 queryType,
20995     VkQueryPool                                 queryPool,
20996     uint32_t                                    firstQuery);
20997 
20998 VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
20999     VkDevice                                    device,
21000     const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
21001     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
21002 
21003 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
21004     VkDevice                                    device,
21005     VkAccelerationStructureBuildTypeKHR         buildType,
21006     const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
21007     const uint32_t*                             pMaxPrimitiveCounts,
21008     VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo);
21009 #endif
21010 
21011 
21012 // VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
21013 #define VK_KHR_ray_tracing_pipeline 1
21014 #define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
21015 #define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
21016 
21017 typedef enum VkShaderGroupShaderKHR {
21018     VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
21019     VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
21020     VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
21021     VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
21022     VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
21023 } VkShaderGroupShaderKHR;
21024 typedef struct VkRayTracingShaderGroupCreateInfoKHR {
21025     VkStructureType                   sType;
21026     const void*                       pNext;
21027     VkRayTracingShaderGroupTypeKHR    type;
21028     uint32_t                          generalShader;
21029     uint32_t                          closestHitShader;
21030     uint32_t                          anyHitShader;
21031     uint32_t                          intersectionShader;
21032     const void*                       pShaderGroupCaptureReplayHandle;
21033 } VkRayTracingShaderGroupCreateInfoKHR;
21034 
21035 typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
21036     VkStructureType    sType;
21037     const void*        pNext;
21038     uint32_t           maxPipelineRayPayloadSize;
21039     uint32_t           maxPipelineRayHitAttributeSize;
21040 } VkRayTracingPipelineInterfaceCreateInfoKHR;
21041 
21042 typedef struct VkRayTracingPipelineCreateInfoKHR {
21043     VkStructureType                                      sType;
21044     const void*                                          pNext;
21045     VkPipelineCreateFlags                                flags;
21046     uint32_t                                             stageCount;
21047     const VkPipelineShaderStageCreateInfo*               pStages;
21048     uint32_t                                             groupCount;
21049     const VkRayTracingShaderGroupCreateInfoKHR*          pGroups;
21050     uint32_t                                             maxPipelineRayRecursionDepth;
21051     const VkPipelineLibraryCreateInfoKHR*                pLibraryInfo;
21052     const VkRayTracingPipelineInterfaceCreateInfoKHR*    pLibraryInterface;
21053     const VkPipelineDynamicStateCreateInfo*              pDynamicState;
21054     VkPipelineLayout                                     layout;
21055     VkPipeline                                           basePipelineHandle;
21056     int32_t                                              basePipelineIndex;
21057 } VkRayTracingPipelineCreateInfoKHR;
21058 
21059 typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
21060     VkStructureType    sType;
21061     void*              pNext;
21062     VkBool32           rayTracingPipeline;
21063     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplay;
21064     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
21065     VkBool32           rayTracingPipelineTraceRaysIndirect;
21066     VkBool32           rayTraversalPrimitiveCulling;
21067 } VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
21068 
21069 typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
21070     VkStructureType    sType;
21071     void*              pNext;
21072     uint32_t           shaderGroupHandleSize;
21073     uint32_t           maxRayRecursionDepth;
21074     uint32_t           maxShaderGroupStride;
21075     uint32_t           shaderGroupBaseAlignment;
21076     uint32_t           shaderGroupHandleCaptureReplaySize;
21077     uint32_t           maxRayDispatchInvocationCount;
21078     uint32_t           shaderGroupHandleAlignment;
21079     uint32_t           maxRayHitAttributeSize;
21080 } VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
21081 
21082 typedef struct VkStridedDeviceAddressRegionKHR {
21083     VkDeviceAddress    deviceAddress;
21084     VkDeviceSize       stride;
21085     VkDeviceSize       size;
21086 } VkStridedDeviceAddressRegionKHR;
21087 
21088 typedef struct VkTraceRaysIndirectCommandKHR {
21089     uint32_t    width;
21090     uint32_t    height;
21091     uint32_t    depth;
21092 } VkTraceRaysIndirectCommandKHR;
21093 
21094 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);
21095 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
21096 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
21097 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
21098 typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
21099 typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
21100 
21101 #ifndef VK_NO_PROTOTYPES
21102 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
21103     VkCommandBuffer                             commandBuffer,
21104     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
21105     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
21106     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
21107     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
21108     uint32_t                                    width,
21109     uint32_t                                    height,
21110     uint32_t                                    depth);
21111 
21112 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
21113     VkDevice                                    device,
21114     VkDeferredOperationKHR                      deferredOperation,
21115     VkPipelineCache                             pipelineCache,
21116     uint32_t                                    createInfoCount,
21117     const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
21118     const VkAllocationCallbacks*                pAllocator,
21119     VkPipeline*                                 pPipelines);
21120 
21121 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
21122     VkDevice                                    device,
21123     VkPipeline                                  pipeline,
21124     uint32_t                                    firstGroup,
21125     uint32_t                                    groupCount,
21126     size_t                                      dataSize,
21127     void*                                       pData);
21128 
21129 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
21130     VkCommandBuffer                             commandBuffer,
21131     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
21132     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
21133     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
21134     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
21135     VkDeviceAddress                             indirectDeviceAddress);
21136 
21137 VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
21138     VkDevice                                    device,
21139     VkPipeline                                  pipeline,
21140     uint32_t                                    group,
21141     VkShaderGroupShaderKHR                      groupShader);
21142 
21143 VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
21144     VkCommandBuffer                             commandBuffer,
21145     uint32_t                                    pipelineStackSize);
21146 #endif
21147 
21148 
21149 // VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
21150 #define VK_KHR_ray_query 1
21151 #define VK_KHR_RAY_QUERY_SPEC_VERSION     1
21152 #define VK_KHR_RAY_QUERY_EXTENSION_NAME   "VK_KHR_ray_query"
21153 typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
21154     VkStructureType    sType;
21155     void*              pNext;
21156     VkBool32           rayQuery;
21157 } VkPhysicalDeviceRayQueryFeaturesKHR;
21158 
21159 
21160 
21161 // VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
21162 #define VK_EXT_mesh_shader 1
21163 #define VK_EXT_MESH_SHADER_SPEC_VERSION   1
21164 #define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
21165 typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
21166     VkStructureType    sType;
21167     void*              pNext;
21168     VkBool32           taskShader;
21169     VkBool32           meshShader;
21170     VkBool32           multiviewMeshShader;
21171     VkBool32           primitiveFragmentShadingRateMeshShader;
21172     VkBool32           meshShaderQueries;
21173 } VkPhysicalDeviceMeshShaderFeaturesEXT;
21174 
21175 typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
21176     VkStructureType    sType;
21177     void*              pNext;
21178     uint32_t           maxTaskWorkGroupTotalCount;
21179     uint32_t           maxTaskWorkGroupCount[3];
21180     uint32_t           maxTaskWorkGroupInvocations;
21181     uint32_t           maxTaskWorkGroupSize[3];
21182     uint32_t           maxTaskPayloadSize;
21183     uint32_t           maxTaskSharedMemorySize;
21184     uint32_t           maxTaskPayloadAndSharedMemorySize;
21185     uint32_t           maxMeshWorkGroupTotalCount;
21186     uint32_t           maxMeshWorkGroupCount[3];
21187     uint32_t           maxMeshWorkGroupInvocations;
21188     uint32_t           maxMeshWorkGroupSize[3];
21189     uint32_t           maxMeshSharedMemorySize;
21190     uint32_t           maxMeshPayloadAndSharedMemorySize;
21191     uint32_t           maxMeshOutputMemorySize;
21192     uint32_t           maxMeshPayloadAndOutputMemorySize;
21193     uint32_t           maxMeshOutputComponents;
21194     uint32_t           maxMeshOutputVertices;
21195     uint32_t           maxMeshOutputPrimitives;
21196     uint32_t           maxMeshOutputLayers;
21197     uint32_t           maxMeshMultiviewViewCount;
21198     uint32_t           meshOutputPerVertexGranularity;
21199     uint32_t           meshOutputPerPrimitiveGranularity;
21200     uint32_t           maxPreferredTaskWorkGroupInvocations;
21201     uint32_t           maxPreferredMeshWorkGroupInvocations;
21202     VkBool32           prefersLocalInvocationVertexOutput;
21203     VkBool32           prefersLocalInvocationPrimitiveOutput;
21204     VkBool32           prefersCompactVertexOutput;
21205     VkBool32           prefersCompactPrimitiveOutput;
21206 } VkPhysicalDeviceMeshShaderPropertiesEXT;
21207 
21208 typedef struct VkDrawMeshTasksIndirectCommandEXT {
21209     uint32_t    groupCountX;
21210     uint32_t    groupCountY;
21211     uint32_t    groupCountZ;
21212 } VkDrawMeshTasksIndirectCommandEXT;
21213 
21214 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
21215 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
21216 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
21217 
21218 #ifndef VK_NO_PROTOTYPES
21219 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
21220     VkCommandBuffer                             commandBuffer,
21221     uint32_t                                    groupCountX,
21222     uint32_t                                    groupCountY,
21223     uint32_t                                    groupCountZ);
21224 
21225 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
21226     VkCommandBuffer                             commandBuffer,
21227     VkBuffer                                    buffer,
21228     VkDeviceSize                                offset,
21229     uint32_t                                    drawCount,
21230     uint32_t                                    stride);
21231 
21232 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
21233     VkCommandBuffer                             commandBuffer,
21234     VkBuffer                                    buffer,
21235     VkDeviceSize                                offset,
21236     VkBuffer                                    countBuffer,
21237     VkDeviceSize                                countBufferOffset,
21238     uint32_t                                    maxDrawCount,
21239     uint32_t                                    stride);
21240 #endif
21241 
21242 #ifdef __cplusplus
21243 }
21244 #endif
21245 
21246 #endif
21247