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