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