Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / framework / vulkan / vkVulkan_c.inl
1 /* WARNING: This is auto-generated file. Do not modify, since changes will
2  * be lost! Modify the generating script instead.
3  */
4 #ifndef VULKAN_CORE_H_
5 #define VULKAN_CORE_H_ 1
6
7 /*
8 ** Copyright (c) 2015-2019 The Khronos Group Inc.
9 **
10 ** Licensed under the Apache License, Version 2.0 (the "License");
11 ** you may not use this file except in compliance with the License.
12 ** You may obtain a copy of the License at
13 **
14 **     http://www.apache.org/licenses/LICENSE-2.0
15 **
16 ** Unless required by applicable law or agreed to in writing, software
17 ** distributed under the License is distributed on an "AS IS" BASIS,
18 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 ** See the License for the specific language governing permissions and
20 ** limitations under the License.
21 */
22
23 /*
24 ** This header is generated from the Khronos Vulkan XML API Registry.
25 **
26 */
27
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33
34
35 #define VK_VERSION_1_0 1
36
37 #define VK_MAKE_VERSION(major, minor, patch) \
38     (((major) << 22) | ((minor) << 12) | (patch))
39
40 // 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.
41 //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
42
43 // Vulkan 1.0 version number
44 #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
45
46 #define VK_VERSION_MAJOR(version) ((deUint32)(version) >> 22)
47 #define VK_VERSION_MINOR(version) (((deUint32)(version) >> 12) & 0x3ff)
48 #define VK_VERSION_PATCH(version) ((deUint32)(version) & 0xfff)
49 // Version of this file
50 #define VK_HEADER_VERSION 124
51
52
53 #define VK_NULL_HANDLE 0
54
55
56 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
57
58
59 #if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
60 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
61         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
62 #else
63         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef deUint64 object;
64 #endif
65 #endif
66
67 typedef deUint32 VkFlags;
68 typedef deUint32 VkBool32;
69 typedef deUint64 VkDeviceSize;
70 typedef deUint32 VkSampleMask;
71 VK_DEFINE_HANDLE(VkInstance)
72 VK_DEFINE_HANDLE(VkPhysicalDevice)
73 VK_DEFINE_HANDLE(VkDevice)
74 VK_DEFINE_HANDLE(VkQueue)
75 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
76 VK_DEFINE_HANDLE(VkCommandBuffer)
77 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
78 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
79 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
80 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
81 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
82 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
83 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
84 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
85 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
86 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
87 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
88 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
89 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
90 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
91 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
92 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
93 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
94 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
95 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
96 #define VK_LOD_CLAMP_NONE                 1000.0f
97 #define VK_REMAINING_MIP_LEVELS           (~0U)
98 #define VK_REMAINING_ARRAY_LAYERS         (~0U)
99 #define VK_WHOLE_SIZE                     (~0ULL)
100 #define VK_ATTACHMENT_UNUSED              (~0U)
101 #define VK_TRUE                           1
102 #define VK_FALSE                          0
103 #define VK_QUEUE_FAMILY_IGNORED           (~0U)
104 #define VK_SUBPASS_EXTERNAL               (~0U)
105 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256
106 #define VK_UUID_SIZE                      16
107 #define VK_MAX_MEMORY_TYPES               32
108 #define VK_MAX_MEMORY_HEAPS               16
109 #define VK_MAX_EXTENSION_NAME_SIZE        256
110 #define VK_MAX_DESCRIPTION_SIZE           256
111
112 typedef enum VkPipelineCacheHeaderVersion {
113     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
114     VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
115     VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
116     VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1),
117     VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
118 } VkPipelineCacheHeaderVersion;
119
120 typedef enum VkResult {
121     VK_SUCCESS = 0,
122     VK_NOT_READY = 1,
123     VK_TIMEOUT = 2,
124     VK_EVENT_SET = 3,
125     VK_EVENT_RESET = 4,
126     VK_INCOMPLETE = 5,
127     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
128     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
129     VK_ERROR_INITIALIZATION_FAILED = -3,
130     VK_ERROR_DEVICE_LOST = -4,
131     VK_ERROR_MEMORY_MAP_FAILED = -5,
132     VK_ERROR_LAYER_NOT_PRESENT = -6,
133     VK_ERROR_EXTENSION_NOT_PRESENT = -7,
134     VK_ERROR_FEATURE_NOT_PRESENT = -8,
135     VK_ERROR_INCOMPATIBLE_DRIVER = -9,
136     VK_ERROR_TOO_MANY_OBJECTS = -10,
137     VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
138     VK_ERROR_FRAGMENTED_POOL = -12,
139     VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
140     VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
141     VK_ERROR_FRAGMENTATION = -1000161000,
142     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
143     VK_ERROR_SURFACE_LOST_KHR = -1000000000,
144     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
145     VK_SUBOPTIMAL_KHR = 1000001003,
146     VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
147     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
148     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
149     VK_ERROR_INVALID_SHADER_NV = -1000012000,
150     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
151     VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
152     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
153     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
154     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
155     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
156     VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
157     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
158     VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
159     VK_RESULT_END_RANGE = VK_INCOMPLETE,
160     VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
161     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
162 } VkResult;
163
164 typedef enum VkStructureType {
165     VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
166     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
167     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
168     VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
169     VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
170     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
171     VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
172     VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
173     VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
174     VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
175     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
176     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
177     VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
178     VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
179     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
180     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
181     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
182     VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
183     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
184     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
185     VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
186     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
187     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
188     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
189     VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
190     VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
191     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
192     VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
193     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
194     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
195     VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
196     VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
197     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
198     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
199     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
200     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
201     VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
202     VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
203     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
204     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
205     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
206     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
207     VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
208     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
209     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
210     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
211     VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
212     VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
213     VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
214     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
215     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
216     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
217     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
218     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
219     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
220     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
221     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
222     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
223     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
224     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
225     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
226     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
227     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
228     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
229     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
230     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
231     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
232     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
233     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
234     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
235     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
236     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
237     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
238     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
239     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
240     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
241     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
242     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
243     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
244     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
245     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
246     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
247     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
248     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
249     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
250     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
251     VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
252     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
253     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
254     VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
255     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
256     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
257     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
258     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
259     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
260     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
261     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
262     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
263     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
264     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
265     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
266     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
267     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
268     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
269     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
270     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
271     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
272     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
273     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
274     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
275     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
276     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
277     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
278     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
279     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
280     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
281     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
282     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
283     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
284     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
285     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
286     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
287     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
288     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
289     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
290     VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
291     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
292     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
293     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
294     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
295     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
296     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
297     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
298     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
299     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
300     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
301     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
302     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
303     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
304     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
305     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
306     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
307     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
308     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
309     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
310     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
311     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
312     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
313     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
314     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
315     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
316     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
317     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
318     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
319     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
320     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
321     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
322     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
323     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
324     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
325     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
326     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
327     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
328     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
329     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
330     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
331     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
332     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
333     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
334     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
335     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
336     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
337     VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
338     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
339     VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
340     VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
341     VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
342     VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
343     VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
344     VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
345     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
346     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
347     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
348     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
349     VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
350     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
351     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
352     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
353     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
354     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
355     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
356     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
357     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
358     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
359     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
360     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
361     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
362     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
363     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
364     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
365     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
366     VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
367     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000,
368     VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
369     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
370     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
371     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
372     VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
373     VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
374     VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
375     VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
376     VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
377     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
378     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
379     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
380     VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
381     VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
382     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
383     VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
384     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
385     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
386     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
387     VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
388     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
389     VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
390     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
391     VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
392     VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
393     VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
394     VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
395     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
396     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
397     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
398     VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
399     VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
400     VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
401     VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
402     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
403     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
404     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
405     VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
406     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
407     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
408     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
409     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
410     VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
411     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
412     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
413     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
414     VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
415     VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
416     VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
417     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
418     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
419     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
420     VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
421     VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
422     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
423     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
424     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
425     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
426     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
427     VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
428     VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
429     VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
430     VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
431     VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
432     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
433     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
434     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
435     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
436     VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
437     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
438     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
439     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
440     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
441     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
442     VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
443     VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
444     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
445     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
446     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
447     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
448     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
449     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
450     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
451     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
452     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
453     VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
454     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
455     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
456     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
457     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
458     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
459     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
460     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
461     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
462     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001,
463     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
464     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
465     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
466     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
467     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
468     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
469     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
470     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
471     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
472     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
473     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
474     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
475     VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
476     VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
477     VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
478     VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
479     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
480     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
481     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
482     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
483     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
484     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
485     VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
486     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
487     VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
488     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
489     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
490     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
491     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
492     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
493     VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
494     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
495     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
496     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
497     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
498     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
499     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
500     VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
501     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000,
502     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
503     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
504     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
505     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000,
506     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
507     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
508     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
509     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
510     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
511     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
512     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = 1000210000,
513     VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
514     VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
515     VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
516     VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
517     VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
518     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
519     VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
520     VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
521     VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
522     VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
523     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
524     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
525     VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
526     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000,
527     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001,
528     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002,
529     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
530     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
531     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
532     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
533     VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
534     VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
535     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
536     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
537     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
538     VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
539     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
540     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
541     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
542     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
543     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
544     VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
545     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
546     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
547     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
548     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
549     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
550     VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
551     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000,
552     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001,
553     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002,
554     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000,
555     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
556     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
557     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
558     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
559     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
560     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
561     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000,
562     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
563     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
564     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
565     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
566     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
567     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
568     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
569     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
570     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
571     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
572     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
573     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
574     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
575     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
576     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
577     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
578     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
579     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
580     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
581     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
582     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
583     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
584     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
585     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
586     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
587     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
588     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
589     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
590     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
591     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
592     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
593     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
594     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
595     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
596     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
597     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
598     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
599     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
600     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
601     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
602     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
603     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
604     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
605     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
606     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
607     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
608     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
609     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
610     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
611     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
612     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
613     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
614     VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
615     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
616     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
617     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
618     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
619     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
620     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
621     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
622     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
623     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
624     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
625     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
626     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
627     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
628     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
629     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
630     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
631     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
632     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
633     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
634     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
635     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
636     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
637     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
638     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
639     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
640     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
641     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
642     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
643     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
644     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
645     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
646     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
647     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
648     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
649     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
650     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
651     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
652     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
653     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
654     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
655     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
656     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
657     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
658     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
659     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
660     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
661     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
662     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
663     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
664     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
665     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
666     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
667     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
668     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
669     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
670     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
671     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
672     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
673     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
674     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
675     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
676     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
677     VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
678     VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
679     VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
680     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
681 } VkStructureType;
682
683 typedef enum VkSystemAllocationScope {
684     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
685     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
686     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
687     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
688     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
689     VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
690     VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
691     VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
692     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
693 } VkSystemAllocationScope;
694
695 typedef enum VkInternalAllocationType {
696     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
697     VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
698     VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
699     VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
700     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
701 } VkInternalAllocationType;
702
703 typedef enum VkFormat {
704     VK_FORMAT_UNDEFINED = 0,
705     VK_FORMAT_R4G4_UNORM_PACK8 = 1,
706     VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
707     VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
708     VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
709     VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
710     VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
711     VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
712     VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
713     VK_FORMAT_R8_UNORM = 9,
714     VK_FORMAT_R8_SNORM = 10,
715     VK_FORMAT_R8_USCALED = 11,
716     VK_FORMAT_R8_SSCALED = 12,
717     VK_FORMAT_R8_UINT = 13,
718     VK_FORMAT_R8_SINT = 14,
719     VK_FORMAT_R8_SRGB = 15,
720     VK_FORMAT_R8G8_UNORM = 16,
721     VK_FORMAT_R8G8_SNORM = 17,
722     VK_FORMAT_R8G8_USCALED = 18,
723     VK_FORMAT_R8G8_SSCALED = 19,
724     VK_FORMAT_R8G8_UINT = 20,
725     VK_FORMAT_R8G8_SINT = 21,
726     VK_FORMAT_R8G8_SRGB = 22,
727     VK_FORMAT_R8G8B8_UNORM = 23,
728     VK_FORMAT_R8G8B8_SNORM = 24,
729     VK_FORMAT_R8G8B8_USCALED = 25,
730     VK_FORMAT_R8G8B8_SSCALED = 26,
731     VK_FORMAT_R8G8B8_UINT = 27,
732     VK_FORMAT_R8G8B8_SINT = 28,
733     VK_FORMAT_R8G8B8_SRGB = 29,
734     VK_FORMAT_B8G8R8_UNORM = 30,
735     VK_FORMAT_B8G8R8_SNORM = 31,
736     VK_FORMAT_B8G8R8_USCALED = 32,
737     VK_FORMAT_B8G8R8_SSCALED = 33,
738     VK_FORMAT_B8G8R8_UINT = 34,
739     VK_FORMAT_B8G8R8_SINT = 35,
740     VK_FORMAT_B8G8R8_SRGB = 36,
741     VK_FORMAT_R8G8B8A8_UNORM = 37,
742     VK_FORMAT_R8G8B8A8_SNORM = 38,
743     VK_FORMAT_R8G8B8A8_USCALED = 39,
744     VK_FORMAT_R8G8B8A8_SSCALED = 40,
745     VK_FORMAT_R8G8B8A8_UINT = 41,
746     VK_FORMAT_R8G8B8A8_SINT = 42,
747     VK_FORMAT_R8G8B8A8_SRGB = 43,
748     VK_FORMAT_B8G8R8A8_UNORM = 44,
749     VK_FORMAT_B8G8R8A8_SNORM = 45,
750     VK_FORMAT_B8G8R8A8_USCALED = 46,
751     VK_FORMAT_B8G8R8A8_SSCALED = 47,
752     VK_FORMAT_B8G8R8A8_UINT = 48,
753     VK_FORMAT_B8G8R8A8_SINT = 49,
754     VK_FORMAT_B8G8R8A8_SRGB = 50,
755     VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
756     VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
757     VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
758     VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
759     VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
760     VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
761     VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
762     VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
763     VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
764     VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
765     VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
766     VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
767     VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
768     VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
769     VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
770     VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
771     VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
772     VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
773     VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
774     VK_FORMAT_R16_UNORM = 70,
775     VK_FORMAT_R16_SNORM = 71,
776     VK_FORMAT_R16_USCALED = 72,
777     VK_FORMAT_R16_SSCALED = 73,
778     VK_FORMAT_R16_UINT = 74,
779     VK_FORMAT_R16_SINT = 75,
780     VK_FORMAT_R16_SFLOAT = 76,
781     VK_FORMAT_R16G16_UNORM = 77,
782     VK_FORMAT_R16G16_SNORM = 78,
783     VK_FORMAT_R16G16_USCALED = 79,
784     VK_FORMAT_R16G16_SSCALED = 80,
785     VK_FORMAT_R16G16_UINT = 81,
786     VK_FORMAT_R16G16_SINT = 82,
787     VK_FORMAT_R16G16_SFLOAT = 83,
788     VK_FORMAT_R16G16B16_UNORM = 84,
789     VK_FORMAT_R16G16B16_SNORM = 85,
790     VK_FORMAT_R16G16B16_USCALED = 86,
791     VK_FORMAT_R16G16B16_SSCALED = 87,
792     VK_FORMAT_R16G16B16_UINT = 88,
793     VK_FORMAT_R16G16B16_SINT = 89,
794     VK_FORMAT_R16G16B16_SFLOAT = 90,
795     VK_FORMAT_R16G16B16A16_UNORM = 91,
796     VK_FORMAT_R16G16B16A16_SNORM = 92,
797     VK_FORMAT_R16G16B16A16_USCALED = 93,
798     VK_FORMAT_R16G16B16A16_SSCALED = 94,
799     VK_FORMAT_R16G16B16A16_UINT = 95,
800     VK_FORMAT_R16G16B16A16_SINT = 96,
801     VK_FORMAT_R16G16B16A16_SFLOAT = 97,
802     VK_FORMAT_R32_UINT = 98,
803     VK_FORMAT_R32_SINT = 99,
804     VK_FORMAT_R32_SFLOAT = 100,
805     VK_FORMAT_R32G32_UINT = 101,
806     VK_FORMAT_R32G32_SINT = 102,
807     VK_FORMAT_R32G32_SFLOAT = 103,
808     VK_FORMAT_R32G32B32_UINT = 104,
809     VK_FORMAT_R32G32B32_SINT = 105,
810     VK_FORMAT_R32G32B32_SFLOAT = 106,
811     VK_FORMAT_R32G32B32A32_UINT = 107,
812     VK_FORMAT_R32G32B32A32_SINT = 108,
813     VK_FORMAT_R32G32B32A32_SFLOAT = 109,
814     VK_FORMAT_R64_UINT = 110,
815     VK_FORMAT_R64_SINT = 111,
816     VK_FORMAT_R64_SFLOAT = 112,
817     VK_FORMAT_R64G64_UINT = 113,
818     VK_FORMAT_R64G64_SINT = 114,
819     VK_FORMAT_R64G64_SFLOAT = 115,
820     VK_FORMAT_R64G64B64_UINT = 116,
821     VK_FORMAT_R64G64B64_SINT = 117,
822     VK_FORMAT_R64G64B64_SFLOAT = 118,
823     VK_FORMAT_R64G64B64A64_UINT = 119,
824     VK_FORMAT_R64G64B64A64_SINT = 120,
825     VK_FORMAT_R64G64B64A64_SFLOAT = 121,
826     VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
827     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
828     VK_FORMAT_D16_UNORM = 124,
829     VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
830     VK_FORMAT_D32_SFLOAT = 126,
831     VK_FORMAT_S8_UINT = 127,
832     VK_FORMAT_D16_UNORM_S8_UINT = 128,
833     VK_FORMAT_D24_UNORM_S8_UINT = 129,
834     VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
835     VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
836     VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
837     VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
838     VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
839     VK_FORMAT_BC2_UNORM_BLOCK = 135,
840     VK_FORMAT_BC2_SRGB_BLOCK = 136,
841     VK_FORMAT_BC3_UNORM_BLOCK = 137,
842     VK_FORMAT_BC3_SRGB_BLOCK = 138,
843     VK_FORMAT_BC4_UNORM_BLOCK = 139,
844     VK_FORMAT_BC4_SNORM_BLOCK = 140,
845     VK_FORMAT_BC5_UNORM_BLOCK = 141,
846     VK_FORMAT_BC5_SNORM_BLOCK = 142,
847     VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
848     VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
849     VK_FORMAT_BC7_UNORM_BLOCK = 145,
850     VK_FORMAT_BC7_SRGB_BLOCK = 146,
851     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
852     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
853     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
854     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
855     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
856     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
857     VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
858     VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
859     VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
860     VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
861     VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
862     VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
863     VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
864     VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
865     VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
866     VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
867     VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
868     VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
869     VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
870     VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
871     VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
872     VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
873     VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
874     VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
875     VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
876     VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
877     VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
878     VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
879     VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
880     VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
881     VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
882     VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
883     VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
884     VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
885     VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
886     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
887     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
888     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
889     VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
890     VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
891     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
892     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
893     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
894     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
895     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
896     VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
897     VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
898     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
899     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
900     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
901     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
902     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
903     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
904     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
905     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
906     VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
907     VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
908     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
909     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
910     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
911     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
912     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
913     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
914     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
915     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
916     VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
917     VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
918     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
919     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
920     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
921     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
922     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
923     VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
924     VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
925     VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
926     VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
927     VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
928     VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
929     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
930     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
931     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000,
932     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001,
933     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002,
934     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003,
935     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004,
936     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005,
937     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006,
938     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007,
939     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008,
940     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009,
941     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010,
942     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011,
943     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012,
944     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013,
945     VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
946     VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
947     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
948     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
949     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
950     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
951     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
952     VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
953     VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
954     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
955     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
956     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
957     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
958     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
959     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
960     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
961     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
962     VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
963     VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
964     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
965     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
966     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
967     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
968     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
969     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
970     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
971     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
972     VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
973     VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
974     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
975     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
976     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
977     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
978     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
979     VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
980     VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
981     VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
982     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
983 } VkFormat;
984
985 typedef enum VkImageType {
986     VK_IMAGE_TYPE_1D = 0,
987     VK_IMAGE_TYPE_2D = 1,
988     VK_IMAGE_TYPE_3D = 2,
989     VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
990     VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
991     VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
992     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
993 } VkImageType;
994
995 typedef enum VkImageTiling {
996     VK_IMAGE_TILING_OPTIMAL = 0,
997     VK_IMAGE_TILING_LINEAR = 1,
998     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
999     VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
1000     VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
1001     VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
1002     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
1003 } VkImageTiling;
1004
1005 typedef enum VkPhysicalDeviceType {
1006     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
1007     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
1008     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
1009     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
1010     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
1011     VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
1012     VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
1013     VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
1014     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
1015 } VkPhysicalDeviceType;
1016
1017 typedef enum VkQueryType {
1018     VK_QUERY_TYPE_OCCLUSION = 0,
1019     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
1020     VK_QUERY_TYPE_TIMESTAMP = 2,
1021     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
1022     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
1023     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
1024     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
1025     VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
1026     VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
1027     VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
1028     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
1029 } VkQueryType;
1030
1031 typedef enum VkSharingMode {
1032     VK_SHARING_MODE_EXCLUSIVE = 0,
1033     VK_SHARING_MODE_CONCURRENT = 1,
1034     VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
1035     VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
1036     VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
1037     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
1038 } VkSharingMode;
1039
1040 typedef enum VkImageLayout {
1041     VK_IMAGE_LAYOUT_UNDEFINED = 0,
1042     VK_IMAGE_LAYOUT_GENERAL = 1,
1043     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
1044     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
1045     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
1046     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
1047     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
1048     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
1049     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
1050     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
1051     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
1052     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
1053     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
1054     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
1055     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
1056     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
1057     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
1058     VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
1059     VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
1060     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
1061     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
1062     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
1063     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
1064     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
1065     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
1066     VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
1067     VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
1068     VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
1069     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
1070 } VkImageLayout;
1071
1072 typedef enum VkImageViewType {
1073     VK_IMAGE_VIEW_TYPE_1D = 0,
1074     VK_IMAGE_VIEW_TYPE_2D = 1,
1075     VK_IMAGE_VIEW_TYPE_3D = 2,
1076     VK_IMAGE_VIEW_TYPE_CUBE = 3,
1077     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
1078     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
1079     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
1080     VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
1081     VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
1082     VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
1083     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
1084 } VkImageViewType;
1085
1086 typedef enum VkComponentSwizzle {
1087     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
1088     VK_COMPONENT_SWIZZLE_ZERO = 1,
1089     VK_COMPONENT_SWIZZLE_ONE = 2,
1090     VK_COMPONENT_SWIZZLE_R = 3,
1091     VK_COMPONENT_SWIZZLE_G = 4,
1092     VK_COMPONENT_SWIZZLE_B = 5,
1093     VK_COMPONENT_SWIZZLE_A = 6,
1094     VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
1095     VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
1096     VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
1097     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
1098 } VkComponentSwizzle;
1099
1100 typedef enum VkVertexInputRate {
1101     VK_VERTEX_INPUT_RATE_VERTEX = 0,
1102     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
1103     VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
1104     VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
1105     VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
1106     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
1107 } VkVertexInputRate;
1108
1109 typedef enum VkPrimitiveTopology {
1110     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
1111     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
1112     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
1113     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
1114     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
1115     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
1116     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
1117     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
1118     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
1119     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
1120     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
1121     VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
1122     VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
1123     VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
1124     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
1125 } VkPrimitiveTopology;
1126
1127 typedef enum VkPolygonMode {
1128     VK_POLYGON_MODE_FILL = 0,
1129     VK_POLYGON_MODE_LINE = 1,
1130     VK_POLYGON_MODE_POINT = 2,
1131     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
1132     VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
1133     VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
1134     VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
1135     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
1136 } VkPolygonMode;
1137
1138 typedef enum VkFrontFace {
1139     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
1140     VK_FRONT_FACE_CLOCKWISE = 1,
1141     VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
1142     VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
1143     VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
1144     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
1145 } VkFrontFace;
1146
1147 typedef enum VkCompareOp {
1148     VK_COMPARE_OP_NEVER = 0,
1149     VK_COMPARE_OP_LESS = 1,
1150     VK_COMPARE_OP_EQUAL = 2,
1151     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
1152     VK_COMPARE_OP_GREATER = 4,
1153     VK_COMPARE_OP_NOT_EQUAL = 5,
1154     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
1155     VK_COMPARE_OP_ALWAYS = 7,
1156     VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
1157     VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
1158     VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
1159     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
1160 } VkCompareOp;
1161
1162 typedef enum VkStencilOp {
1163     VK_STENCIL_OP_KEEP = 0,
1164     VK_STENCIL_OP_ZERO = 1,
1165     VK_STENCIL_OP_REPLACE = 2,
1166     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
1167     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
1168     VK_STENCIL_OP_INVERT = 5,
1169     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
1170     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
1171     VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
1172     VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
1173     VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
1174     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
1175 } VkStencilOp;
1176
1177 typedef enum VkLogicOp {
1178     VK_LOGIC_OP_CLEAR = 0,
1179     VK_LOGIC_OP_AND = 1,
1180     VK_LOGIC_OP_AND_REVERSE = 2,
1181     VK_LOGIC_OP_COPY = 3,
1182     VK_LOGIC_OP_AND_INVERTED = 4,
1183     VK_LOGIC_OP_NO_OP = 5,
1184     VK_LOGIC_OP_XOR = 6,
1185     VK_LOGIC_OP_OR = 7,
1186     VK_LOGIC_OP_NOR = 8,
1187     VK_LOGIC_OP_EQUIVALENT = 9,
1188     VK_LOGIC_OP_INVERT = 10,
1189     VK_LOGIC_OP_OR_REVERSE = 11,
1190     VK_LOGIC_OP_COPY_INVERTED = 12,
1191     VK_LOGIC_OP_OR_INVERTED = 13,
1192     VK_LOGIC_OP_NAND = 14,
1193     VK_LOGIC_OP_SET = 15,
1194     VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
1195     VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
1196     VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
1197     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
1198 } VkLogicOp;
1199
1200 typedef enum VkBlendFactor {
1201     VK_BLEND_FACTOR_ZERO = 0,
1202     VK_BLEND_FACTOR_ONE = 1,
1203     VK_BLEND_FACTOR_SRC_COLOR = 2,
1204     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
1205     VK_BLEND_FACTOR_DST_COLOR = 4,
1206     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
1207     VK_BLEND_FACTOR_SRC_ALPHA = 6,
1208     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
1209     VK_BLEND_FACTOR_DST_ALPHA = 8,
1210     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
1211     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
1212     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
1213     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
1214     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
1215     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
1216     VK_BLEND_FACTOR_SRC1_COLOR = 15,
1217     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
1218     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
1219     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
1220     VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
1221     VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
1222     VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
1223     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
1224 } VkBlendFactor;
1225
1226 typedef enum VkBlendOp {
1227     VK_BLEND_OP_ADD = 0,
1228     VK_BLEND_OP_SUBTRACT = 1,
1229     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
1230     VK_BLEND_OP_MIN = 3,
1231     VK_BLEND_OP_MAX = 4,
1232     VK_BLEND_OP_ZERO_EXT = 1000148000,
1233     VK_BLEND_OP_SRC_EXT = 1000148001,
1234     VK_BLEND_OP_DST_EXT = 1000148002,
1235     VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
1236     VK_BLEND_OP_DST_OVER_EXT = 1000148004,
1237     VK_BLEND_OP_SRC_IN_EXT = 1000148005,
1238     VK_BLEND_OP_DST_IN_EXT = 1000148006,
1239     VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
1240     VK_BLEND_OP_DST_OUT_EXT = 1000148008,
1241     VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
1242     VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
1243     VK_BLEND_OP_XOR_EXT = 1000148011,
1244     VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
1245     VK_BLEND_OP_SCREEN_EXT = 1000148013,
1246     VK_BLEND_OP_OVERLAY_EXT = 1000148014,
1247     VK_BLEND_OP_DARKEN_EXT = 1000148015,
1248     VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
1249     VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
1250     VK_BLEND_OP_COLORBURN_EXT = 1000148018,
1251     VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
1252     VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
1253     VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
1254     VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
1255     VK_BLEND_OP_INVERT_EXT = 1000148023,
1256     VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
1257     VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
1258     VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
1259     VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
1260     VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
1261     VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
1262     VK_BLEND_OP_HARDMIX_EXT = 1000148030,
1263     VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
1264     VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
1265     VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
1266     VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
1267     VK_BLEND_OP_PLUS_EXT = 1000148035,
1268     VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
1269     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
1270     VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
1271     VK_BLEND_OP_MINUS_EXT = 1000148039,
1272     VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
1273     VK_BLEND_OP_CONTRAST_EXT = 1000148041,
1274     VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
1275     VK_BLEND_OP_RED_EXT = 1000148043,
1276     VK_BLEND_OP_GREEN_EXT = 1000148044,
1277     VK_BLEND_OP_BLUE_EXT = 1000148045,
1278     VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
1279     VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
1280     VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
1281     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
1282 } VkBlendOp;
1283
1284 typedef enum VkDynamicState {
1285     VK_DYNAMIC_STATE_VIEWPORT = 0,
1286     VK_DYNAMIC_STATE_SCISSOR = 1,
1287     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
1288     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
1289     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
1290     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
1291     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
1292     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
1293     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
1294     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1295     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
1296     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
1297     VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1298     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1299     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
1300     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000,
1301     VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
1302     VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
1303     VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
1304     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
1305 } VkDynamicState;
1306
1307 typedef enum VkFilter {
1308     VK_FILTER_NEAREST = 0,
1309     VK_FILTER_LINEAR = 1,
1310     VK_FILTER_CUBIC_IMG = 1000015000,
1311     VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG,
1312     VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
1313     VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
1314     VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
1315     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
1316 } VkFilter;
1317
1318 typedef enum VkSamplerMipmapMode {
1319     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
1320     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
1321     VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
1322     VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
1323     VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
1324     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
1325 } VkSamplerMipmapMode;
1326
1327 typedef enum VkSamplerAddressMode {
1328     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
1329     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
1330     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
1331     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
1332     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
1333     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
1334     VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
1335     VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
1336     VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
1337     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
1338 } VkSamplerAddressMode;
1339
1340 typedef enum VkBorderColor {
1341     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
1342     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
1343     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
1344     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
1345     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
1346     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
1347     VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
1348     VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
1349     VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
1350     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
1351 } VkBorderColor;
1352
1353 typedef enum VkDescriptorType {
1354     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
1355     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
1356     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
1357     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
1358     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
1359     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
1360     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
1361     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
1362     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
1363     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
1364     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
1365     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
1366     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1367     VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
1368     VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
1369     VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
1370     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
1371 } VkDescriptorType;
1372
1373 typedef enum VkAttachmentLoadOp {
1374     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
1375     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
1376     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
1377     VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
1378     VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
1379     VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
1380     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
1381 } VkAttachmentLoadOp;
1382
1383 typedef enum VkAttachmentStoreOp {
1384     VK_ATTACHMENT_STORE_OP_STORE = 0,
1385     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
1386     VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
1387     VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
1388     VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
1389     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
1390 } VkAttachmentStoreOp;
1391
1392 typedef enum VkPipelineBindPoint {
1393     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
1394     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
1395     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000,
1396     VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
1397     VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
1398     VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
1399     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
1400 } VkPipelineBindPoint;
1401
1402 typedef enum VkCommandBufferLevel {
1403     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
1404     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
1405     VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
1406     VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
1407     VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
1408     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
1409 } VkCommandBufferLevel;
1410
1411 typedef enum VkIndexType {
1412     VK_INDEX_TYPE_UINT16 = 0,
1413     VK_INDEX_TYPE_UINT32 = 1,
1414     VK_INDEX_TYPE_NONE_NV = 1000165000,
1415     VK_INDEX_TYPE_UINT8_EXT = 1000265000,
1416     VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
1417     VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
1418     VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
1419     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
1420 } VkIndexType;
1421
1422 typedef enum VkSubpassContents {
1423     VK_SUBPASS_CONTENTS_INLINE = 0,
1424     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
1425     VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
1426     VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
1427     VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
1428     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
1429 } VkSubpassContents;
1430
1431 typedef enum VkObjectType {
1432     VK_OBJECT_TYPE_UNKNOWN = 0,
1433     VK_OBJECT_TYPE_INSTANCE = 1,
1434     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1435     VK_OBJECT_TYPE_DEVICE = 3,
1436     VK_OBJECT_TYPE_QUEUE = 4,
1437     VK_OBJECT_TYPE_SEMAPHORE = 5,
1438     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1439     VK_OBJECT_TYPE_FENCE = 7,
1440     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1441     VK_OBJECT_TYPE_BUFFER = 9,
1442     VK_OBJECT_TYPE_IMAGE = 10,
1443     VK_OBJECT_TYPE_EVENT = 11,
1444     VK_OBJECT_TYPE_QUERY_POOL = 12,
1445     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1446     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1447     VK_OBJECT_TYPE_SHADER_MODULE = 15,
1448     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1449     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1450     VK_OBJECT_TYPE_RENDER_PASS = 18,
1451     VK_OBJECT_TYPE_PIPELINE = 19,
1452     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1453     VK_OBJECT_TYPE_SAMPLER = 21,
1454     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1455     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1456     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1457     VK_OBJECT_TYPE_COMMAND_POOL = 25,
1458     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1459     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1460     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1461     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1462     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1463     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1464     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1465     VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
1466     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
1467     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1468     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1469     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1470     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1471     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1472     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1473     VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN,
1474     VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL,
1475     VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1),
1476     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1477 } VkObjectType;
1478
1479 typedef enum VkVendorId {
1480     VK_VENDOR_ID_VIV = 0x10001,
1481     VK_VENDOR_ID_VSI = 0x10002,
1482     VK_VENDOR_ID_KAZAN = 0x10003,
1483     VK_VENDOR_ID_BEGIN_RANGE = VK_VENDOR_ID_VIV,
1484     VK_VENDOR_ID_END_RANGE = VK_VENDOR_ID_KAZAN,
1485     VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1),
1486     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1487 } VkVendorId;
1488 typedef VkFlags VkInstanceCreateFlags;
1489
1490 typedef enum VkFormatFeatureFlagBits {
1491     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
1492     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
1493     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
1494     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
1495     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
1496     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
1497     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
1498     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
1499     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
1500     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
1501     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
1502     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
1503     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
1504     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
1505     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
1506     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
1507     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
1508     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
1509     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
1510     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
1511     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
1512     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
1513     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
1514     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
1515     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
1516     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
1517     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
1518     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
1519     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
1520     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
1521     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
1522     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
1523     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,
1524     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
1525     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
1526     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
1527     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1528 } VkFormatFeatureFlagBits;
1529 typedef VkFlags VkFormatFeatureFlags;
1530
1531 typedef enum VkImageUsageFlagBits {
1532     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
1533     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
1534     VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
1535     VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
1536     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
1537     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
1538     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
1539     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
1540     VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
1541     VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
1542     VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1543 } VkImageUsageFlagBits;
1544 typedef VkFlags VkImageUsageFlags;
1545
1546 typedef enum VkImageCreateFlagBits {
1547     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
1548     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1549     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
1550     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
1551     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
1552     VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
1553     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
1554     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
1555     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
1556     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
1557     VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
1558     VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
1559     VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
1560     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
1561     VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
1562     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
1563     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
1564     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
1565     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
1566     VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
1567     VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
1568     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1569 } VkImageCreateFlagBits;
1570 typedef VkFlags VkImageCreateFlags;
1571
1572 typedef enum VkSampleCountFlagBits {
1573     VK_SAMPLE_COUNT_1_BIT = 0x00000001,
1574     VK_SAMPLE_COUNT_2_BIT = 0x00000002,
1575     VK_SAMPLE_COUNT_4_BIT = 0x00000004,
1576     VK_SAMPLE_COUNT_8_BIT = 0x00000008,
1577     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
1578     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
1579     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
1580     VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1581 } VkSampleCountFlagBits;
1582 typedef VkFlags VkSampleCountFlags;
1583
1584 typedef enum VkQueueFlagBits {
1585     VK_QUEUE_GRAPHICS_BIT = 0x00000001,
1586     VK_QUEUE_COMPUTE_BIT = 0x00000002,
1587     VK_QUEUE_TRANSFER_BIT = 0x00000004,
1588     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
1589     VK_QUEUE_PROTECTED_BIT = 0x00000010,
1590     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1591 } VkQueueFlagBits;
1592 typedef VkFlags VkQueueFlags;
1593
1594 typedef enum VkMemoryPropertyFlagBits {
1595     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
1596     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
1597     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
1598     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
1599     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
1600     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
1601     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
1602     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
1603     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1604 } VkMemoryPropertyFlagBits;
1605 typedef VkFlags VkMemoryPropertyFlags;
1606
1607 typedef enum VkMemoryHeapFlagBits {
1608     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
1609     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
1610     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
1611     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1612 } VkMemoryHeapFlagBits;
1613 typedef VkFlags VkMemoryHeapFlags;
1614 typedef VkFlags VkDeviceCreateFlags;
1615
1616 typedef enum VkDeviceQueueCreateFlagBits {
1617     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
1618     VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1619 } VkDeviceQueueCreateFlagBits;
1620 typedef VkFlags VkDeviceQueueCreateFlags;
1621
1622 typedef enum VkPipelineStageFlagBits {
1623     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
1624     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
1625     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
1626     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
1627     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
1628     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
1629     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
1630     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
1631     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
1632     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
1633     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
1634     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
1635     VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
1636     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
1637     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
1638     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
1639     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
1640     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
1641     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
1642     VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
1643     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
1644     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 0x00200000,
1645     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000,
1646     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
1647     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
1648     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
1649     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1650 } VkPipelineStageFlagBits;
1651 typedef VkFlags VkPipelineStageFlags;
1652 typedef VkFlags VkMemoryMapFlags;
1653
1654 typedef enum VkImageAspectFlagBits {
1655     VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
1656     VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
1657     VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
1658     VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
1659     VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
1660     VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
1661     VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
1662     VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
1663     VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
1664     VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
1665     VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
1666     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
1667     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
1668     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
1669     VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1670 } VkImageAspectFlagBits;
1671 typedef VkFlags VkImageAspectFlags;
1672
1673 typedef enum VkSparseImageFormatFlagBits {
1674     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
1675     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
1676     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
1677     VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1678 } VkSparseImageFormatFlagBits;
1679 typedef VkFlags VkSparseImageFormatFlags;
1680
1681 typedef enum VkSparseMemoryBindFlagBits {
1682     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
1683     VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1684 } VkSparseMemoryBindFlagBits;
1685 typedef VkFlags VkSparseMemoryBindFlags;
1686
1687 typedef enum VkFenceCreateFlagBits {
1688     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
1689     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1690 } VkFenceCreateFlagBits;
1691 typedef VkFlags VkFenceCreateFlags;
1692 typedef VkFlags VkSemaphoreCreateFlags;
1693 typedef VkFlags VkEventCreateFlags;
1694 typedef VkFlags VkQueryPoolCreateFlags;
1695
1696 typedef enum VkQueryPipelineStatisticFlagBits {
1697     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
1698     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
1699     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
1700     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
1701     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
1702     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
1703     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
1704     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
1705     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
1706     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
1707     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
1708     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1709 } VkQueryPipelineStatisticFlagBits;
1710 typedef VkFlags VkQueryPipelineStatisticFlags;
1711
1712 typedef enum VkQueryResultFlagBits {
1713     VK_QUERY_RESULT_64_BIT = 0x00000001,
1714     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
1715     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
1716     VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
1717     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1718 } VkQueryResultFlagBits;
1719 typedef VkFlags VkQueryResultFlags;
1720
1721 typedef enum VkBufferCreateFlagBits {
1722     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
1723     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1724     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
1725     VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
1726     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
1727     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
1728     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
1729     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1730 } VkBufferCreateFlagBits;
1731 typedef VkFlags VkBufferCreateFlags;
1732
1733 typedef enum VkBufferUsageFlagBits {
1734     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
1735     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
1736     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
1737     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
1738     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
1739     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
1740     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
1741     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
1742     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
1743     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
1744     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
1745     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
1746     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
1747     VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400,
1748     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
1749     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
1750     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1751 } VkBufferUsageFlagBits;
1752 typedef VkFlags VkBufferUsageFlags;
1753 typedef VkFlags VkBufferViewCreateFlags;
1754
1755 typedef enum VkImageViewCreateFlagBits {
1756     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
1757     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1758 } VkImageViewCreateFlagBits;
1759 typedef VkFlags VkImageViewCreateFlags;
1760
1761 typedef enum VkShaderModuleCreateFlagBits {
1762     VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1763 } VkShaderModuleCreateFlagBits;
1764 typedef VkFlags VkShaderModuleCreateFlags;
1765 typedef VkFlags VkPipelineCacheCreateFlags;
1766
1767 typedef enum VkPipelineCreateFlagBits {
1768     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
1769     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
1770     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
1771     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
1772     VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
1773     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
1774     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
1775     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
1776     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
1777     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
1778     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1779 } VkPipelineCreateFlagBits;
1780 typedef VkFlags VkPipelineCreateFlags;
1781
1782 typedef enum VkPipelineShaderStageCreateFlagBits {
1783     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000001,
1784     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000002,
1785     VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1786 } VkPipelineShaderStageCreateFlagBits;
1787 typedef VkFlags VkPipelineShaderStageCreateFlags;
1788
1789 typedef enum VkShaderStageFlagBits {
1790     VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
1791     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
1792     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
1793     VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
1794     VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
1795     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
1796     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
1797     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
1798     VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100,
1799     VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200,
1800     VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400,
1801     VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800,
1802     VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000,
1803     VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000,
1804     VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
1805     VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
1806     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1807 } VkShaderStageFlagBits;
1808 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
1809 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
1810 typedef VkFlags VkPipelineTessellationStateCreateFlags;
1811 typedef VkFlags VkPipelineViewportStateCreateFlags;
1812 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
1813
1814 typedef enum VkCullModeFlagBits {
1815     VK_CULL_MODE_NONE = 0,
1816     VK_CULL_MODE_FRONT_BIT = 0x00000001,
1817     VK_CULL_MODE_BACK_BIT = 0x00000002,
1818     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
1819     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1820 } VkCullModeFlagBits;
1821 typedef VkFlags VkCullModeFlags;
1822 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
1823 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
1824 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
1825
1826 typedef enum VkColorComponentFlagBits {
1827     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
1828     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
1829     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
1830     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
1831     VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1832 } VkColorComponentFlagBits;
1833 typedef VkFlags VkColorComponentFlags;
1834 typedef VkFlags VkPipelineDynamicStateCreateFlags;
1835 typedef VkFlags VkPipelineLayoutCreateFlags;
1836 typedef VkFlags VkShaderStageFlags;
1837
1838 typedef enum VkSamplerCreateFlagBits {
1839     VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
1840     VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
1841     VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1842 } VkSamplerCreateFlagBits;
1843 typedef VkFlags VkSamplerCreateFlags;
1844
1845 typedef enum VkDescriptorSetLayoutCreateFlagBits {
1846     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
1847     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
1848     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
1849     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1850 } VkDescriptorSetLayoutCreateFlagBits;
1851 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
1852
1853 typedef enum VkDescriptorPoolCreateFlagBits {
1854     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
1855     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
1856     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
1857     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1858 } VkDescriptorPoolCreateFlagBits;
1859 typedef VkFlags VkDescriptorPoolCreateFlags;
1860 typedef VkFlags VkDescriptorPoolResetFlags;
1861
1862 typedef enum VkFramebufferCreateFlagBits {
1863     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
1864     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
1865     VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1866 } VkFramebufferCreateFlagBits;
1867 typedef VkFlags VkFramebufferCreateFlags;
1868
1869 typedef enum VkRenderPassCreateFlagBits {
1870     VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1871 } VkRenderPassCreateFlagBits;
1872 typedef VkFlags VkRenderPassCreateFlags;
1873
1874 typedef enum VkAttachmentDescriptionFlagBits {
1875     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
1876     VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1877 } VkAttachmentDescriptionFlagBits;
1878 typedef VkFlags VkAttachmentDescriptionFlags;
1879
1880 typedef enum VkSubpassDescriptionFlagBits {
1881     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
1882     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
1883     VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1884 } VkSubpassDescriptionFlagBits;
1885 typedef VkFlags VkSubpassDescriptionFlags;
1886
1887 typedef enum VkAccessFlagBits {
1888     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
1889     VK_ACCESS_INDEX_READ_BIT = 0x00000002,
1890     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
1891     VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
1892     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
1893     VK_ACCESS_SHADER_READ_BIT = 0x00000020,
1894     VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
1895     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
1896     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
1897     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
1898     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
1899     VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
1900     VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
1901     VK_ACCESS_HOST_READ_BIT = 0x00002000,
1902     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
1903     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
1904     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
1905     VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
1906     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
1907     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
1908     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
1909     VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
1910     VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
1911     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
1912     VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
1913     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000,
1914     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000,
1915     VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
1916     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1917 } VkAccessFlagBits;
1918 typedef VkFlags VkAccessFlags;
1919
1920 typedef enum VkDependencyFlagBits {
1921     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1922     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
1923     VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
1924     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
1925     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
1926     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1927 } VkDependencyFlagBits;
1928 typedef VkFlags VkDependencyFlags;
1929
1930 typedef enum VkCommandPoolCreateFlagBits {
1931     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
1932     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
1933     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
1934     VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1935 } VkCommandPoolCreateFlagBits;
1936 typedef VkFlags VkCommandPoolCreateFlags;
1937
1938 typedef enum VkCommandPoolResetFlagBits {
1939     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
1940     VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1941 } VkCommandPoolResetFlagBits;
1942 typedef VkFlags VkCommandPoolResetFlags;
1943
1944 typedef enum VkCommandBufferUsageFlagBits {
1945     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
1946     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
1947     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
1948     VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1949 } VkCommandBufferUsageFlagBits;
1950 typedef VkFlags VkCommandBufferUsageFlags;
1951
1952 typedef enum VkQueryControlFlagBits {
1953     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
1954     VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1955 } VkQueryControlFlagBits;
1956 typedef VkFlags VkQueryControlFlags;
1957
1958 typedef enum VkCommandBufferResetFlagBits {
1959     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
1960     VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1961 } VkCommandBufferResetFlagBits;
1962 typedef VkFlags VkCommandBufferResetFlags;
1963
1964 typedef enum VkStencilFaceFlagBits {
1965     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
1966     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
1967     VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
1968     VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
1969     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1970 } VkStencilFaceFlagBits;
1971 typedef VkFlags VkStencilFaceFlags;
1972 typedef struct VkApplicationInfo {
1973     VkStructureType    sType;
1974     const void*        pNext;
1975     const char*        pApplicationName;
1976     deUint32           applicationVersion;
1977     const char*        pEngineName;
1978     deUint32           engineVersion;
1979     deUint32           apiVersion;
1980 } VkApplicationInfo;
1981
1982 typedef struct VkInstanceCreateInfo {
1983     VkStructureType             sType;
1984     const void*                 pNext;
1985     VkInstanceCreateFlags       flags;
1986     const VkApplicationInfo*    pApplicationInfo;
1987     deUint32                    enabledLayerCount;
1988     const char* const*          ppEnabledLayerNames;
1989     deUint32                    enabledExtensionCount;
1990     const char* const*          ppEnabledExtensionNames;
1991 } VkInstanceCreateInfo;
1992
1993 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
1994     void*                                       pUserData,
1995     deUintptr                                      size,
1996     deUintptr                                      alignment,
1997     VkSystemAllocationScope                     allocationScope);
1998
1999 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
2000     void*                                       pUserData,
2001     void*                                       pOriginal,
2002     deUintptr                                      size,
2003     deUintptr                                      alignment,
2004     VkSystemAllocationScope                     allocationScope);
2005
2006 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
2007     void*                                       pUserData,
2008     void*                                       pMemory);
2009
2010 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
2011     void*                                       pUserData,
2012     deUintptr                                      size,
2013     VkInternalAllocationType                    allocationType,
2014     VkSystemAllocationScope                     allocationScope);
2015
2016 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
2017     void*                                       pUserData,
2018     deUintptr                                      size,
2019     VkInternalAllocationType                    allocationType,
2020     VkSystemAllocationScope                     allocationScope);
2021
2022 typedef struct VkAllocationCallbacks {
2023     void*                                   pUserData;
2024     PFN_vkAllocationFunction                pfnAllocation;
2025     PFN_vkReallocationFunction              pfnReallocation;
2026     PFN_vkFreeFunction                      pfnFree;
2027     PFN_vkInternalAllocationNotification    pfnInternalAllocation;
2028     PFN_vkInternalFreeNotification          pfnInternalFree;
2029 } VkAllocationCallbacks;
2030
2031 typedef struct VkPhysicalDeviceFeatures {
2032     VkBool32    robustBufferAccess;
2033     VkBool32    fullDrawIndexUint32;
2034     VkBool32    imageCubeArray;
2035     VkBool32    independentBlend;
2036     VkBool32    geometryShader;
2037     VkBool32    tessellationShader;
2038     VkBool32    sampleRateShading;
2039     VkBool32    dualSrcBlend;
2040     VkBool32    logicOp;
2041     VkBool32    multiDrawIndirect;
2042     VkBool32    drawIndirectFirstInstance;
2043     VkBool32    depthClamp;
2044     VkBool32    depthBiasClamp;
2045     VkBool32    fillModeNonSolid;
2046     VkBool32    depthBounds;
2047     VkBool32    wideLines;
2048     VkBool32    largePoints;
2049     VkBool32    alphaToOne;
2050     VkBool32    multiViewport;
2051     VkBool32    samplerAnisotropy;
2052     VkBool32    textureCompressionETC2;
2053     VkBool32    textureCompressionASTC_LDR;
2054     VkBool32    textureCompressionBC;
2055     VkBool32    occlusionQueryPrecise;
2056     VkBool32    pipelineStatisticsQuery;
2057     VkBool32    vertexPipelineStoresAndAtomics;
2058     VkBool32    fragmentStoresAndAtomics;
2059     VkBool32    shaderTessellationAndGeometryPointSize;
2060     VkBool32    shaderImageGatherExtended;
2061     VkBool32    shaderStorageImageExtendedFormats;
2062     VkBool32    shaderStorageImageMultisample;
2063     VkBool32    shaderStorageImageReadWithoutFormat;
2064     VkBool32    shaderStorageImageWriteWithoutFormat;
2065     VkBool32    shaderUniformBufferArrayDynamicIndexing;
2066     VkBool32    shaderSampledImageArrayDynamicIndexing;
2067     VkBool32    shaderStorageBufferArrayDynamicIndexing;
2068     VkBool32    shaderStorageImageArrayDynamicIndexing;
2069     VkBool32    shaderClipDistance;
2070     VkBool32    shaderCullDistance;
2071     VkBool32    shaderFloat64;
2072     VkBool32    shaderInt64;
2073     VkBool32    shaderInt16;
2074     VkBool32    shaderResourceResidency;
2075     VkBool32    shaderResourceMinLod;
2076     VkBool32    sparseBinding;
2077     VkBool32    sparseResidencyBuffer;
2078     VkBool32    sparseResidencyImage2D;
2079     VkBool32    sparseResidencyImage3D;
2080     VkBool32    sparseResidency2Samples;
2081     VkBool32    sparseResidency4Samples;
2082     VkBool32    sparseResidency8Samples;
2083     VkBool32    sparseResidency16Samples;
2084     VkBool32    sparseResidencyAliased;
2085     VkBool32    variableMultisampleRate;
2086     VkBool32    inheritedQueries;
2087 } VkPhysicalDeviceFeatures;
2088
2089 typedef struct VkFormatProperties {
2090     VkFormatFeatureFlags    linearTilingFeatures;
2091     VkFormatFeatureFlags    optimalTilingFeatures;
2092     VkFormatFeatureFlags    bufferFeatures;
2093 } VkFormatProperties;
2094
2095 typedef struct VkExtent3D {
2096     deUint32    width;
2097     deUint32    height;
2098     deUint32    depth;
2099 } VkExtent3D;
2100
2101 typedef struct VkImageFormatProperties {
2102     VkExtent3D            maxExtent;
2103     deUint32              maxMipLevels;
2104     deUint32              maxArrayLayers;
2105     VkSampleCountFlags    sampleCounts;
2106     VkDeviceSize          maxResourceSize;
2107 } VkImageFormatProperties;
2108
2109 typedef struct VkPhysicalDeviceLimits {
2110     deUint32              maxImageDimension1D;
2111     deUint32              maxImageDimension2D;
2112     deUint32              maxImageDimension3D;
2113     deUint32              maxImageDimensionCube;
2114     deUint32              maxImageArrayLayers;
2115     deUint32              maxTexelBufferElements;
2116     deUint32              maxUniformBufferRange;
2117     deUint32              maxStorageBufferRange;
2118     deUint32              maxPushConstantsSize;
2119     deUint32              maxMemoryAllocationCount;
2120     deUint32              maxSamplerAllocationCount;
2121     VkDeviceSize          bufferImageGranularity;
2122     VkDeviceSize          sparseAddressSpaceSize;
2123     deUint32              maxBoundDescriptorSets;
2124     deUint32              maxPerStageDescriptorSamplers;
2125     deUint32              maxPerStageDescriptorUniformBuffers;
2126     deUint32              maxPerStageDescriptorStorageBuffers;
2127     deUint32              maxPerStageDescriptorSampledImages;
2128     deUint32              maxPerStageDescriptorStorageImages;
2129     deUint32              maxPerStageDescriptorInputAttachments;
2130     deUint32              maxPerStageResources;
2131     deUint32              maxDescriptorSetSamplers;
2132     deUint32              maxDescriptorSetUniformBuffers;
2133     deUint32              maxDescriptorSetUniformBuffersDynamic;
2134     deUint32              maxDescriptorSetStorageBuffers;
2135     deUint32              maxDescriptorSetStorageBuffersDynamic;
2136     deUint32              maxDescriptorSetSampledImages;
2137     deUint32              maxDescriptorSetStorageImages;
2138     deUint32              maxDescriptorSetInputAttachments;
2139     deUint32              maxVertexInputAttributes;
2140     deUint32              maxVertexInputBindings;
2141     deUint32              maxVertexInputAttributeOffset;
2142     deUint32              maxVertexInputBindingStride;
2143     deUint32              maxVertexOutputComponents;
2144     deUint32              maxTessellationGenerationLevel;
2145     deUint32              maxTessellationPatchSize;
2146     deUint32              maxTessellationControlPerVertexInputComponents;
2147     deUint32              maxTessellationControlPerVertexOutputComponents;
2148     deUint32              maxTessellationControlPerPatchOutputComponents;
2149     deUint32              maxTessellationControlTotalOutputComponents;
2150     deUint32              maxTessellationEvaluationInputComponents;
2151     deUint32              maxTessellationEvaluationOutputComponents;
2152     deUint32              maxGeometryShaderInvocations;
2153     deUint32              maxGeometryInputComponents;
2154     deUint32              maxGeometryOutputComponents;
2155     deUint32              maxGeometryOutputVertices;
2156     deUint32              maxGeometryTotalOutputComponents;
2157     deUint32              maxFragmentInputComponents;
2158     deUint32              maxFragmentOutputAttachments;
2159     deUint32              maxFragmentDualSrcAttachments;
2160     deUint32              maxFragmentCombinedOutputResources;
2161     deUint32              maxComputeSharedMemorySize;
2162     deUint32              maxComputeWorkGroupCount[3];
2163     deUint32              maxComputeWorkGroupInvocations;
2164     deUint32              maxComputeWorkGroupSize[3];
2165     deUint32              subPixelPrecisionBits;
2166     deUint32              subTexelPrecisionBits;
2167     deUint32              mipmapPrecisionBits;
2168     deUint32              maxDrawIndexedIndexValue;
2169     deUint32              maxDrawIndirectCount;
2170     float                 maxSamplerLodBias;
2171     float                 maxSamplerAnisotropy;
2172     deUint32              maxViewports;
2173     deUint32              maxViewportDimensions[2];
2174     float                 viewportBoundsRange[2];
2175     deUint32              viewportSubPixelBits;
2176     deUintptr                minMemoryMapAlignment;
2177     VkDeviceSize          minTexelBufferOffsetAlignment;
2178     VkDeviceSize          minUniformBufferOffsetAlignment;
2179     VkDeviceSize          minStorageBufferOffsetAlignment;
2180     deInt32               minTexelOffset;
2181     deUint32              maxTexelOffset;
2182     deInt32               minTexelGatherOffset;
2183     deUint32              maxTexelGatherOffset;
2184     float                 minInterpolationOffset;
2185     float                 maxInterpolationOffset;
2186     deUint32              subPixelInterpolationOffsetBits;
2187     deUint32              maxFramebufferWidth;
2188     deUint32              maxFramebufferHeight;
2189     deUint32              maxFramebufferLayers;
2190     VkSampleCountFlags    framebufferColorSampleCounts;
2191     VkSampleCountFlags    framebufferDepthSampleCounts;
2192     VkSampleCountFlags    framebufferStencilSampleCounts;
2193     VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
2194     deUint32              maxColorAttachments;
2195     VkSampleCountFlags    sampledImageColorSampleCounts;
2196     VkSampleCountFlags    sampledImageIntegerSampleCounts;
2197     VkSampleCountFlags    sampledImageDepthSampleCounts;
2198     VkSampleCountFlags    sampledImageStencilSampleCounts;
2199     VkSampleCountFlags    storageImageSampleCounts;
2200     deUint32              maxSampleMaskWords;
2201     VkBool32              timestampComputeAndGraphics;
2202     float                 timestampPeriod;
2203     deUint32              maxClipDistances;
2204     deUint32              maxCullDistances;
2205     deUint32              maxCombinedClipAndCullDistances;
2206     deUint32              discreteQueuePriorities;
2207     float                 pointSizeRange[2];
2208     float                 lineWidthRange[2];
2209     float                 pointSizeGranularity;
2210     float                 lineWidthGranularity;
2211     VkBool32              strictLines;
2212     VkBool32              standardSampleLocations;
2213     VkDeviceSize          optimalBufferCopyOffsetAlignment;
2214     VkDeviceSize          optimalBufferCopyRowPitchAlignment;
2215     VkDeviceSize          nonCoherentAtomSize;
2216 } VkPhysicalDeviceLimits;
2217
2218 typedef struct VkPhysicalDeviceSparseProperties {
2219     VkBool32    residencyStandard2DBlockShape;
2220     VkBool32    residencyStandard2DMultisampleBlockShape;
2221     VkBool32    residencyStandard3DBlockShape;
2222     VkBool32    residencyAlignedMipSize;
2223     VkBool32    residencyNonResidentStrict;
2224 } VkPhysicalDeviceSparseProperties;
2225
2226 typedef struct VkPhysicalDeviceProperties {
2227     deUint32                            apiVersion;
2228     deUint32                            driverVersion;
2229     deUint32                            vendorID;
2230     deUint32                            deviceID;
2231     VkPhysicalDeviceType                deviceType;
2232     char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
2233     deUint8                             pipelineCacheUUID[VK_UUID_SIZE];
2234     VkPhysicalDeviceLimits              limits;
2235     VkPhysicalDeviceSparseProperties    sparseProperties;
2236 } VkPhysicalDeviceProperties;
2237
2238 typedef struct VkQueueFamilyProperties {
2239     VkQueueFlags    queueFlags;
2240     deUint32        queueCount;
2241     deUint32        timestampValidBits;
2242     VkExtent3D      minImageTransferGranularity;
2243 } VkQueueFamilyProperties;
2244
2245 typedef struct VkMemoryType {
2246     VkMemoryPropertyFlags    propertyFlags;
2247     deUint32                 heapIndex;
2248 } VkMemoryType;
2249
2250 typedef struct VkMemoryHeap {
2251     VkDeviceSize         size;
2252     VkMemoryHeapFlags    flags;
2253 } VkMemoryHeap;
2254
2255 typedef struct VkPhysicalDeviceMemoryProperties {
2256     deUint32        memoryTypeCount;
2257     VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
2258     deUint32        memoryHeapCount;
2259     VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
2260 } VkPhysicalDeviceMemoryProperties;
2261
2262 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
2263 typedef struct VkDeviceQueueCreateInfo {
2264     VkStructureType             sType;
2265     const void*                 pNext;
2266     VkDeviceQueueCreateFlags    flags;
2267     deUint32                    queueFamilyIndex;
2268     deUint32                    queueCount;
2269     const float*                pQueuePriorities;
2270 } VkDeviceQueueCreateInfo;
2271
2272 typedef struct VkDeviceCreateInfo {
2273     VkStructureType                    sType;
2274     const void*                        pNext;
2275     VkDeviceCreateFlags                flags;
2276     deUint32                           queueCreateInfoCount;
2277     const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
2278     deUint32                           enabledLayerCount;
2279     const char* const*                 ppEnabledLayerNames;
2280     deUint32                           enabledExtensionCount;
2281     const char* const*                 ppEnabledExtensionNames;
2282     const VkPhysicalDeviceFeatures*    pEnabledFeatures;
2283 } VkDeviceCreateInfo;
2284
2285 typedef struct VkExtensionProperties {
2286     char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
2287     deUint32    specVersion;
2288 } VkExtensionProperties;
2289
2290 typedef struct VkLayerProperties {
2291     char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
2292     deUint32    specVersion;
2293     deUint32    implementationVersion;
2294     char        description[VK_MAX_DESCRIPTION_SIZE];
2295 } VkLayerProperties;
2296
2297 typedef struct VkSubmitInfo {
2298     VkStructureType                sType;
2299     const void*                    pNext;
2300     deUint32                       waitSemaphoreCount;
2301     const VkSemaphore*             pWaitSemaphores;
2302     const VkPipelineStageFlags*    pWaitDstStageMask;
2303     deUint32                       commandBufferCount;
2304     const VkCommandBuffer*         pCommandBuffers;
2305     deUint32                       signalSemaphoreCount;
2306     const VkSemaphore*             pSignalSemaphores;
2307 } VkSubmitInfo;
2308
2309 typedef struct VkMemoryAllocateInfo {
2310     VkStructureType    sType;
2311     const void*        pNext;
2312     VkDeviceSize       allocationSize;
2313     deUint32           memoryTypeIndex;
2314 } VkMemoryAllocateInfo;
2315
2316 typedef struct VkMappedMemoryRange {
2317     VkStructureType    sType;
2318     const void*        pNext;
2319     VkDeviceMemory     memory;
2320     VkDeviceSize       offset;
2321     VkDeviceSize       size;
2322 } VkMappedMemoryRange;
2323
2324 typedef struct VkMemoryRequirements {
2325     VkDeviceSize    size;
2326     VkDeviceSize    alignment;
2327     deUint32        memoryTypeBits;
2328 } VkMemoryRequirements;
2329
2330 typedef struct VkSparseImageFormatProperties {
2331     VkImageAspectFlags          aspectMask;
2332     VkExtent3D                  imageGranularity;
2333     VkSparseImageFormatFlags    flags;
2334 } VkSparseImageFormatProperties;
2335
2336 typedef struct VkSparseImageMemoryRequirements {
2337     VkSparseImageFormatProperties    formatProperties;
2338     deUint32                         imageMipTailFirstLod;
2339     VkDeviceSize                     imageMipTailSize;
2340     VkDeviceSize                     imageMipTailOffset;
2341     VkDeviceSize                     imageMipTailStride;
2342 } VkSparseImageMemoryRequirements;
2343
2344 typedef struct VkSparseMemoryBind {
2345     VkDeviceSize               resourceOffset;
2346     VkDeviceSize               size;
2347     VkDeviceMemory             memory;
2348     VkDeviceSize               memoryOffset;
2349     VkSparseMemoryBindFlags    flags;
2350 } VkSparseMemoryBind;
2351
2352 typedef struct VkSparseBufferMemoryBindInfo {
2353     VkBuffer                     buffer;
2354     deUint32                     bindCount;
2355     const VkSparseMemoryBind*    pBinds;
2356 } VkSparseBufferMemoryBindInfo;
2357
2358 typedef struct VkSparseImageOpaqueMemoryBindInfo {
2359     VkImage                      image;
2360     deUint32                     bindCount;
2361     const VkSparseMemoryBind*    pBinds;
2362 } VkSparseImageOpaqueMemoryBindInfo;
2363
2364 typedef struct VkImageSubresource {
2365     VkImageAspectFlags    aspectMask;
2366     deUint32              mipLevel;
2367     deUint32              arrayLayer;
2368 } VkImageSubresource;
2369
2370 typedef struct VkOffset3D {
2371     deInt32    x;
2372     deInt32    y;
2373     deInt32    z;
2374 } VkOffset3D;
2375
2376 typedef struct VkSparseImageMemoryBind {
2377     VkImageSubresource         subresource;
2378     VkOffset3D                 offset;
2379     VkExtent3D                 extent;
2380     VkDeviceMemory             memory;
2381     VkDeviceSize               memoryOffset;
2382     VkSparseMemoryBindFlags    flags;
2383 } VkSparseImageMemoryBind;
2384
2385 typedef struct VkSparseImageMemoryBindInfo {
2386     VkImage                           image;
2387     deUint32                          bindCount;
2388     const VkSparseImageMemoryBind*    pBinds;
2389 } VkSparseImageMemoryBindInfo;
2390
2391 typedef struct VkBindSparseInfo {
2392     VkStructureType                             sType;
2393     const void*                                 pNext;
2394     deUint32                                    waitSemaphoreCount;
2395     const VkSemaphore*                          pWaitSemaphores;
2396     deUint32                                    bufferBindCount;
2397     const VkSparseBufferMemoryBindInfo*         pBufferBinds;
2398     deUint32                                    imageOpaqueBindCount;
2399     const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
2400     deUint32                                    imageBindCount;
2401     const VkSparseImageMemoryBindInfo*          pImageBinds;
2402     deUint32                                    signalSemaphoreCount;
2403     const VkSemaphore*                          pSignalSemaphores;
2404 } VkBindSparseInfo;
2405
2406 typedef struct VkFenceCreateInfo {
2407     VkStructureType       sType;
2408     const void*           pNext;
2409     VkFenceCreateFlags    flags;
2410 } VkFenceCreateInfo;
2411
2412 typedef struct VkSemaphoreCreateInfo {
2413     VkStructureType           sType;
2414     const void*               pNext;
2415     VkSemaphoreCreateFlags    flags;
2416 } VkSemaphoreCreateInfo;
2417
2418 typedef struct VkEventCreateInfo {
2419     VkStructureType       sType;
2420     const void*           pNext;
2421     VkEventCreateFlags    flags;
2422 } VkEventCreateInfo;
2423
2424 typedef struct VkQueryPoolCreateInfo {
2425     VkStructureType                  sType;
2426     const void*                      pNext;
2427     VkQueryPoolCreateFlags           flags;
2428     VkQueryType                      queryType;
2429     deUint32                         queryCount;
2430     VkQueryPipelineStatisticFlags    pipelineStatistics;
2431 } VkQueryPoolCreateInfo;
2432
2433 typedef struct VkBufferCreateInfo {
2434     VkStructureType        sType;
2435     const void*            pNext;
2436     VkBufferCreateFlags    flags;
2437     VkDeviceSize           size;
2438     VkBufferUsageFlags     usage;
2439     VkSharingMode          sharingMode;
2440     deUint32               queueFamilyIndexCount;
2441     const deUint32*        pQueueFamilyIndices;
2442 } VkBufferCreateInfo;
2443
2444 typedef struct VkBufferViewCreateInfo {
2445     VkStructureType            sType;
2446     const void*                pNext;
2447     VkBufferViewCreateFlags    flags;
2448     VkBuffer                   buffer;
2449     VkFormat                   format;
2450     VkDeviceSize               offset;
2451     VkDeviceSize               range;
2452 } VkBufferViewCreateInfo;
2453
2454 typedef struct VkImageCreateInfo {
2455     VkStructureType          sType;
2456     const void*              pNext;
2457     VkImageCreateFlags       flags;
2458     VkImageType              imageType;
2459     VkFormat                 format;
2460     VkExtent3D               extent;
2461     deUint32                 mipLevels;
2462     deUint32                 arrayLayers;
2463     VkSampleCountFlagBits    samples;
2464     VkImageTiling            tiling;
2465     VkImageUsageFlags        usage;
2466     VkSharingMode            sharingMode;
2467     deUint32                 queueFamilyIndexCount;
2468     const deUint32*          pQueueFamilyIndices;
2469     VkImageLayout            initialLayout;
2470 } VkImageCreateInfo;
2471
2472 typedef struct VkSubresourceLayout {
2473     VkDeviceSize    offset;
2474     VkDeviceSize    size;
2475     VkDeviceSize    rowPitch;
2476     VkDeviceSize    arrayPitch;
2477     VkDeviceSize    depthPitch;
2478 } VkSubresourceLayout;
2479
2480 typedef struct VkComponentMapping {
2481     VkComponentSwizzle    r;
2482     VkComponentSwizzle    g;
2483     VkComponentSwizzle    b;
2484     VkComponentSwizzle    a;
2485 } VkComponentMapping;
2486
2487 typedef struct VkImageSubresourceRange {
2488     VkImageAspectFlags    aspectMask;
2489     deUint32              baseMipLevel;
2490     deUint32              levelCount;
2491     deUint32              baseArrayLayer;
2492     deUint32              layerCount;
2493 } VkImageSubresourceRange;
2494
2495 typedef struct VkImageViewCreateInfo {
2496     VkStructureType            sType;
2497     const void*                pNext;
2498     VkImageViewCreateFlags     flags;
2499     VkImage                    image;
2500     VkImageViewType            viewType;
2501     VkFormat                   format;
2502     VkComponentMapping         components;
2503     VkImageSubresourceRange    subresourceRange;
2504 } VkImageViewCreateInfo;
2505
2506 typedef struct VkShaderModuleCreateInfo {
2507     VkStructureType              sType;
2508     const void*                  pNext;
2509     VkShaderModuleCreateFlags    flags;
2510     deUintptr                       codeSize;
2511     const deUint32*              pCode;
2512 } VkShaderModuleCreateInfo;
2513
2514 typedef struct VkPipelineCacheCreateInfo {
2515     VkStructureType               sType;
2516     const void*                   pNext;
2517     VkPipelineCacheCreateFlags    flags;
2518     deUintptr                        initialDataSize;
2519     const void*                   pInitialData;
2520 } VkPipelineCacheCreateInfo;
2521
2522 typedef struct VkSpecializationMapEntry {
2523     deUint32    constantID;
2524     deUint32    offset;
2525     deUintptr      size;
2526 } VkSpecializationMapEntry;
2527
2528 typedef struct VkSpecializationInfo {
2529     deUint32                           mapEntryCount;
2530     const VkSpecializationMapEntry*    pMapEntries;
2531     deUintptr                             dataSize;
2532     const void*                        pData;
2533 } VkSpecializationInfo;
2534
2535 typedef struct VkPipelineShaderStageCreateInfo {
2536     VkStructureType                     sType;
2537     const void*                         pNext;
2538     VkPipelineShaderStageCreateFlags    flags;
2539     VkShaderStageFlagBits               stage;
2540     VkShaderModule                      module;
2541     const char*                         pName;
2542     const VkSpecializationInfo*         pSpecializationInfo;
2543 } VkPipelineShaderStageCreateInfo;
2544
2545 typedef struct VkVertexInputBindingDescription {
2546     deUint32             binding;
2547     deUint32             stride;
2548     VkVertexInputRate    inputRate;
2549 } VkVertexInputBindingDescription;
2550
2551 typedef struct VkVertexInputAttributeDescription {
2552     deUint32    location;
2553     deUint32    binding;
2554     VkFormat    format;
2555     deUint32    offset;
2556 } VkVertexInputAttributeDescription;
2557
2558 typedef struct VkPipelineVertexInputStateCreateInfo {
2559     VkStructureType                             sType;
2560     const void*                                 pNext;
2561     VkPipelineVertexInputStateCreateFlags       flags;
2562     deUint32                                    vertexBindingDescriptionCount;
2563     const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
2564     deUint32                                    vertexAttributeDescriptionCount;
2565     const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
2566 } VkPipelineVertexInputStateCreateInfo;
2567
2568 typedef struct VkPipelineInputAssemblyStateCreateInfo {
2569     VkStructureType                            sType;
2570     const void*                                pNext;
2571     VkPipelineInputAssemblyStateCreateFlags    flags;
2572     VkPrimitiveTopology                        topology;
2573     VkBool32                                   primitiveRestartEnable;
2574 } VkPipelineInputAssemblyStateCreateInfo;
2575
2576 typedef struct VkPipelineTessellationStateCreateInfo {
2577     VkStructureType                           sType;
2578     const void*                               pNext;
2579     VkPipelineTessellationStateCreateFlags    flags;
2580     deUint32                                  patchControlPoints;
2581 } VkPipelineTessellationStateCreateInfo;
2582
2583 typedef struct VkViewport {
2584     float    x;
2585     float    y;
2586     float    width;
2587     float    height;
2588     float    minDepth;
2589     float    maxDepth;
2590 } VkViewport;
2591
2592 typedef struct VkOffset2D {
2593     deInt32    x;
2594     deInt32    y;
2595 } VkOffset2D;
2596
2597 typedef struct VkExtent2D {
2598     deUint32    width;
2599     deUint32    height;
2600 } VkExtent2D;
2601
2602 typedef struct VkRect2D {
2603     VkOffset2D    offset;
2604     VkExtent2D    extent;
2605 } VkRect2D;
2606
2607 typedef struct VkPipelineViewportStateCreateInfo {
2608     VkStructureType                       sType;
2609     const void*                           pNext;
2610     VkPipelineViewportStateCreateFlags    flags;
2611     deUint32                              viewportCount;
2612     const VkViewport*                     pViewports;
2613     deUint32                              scissorCount;
2614     const VkRect2D*                       pScissors;
2615 } VkPipelineViewportStateCreateInfo;
2616
2617 typedef struct VkPipelineRasterizationStateCreateInfo {
2618     VkStructureType                            sType;
2619     const void*                                pNext;
2620     VkPipelineRasterizationStateCreateFlags    flags;
2621     VkBool32                                   depthClampEnable;
2622     VkBool32                                   rasterizerDiscardEnable;
2623     VkPolygonMode                              polygonMode;
2624     VkCullModeFlags                            cullMode;
2625     VkFrontFace                                frontFace;
2626     VkBool32                                   depthBiasEnable;
2627     float                                      depthBiasConstantFactor;
2628     float                                      depthBiasClamp;
2629     float                                      depthBiasSlopeFactor;
2630     float                                      lineWidth;
2631 } VkPipelineRasterizationStateCreateInfo;
2632
2633 typedef struct VkPipelineMultisampleStateCreateInfo {
2634     VkStructureType                          sType;
2635     const void*                              pNext;
2636     VkPipelineMultisampleStateCreateFlags    flags;
2637     VkSampleCountFlagBits                    rasterizationSamples;
2638     VkBool32                                 sampleShadingEnable;
2639     float                                    minSampleShading;
2640     const VkSampleMask*                      pSampleMask;
2641     VkBool32                                 alphaToCoverageEnable;
2642     VkBool32                                 alphaToOneEnable;
2643 } VkPipelineMultisampleStateCreateInfo;
2644
2645 typedef struct VkStencilOpState {
2646     VkStencilOp    failOp;
2647     VkStencilOp    passOp;
2648     VkStencilOp    depthFailOp;
2649     VkCompareOp    compareOp;
2650     deUint32       compareMask;
2651     deUint32       writeMask;
2652     deUint32       reference;
2653 } VkStencilOpState;
2654
2655 typedef struct VkPipelineDepthStencilStateCreateInfo {
2656     VkStructureType                           sType;
2657     const void*                               pNext;
2658     VkPipelineDepthStencilStateCreateFlags    flags;
2659     VkBool32                                  depthTestEnable;
2660     VkBool32                                  depthWriteEnable;
2661     VkCompareOp                               depthCompareOp;
2662     VkBool32                                  depthBoundsTestEnable;
2663     VkBool32                                  stencilTestEnable;
2664     VkStencilOpState                          front;
2665     VkStencilOpState                          back;
2666     float                                     minDepthBounds;
2667     float                                     maxDepthBounds;
2668 } VkPipelineDepthStencilStateCreateInfo;
2669
2670 typedef struct VkPipelineColorBlendAttachmentState {
2671     VkBool32                 blendEnable;
2672     VkBlendFactor            srcColorBlendFactor;
2673     VkBlendFactor            dstColorBlendFactor;
2674     VkBlendOp                colorBlendOp;
2675     VkBlendFactor            srcAlphaBlendFactor;
2676     VkBlendFactor            dstAlphaBlendFactor;
2677     VkBlendOp                alphaBlendOp;
2678     VkColorComponentFlags    colorWriteMask;
2679 } VkPipelineColorBlendAttachmentState;
2680
2681 typedef struct VkPipelineColorBlendStateCreateInfo {
2682     VkStructureType                               sType;
2683     const void*                                   pNext;
2684     VkPipelineColorBlendStateCreateFlags          flags;
2685     VkBool32                                      logicOpEnable;
2686     VkLogicOp                                     logicOp;
2687     deUint32                                      attachmentCount;
2688     const VkPipelineColorBlendAttachmentState*    pAttachments;
2689     float                                         blendConstants[4];
2690 } VkPipelineColorBlendStateCreateInfo;
2691
2692 typedef struct VkPipelineDynamicStateCreateInfo {
2693     VkStructureType                      sType;
2694     const void*                          pNext;
2695     VkPipelineDynamicStateCreateFlags    flags;
2696     deUint32                             dynamicStateCount;
2697     const VkDynamicState*                pDynamicStates;
2698 } VkPipelineDynamicStateCreateInfo;
2699
2700 typedef struct VkGraphicsPipelineCreateInfo {
2701     VkStructureType                                  sType;
2702     const void*                                      pNext;
2703     VkPipelineCreateFlags                            flags;
2704     deUint32                                         stageCount;
2705     const VkPipelineShaderStageCreateInfo*           pStages;
2706     const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
2707     const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
2708     const VkPipelineTessellationStateCreateInfo*     pTessellationState;
2709     const VkPipelineViewportStateCreateInfo*         pViewportState;
2710     const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
2711     const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
2712     const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
2713     const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
2714     const VkPipelineDynamicStateCreateInfo*          pDynamicState;
2715     VkPipelineLayout                                 layout;
2716     VkRenderPass                                     renderPass;
2717     deUint32                                         subpass;
2718     VkPipeline                                       basePipelineHandle;
2719     deInt32                                          basePipelineIndex;
2720 } VkGraphicsPipelineCreateInfo;
2721
2722 typedef struct VkComputePipelineCreateInfo {
2723     VkStructureType                    sType;
2724     const void*                        pNext;
2725     VkPipelineCreateFlags              flags;
2726     VkPipelineShaderStageCreateInfo    stage;
2727     VkPipelineLayout                   layout;
2728     VkPipeline                         basePipelineHandle;
2729     deInt32                            basePipelineIndex;
2730 } VkComputePipelineCreateInfo;
2731
2732 typedef struct VkPushConstantRange {
2733     VkShaderStageFlags    stageFlags;
2734     deUint32              offset;
2735     deUint32              size;
2736 } VkPushConstantRange;
2737
2738 typedef struct VkPipelineLayoutCreateInfo {
2739     VkStructureType                 sType;
2740     const void*                     pNext;
2741     VkPipelineLayoutCreateFlags     flags;
2742     deUint32                        setLayoutCount;
2743     const VkDescriptorSetLayout*    pSetLayouts;
2744     deUint32                        pushConstantRangeCount;
2745     const VkPushConstantRange*      pPushConstantRanges;
2746 } VkPipelineLayoutCreateInfo;
2747
2748 typedef struct VkSamplerCreateInfo {
2749     VkStructureType         sType;
2750     const void*             pNext;
2751     VkSamplerCreateFlags    flags;
2752     VkFilter                magFilter;
2753     VkFilter                minFilter;
2754     VkSamplerMipmapMode     mipmapMode;
2755     VkSamplerAddressMode    addressModeU;
2756     VkSamplerAddressMode    addressModeV;
2757     VkSamplerAddressMode    addressModeW;
2758     float                   mipLodBias;
2759     VkBool32                anisotropyEnable;
2760     float                   maxAnisotropy;
2761     VkBool32                compareEnable;
2762     VkCompareOp             compareOp;
2763     float                   minLod;
2764     float                   maxLod;
2765     VkBorderColor           borderColor;
2766     VkBool32                unnormalizedCoordinates;
2767 } VkSamplerCreateInfo;
2768
2769 typedef struct VkDescriptorSetLayoutBinding {
2770     deUint32              binding;
2771     VkDescriptorType      descriptorType;
2772     deUint32              descriptorCount;
2773     VkShaderStageFlags    stageFlags;
2774     const VkSampler*      pImmutableSamplers;
2775 } VkDescriptorSetLayoutBinding;
2776
2777 typedef struct VkDescriptorSetLayoutCreateInfo {
2778     VkStructureType                        sType;
2779     const void*                            pNext;
2780     VkDescriptorSetLayoutCreateFlags       flags;
2781     deUint32                               bindingCount;
2782     const VkDescriptorSetLayoutBinding*    pBindings;
2783 } VkDescriptorSetLayoutCreateInfo;
2784
2785 typedef struct VkDescriptorPoolSize {
2786     VkDescriptorType    type;
2787     deUint32            descriptorCount;
2788 } VkDescriptorPoolSize;
2789
2790 typedef struct VkDescriptorPoolCreateInfo {
2791     VkStructureType                sType;
2792     const void*                    pNext;
2793     VkDescriptorPoolCreateFlags    flags;
2794     deUint32                       maxSets;
2795     deUint32                       poolSizeCount;
2796     const VkDescriptorPoolSize*    pPoolSizes;
2797 } VkDescriptorPoolCreateInfo;
2798
2799 typedef struct VkDescriptorSetAllocateInfo {
2800     VkStructureType                 sType;
2801     const void*                     pNext;
2802     VkDescriptorPool                descriptorPool;
2803     deUint32                        descriptorSetCount;
2804     const VkDescriptorSetLayout*    pSetLayouts;
2805 } VkDescriptorSetAllocateInfo;
2806
2807 typedef struct VkDescriptorImageInfo {
2808     VkSampler        sampler;
2809     VkImageView      imageView;
2810     VkImageLayout    imageLayout;
2811 } VkDescriptorImageInfo;
2812
2813 typedef struct VkDescriptorBufferInfo {
2814     VkBuffer        buffer;
2815     VkDeviceSize    offset;
2816     VkDeviceSize    range;
2817 } VkDescriptorBufferInfo;
2818
2819 typedef struct VkWriteDescriptorSet {
2820     VkStructureType                  sType;
2821     const void*                      pNext;
2822     VkDescriptorSet                  dstSet;
2823     deUint32                         dstBinding;
2824     deUint32                         dstArrayElement;
2825     deUint32                         descriptorCount;
2826     VkDescriptorType                 descriptorType;
2827     const VkDescriptorImageInfo*     pImageInfo;
2828     const VkDescriptorBufferInfo*    pBufferInfo;
2829     const VkBufferView*              pTexelBufferView;
2830 } VkWriteDescriptorSet;
2831
2832 typedef struct VkCopyDescriptorSet {
2833     VkStructureType    sType;
2834     const void*        pNext;
2835     VkDescriptorSet    srcSet;
2836     deUint32           srcBinding;
2837     deUint32           srcArrayElement;
2838     VkDescriptorSet    dstSet;
2839     deUint32           dstBinding;
2840     deUint32           dstArrayElement;
2841     deUint32           descriptorCount;
2842 } VkCopyDescriptorSet;
2843
2844 typedef struct VkFramebufferCreateInfo {
2845     VkStructureType             sType;
2846     const void*                 pNext;
2847     VkFramebufferCreateFlags    flags;
2848     VkRenderPass                renderPass;
2849     deUint32                    attachmentCount;
2850     const VkImageView*          pAttachments;
2851     deUint32                    width;
2852     deUint32                    height;
2853     deUint32                    layers;
2854 } VkFramebufferCreateInfo;
2855
2856 typedef struct VkAttachmentDescription {
2857     VkAttachmentDescriptionFlags    flags;
2858     VkFormat                        format;
2859     VkSampleCountFlagBits           samples;
2860     VkAttachmentLoadOp              loadOp;
2861     VkAttachmentStoreOp             storeOp;
2862     VkAttachmentLoadOp              stencilLoadOp;
2863     VkAttachmentStoreOp             stencilStoreOp;
2864     VkImageLayout                   initialLayout;
2865     VkImageLayout                   finalLayout;
2866 } VkAttachmentDescription;
2867
2868 typedef struct VkAttachmentReference {
2869     deUint32         attachment;
2870     VkImageLayout    layout;
2871 } VkAttachmentReference;
2872
2873 typedef struct VkSubpassDescription {
2874     VkSubpassDescriptionFlags       flags;
2875     VkPipelineBindPoint             pipelineBindPoint;
2876     deUint32                        inputAttachmentCount;
2877     const VkAttachmentReference*    pInputAttachments;
2878     deUint32                        colorAttachmentCount;
2879     const VkAttachmentReference*    pColorAttachments;
2880     const VkAttachmentReference*    pResolveAttachments;
2881     const VkAttachmentReference*    pDepthStencilAttachment;
2882     deUint32                        preserveAttachmentCount;
2883     const deUint32*                 pPreserveAttachments;
2884 } VkSubpassDescription;
2885
2886 typedef struct VkSubpassDependency {
2887     deUint32                srcSubpass;
2888     deUint32                dstSubpass;
2889     VkPipelineStageFlags    srcStageMask;
2890     VkPipelineStageFlags    dstStageMask;
2891     VkAccessFlags           srcAccessMask;
2892     VkAccessFlags           dstAccessMask;
2893     VkDependencyFlags       dependencyFlags;
2894 } VkSubpassDependency;
2895
2896 typedef struct VkRenderPassCreateInfo {
2897     VkStructureType                   sType;
2898     const void*                       pNext;
2899     VkRenderPassCreateFlags           flags;
2900     deUint32                          attachmentCount;
2901     const VkAttachmentDescription*    pAttachments;
2902     deUint32                          subpassCount;
2903     const VkSubpassDescription*       pSubpasses;
2904     deUint32                          dependencyCount;
2905     const VkSubpassDependency*        pDependencies;
2906 } VkRenderPassCreateInfo;
2907
2908 typedef struct VkCommandPoolCreateInfo {
2909     VkStructureType             sType;
2910     const void*                 pNext;
2911     VkCommandPoolCreateFlags    flags;
2912     deUint32                    queueFamilyIndex;
2913 } VkCommandPoolCreateInfo;
2914
2915 typedef struct VkCommandBufferAllocateInfo {
2916     VkStructureType         sType;
2917     const void*             pNext;
2918     VkCommandPool           commandPool;
2919     VkCommandBufferLevel    level;
2920     deUint32                commandBufferCount;
2921 } VkCommandBufferAllocateInfo;
2922
2923 typedef struct VkCommandBufferInheritanceInfo {
2924     VkStructureType                  sType;
2925     const void*                      pNext;
2926     VkRenderPass                     renderPass;
2927     deUint32                         subpass;
2928     VkFramebuffer                    framebuffer;
2929     VkBool32                         occlusionQueryEnable;
2930     VkQueryControlFlags              queryFlags;
2931     VkQueryPipelineStatisticFlags    pipelineStatistics;
2932 } VkCommandBufferInheritanceInfo;
2933
2934 typedef struct VkCommandBufferBeginInfo {
2935     VkStructureType                          sType;
2936     const void*                              pNext;
2937     VkCommandBufferUsageFlags                flags;
2938     const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
2939 } VkCommandBufferBeginInfo;
2940
2941 typedef struct VkBufferCopy {
2942     VkDeviceSize    srcOffset;
2943     VkDeviceSize    dstOffset;
2944     VkDeviceSize    size;
2945 } VkBufferCopy;
2946
2947 typedef struct VkImageSubresourceLayers {
2948     VkImageAspectFlags    aspectMask;
2949     deUint32              mipLevel;
2950     deUint32              baseArrayLayer;
2951     deUint32              layerCount;
2952 } VkImageSubresourceLayers;
2953
2954 typedef struct VkImageCopy {
2955     VkImageSubresourceLayers    srcSubresource;
2956     VkOffset3D                  srcOffset;
2957     VkImageSubresourceLayers    dstSubresource;
2958     VkOffset3D                  dstOffset;
2959     VkExtent3D                  extent;
2960 } VkImageCopy;
2961
2962 typedef struct VkImageBlit {
2963     VkImageSubresourceLayers    srcSubresource;
2964     VkOffset3D                  srcOffsets[2];
2965     VkImageSubresourceLayers    dstSubresource;
2966     VkOffset3D                  dstOffsets[2];
2967 } VkImageBlit;
2968
2969 typedef struct VkBufferImageCopy {
2970     VkDeviceSize                bufferOffset;
2971     deUint32                    bufferRowLength;
2972     deUint32                    bufferImageHeight;
2973     VkImageSubresourceLayers    imageSubresource;
2974     VkOffset3D                  imageOffset;
2975     VkExtent3D                  imageExtent;
2976 } VkBufferImageCopy;
2977
2978 typedef union VkClearColorValue {
2979     float       float32[4];
2980     deInt32     int32[4];
2981     deUint32    uint32[4];
2982 } VkClearColorValue;
2983
2984 typedef struct VkClearDepthStencilValue {
2985     float       depth;
2986     deUint32    stencil;
2987 } VkClearDepthStencilValue;
2988
2989 typedef union VkClearValue {
2990     VkClearColorValue           color;
2991     VkClearDepthStencilValue    depthStencil;
2992 } VkClearValue;
2993
2994 typedef struct VkClearAttachment {
2995     VkImageAspectFlags    aspectMask;
2996     deUint32              colorAttachment;
2997     VkClearValue          clearValue;
2998 } VkClearAttachment;
2999
3000 typedef struct VkClearRect {
3001     VkRect2D    rect;
3002     deUint32    baseArrayLayer;
3003     deUint32    layerCount;
3004 } VkClearRect;
3005
3006 typedef struct VkImageResolve {
3007     VkImageSubresourceLayers    srcSubresource;
3008     VkOffset3D                  srcOffset;
3009     VkImageSubresourceLayers    dstSubresource;
3010     VkOffset3D                  dstOffset;
3011     VkExtent3D                  extent;
3012 } VkImageResolve;
3013
3014 typedef struct VkMemoryBarrier {
3015     VkStructureType    sType;
3016     const void*        pNext;
3017     VkAccessFlags      srcAccessMask;
3018     VkAccessFlags      dstAccessMask;
3019 } VkMemoryBarrier;
3020
3021 typedef struct VkBufferMemoryBarrier {
3022     VkStructureType    sType;
3023     const void*        pNext;
3024     VkAccessFlags      srcAccessMask;
3025     VkAccessFlags      dstAccessMask;
3026     deUint32           srcQueueFamilyIndex;
3027     deUint32           dstQueueFamilyIndex;
3028     VkBuffer           buffer;
3029     VkDeviceSize       offset;
3030     VkDeviceSize       size;
3031 } VkBufferMemoryBarrier;
3032
3033 typedef struct VkImageMemoryBarrier {
3034     VkStructureType            sType;
3035     const void*                pNext;
3036     VkAccessFlags              srcAccessMask;
3037     VkAccessFlags              dstAccessMask;
3038     VkImageLayout              oldLayout;
3039     VkImageLayout              newLayout;
3040     deUint32                   srcQueueFamilyIndex;
3041     deUint32                   dstQueueFamilyIndex;
3042     VkImage                    image;
3043     VkImageSubresourceRange    subresourceRange;
3044 } VkImageMemoryBarrier;
3045
3046 typedef struct VkRenderPassBeginInfo {
3047     VkStructureType        sType;
3048     const void*            pNext;
3049     VkRenderPass           renderPass;
3050     VkFramebuffer          framebuffer;
3051     VkRect2D               renderArea;
3052     deUint32               clearValueCount;
3053     const VkClearValue*    pClearValues;
3054 } VkRenderPassBeginInfo;
3055
3056 typedef struct VkDispatchIndirectCommand {
3057     deUint32    x;
3058     deUint32    y;
3059     deUint32    z;
3060 } VkDispatchIndirectCommand;
3061
3062 typedef struct VkDrawIndexedIndirectCommand {
3063     deUint32    indexCount;
3064     deUint32    instanceCount;
3065     deUint32    firstIndex;
3066     deInt32     vertexOffset;
3067     deUint32    firstInstance;
3068 } VkDrawIndexedIndirectCommand;
3069
3070 typedef struct VkDrawIndirectCommand {
3071     deUint32    vertexCount;
3072     deUint32    instanceCount;
3073     deUint32    firstVertex;
3074     deUint32    firstInstance;
3075 } VkDrawIndirectCommand;
3076
3077 typedef struct VkBaseOutStructure {
3078     VkStructureType               sType;
3079     struct VkBaseOutStructure*    pNext;
3080 } VkBaseOutStructure;
3081
3082 typedef struct VkBaseInStructure {
3083     VkStructureType                    sType;
3084     const struct VkBaseInStructure*    pNext;
3085 } VkBaseInStructure;
3086
3087 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
3088 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
3089 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, deUint32* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
3090 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
3091 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
3092 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
3093 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
3094 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
3095 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
3096 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
3097 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
3098 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
3099 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
3100 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties);
3101 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties);
3102 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(deUint32* pPropertyCount, VkLayerProperties* pProperties);
3103 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkLayerProperties* pProperties);
3104 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue);
3105 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
3106 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
3107 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
3108 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
3109 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
3110 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
3111 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
3112 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
3113 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
3114 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
3115 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
3116 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
3117 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
3118 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
3119 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
3120 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, deUint32* pPropertyCount, VkSparseImageFormatProperties* pProperties);
3121 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
3122 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
3123 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
3124 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, deUint32 fenceCount, const VkFence* pFences);
3125 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
3126 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout);
3127 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
3128 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
3129 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
3130 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
3131 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
3132 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
3133 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
3134 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
3135 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
3136 typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
3137 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
3138 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
3139 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
3140 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
3141 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
3142 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
3143 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
3144 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
3145 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
3146 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
3147 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
3148 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
3149 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
3150 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData);
3151 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches);
3152 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
3153 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
3154 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
3155 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
3156 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
3157 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
3158 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
3159 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
3160 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
3161 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
3162 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
3163 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
3164 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
3165 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
3166 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
3167 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
3168 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
3169 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
3170 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
3171 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
3172 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
3173 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
3174 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
3175 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
3176 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers);
3177 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
3178 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
3179 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
3180 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
3181 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewport* pViewports);
3182 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, deUint32 firstScissor, deUint32 scissorCount, const VkRect2D* pScissors);
3183 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
3184 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
3185 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
3186 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
3187 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask);
3188 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask);
3189 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference);
3190 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets);
3191 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
3192 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
3193 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance);
3194 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance);
3195 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride);
3196 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride);
3197 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
3198 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
3199 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions);
3200 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions);
3201 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter);
3202 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions);
3203 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions);
3204 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
3205 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data);
3206 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges);
3207 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges);
3208 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects);
3209 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions);
3210 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
3211 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
3212 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
3213 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
3214 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags);
3215 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query);
3216 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount);
3217 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 query);
3218 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
3219 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues);
3220 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
3221 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
3222 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
3223 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers);
3224
3225 #ifndef VK_NO_PROTOTYPES
3226 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
3227     const VkInstanceCreateInfo*                 pCreateInfo,
3228     const VkAllocationCallbacks*                pAllocator,
3229     VkInstance*                                 pInstance);
3230
3231 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
3232     VkInstance                                  instance,
3233     const VkAllocationCallbacks*                pAllocator);
3234
3235 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
3236     VkInstance                                  instance,
3237     deUint32*                                   pPhysicalDeviceCount,
3238     VkPhysicalDevice*                           pPhysicalDevices);
3239
3240 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
3241     VkPhysicalDevice                            physicalDevice,
3242     VkPhysicalDeviceFeatures*                   pFeatures);
3243
3244 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
3245     VkPhysicalDevice                            physicalDevice,
3246     VkFormat                                    format,
3247     VkFormatProperties*                         pFormatProperties);
3248
3249 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
3250     VkPhysicalDevice                            physicalDevice,
3251     VkFormat                                    format,
3252     VkImageType                                 type,
3253     VkImageTiling                               tiling,
3254     VkImageUsageFlags                           usage,
3255     VkImageCreateFlags                          flags,
3256     VkImageFormatProperties*                    pImageFormatProperties);
3257
3258 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
3259     VkPhysicalDevice                            physicalDevice,
3260     VkPhysicalDeviceProperties*                 pProperties);
3261
3262 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
3263     VkPhysicalDevice                            physicalDevice,
3264     deUint32*                                   pQueueFamilyPropertyCount,
3265     VkQueueFamilyProperties*                    pQueueFamilyProperties);
3266
3267 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
3268     VkPhysicalDevice                            physicalDevice,
3269     VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
3270
3271 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
3272     VkInstance                                  instance,
3273     const char*                                 pName);
3274
3275 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
3276     VkDevice                                    device,
3277     const char*                                 pName);
3278
3279 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
3280     VkPhysicalDevice                            physicalDevice,
3281     const VkDeviceCreateInfo*                   pCreateInfo,
3282     const VkAllocationCallbacks*                pAllocator,
3283     VkDevice*                                   pDevice);
3284
3285 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
3286     VkDevice                                    device,
3287     const VkAllocationCallbacks*                pAllocator);
3288
3289 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
3290     const char*                                 pLayerName,
3291     deUint32*                                   pPropertyCount,
3292     VkExtensionProperties*                      pProperties);
3293
3294 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
3295     VkPhysicalDevice                            physicalDevice,
3296     const char*                                 pLayerName,
3297     deUint32*                                   pPropertyCount,
3298     VkExtensionProperties*                      pProperties);
3299
3300 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
3301     deUint32*                                   pPropertyCount,
3302     VkLayerProperties*                          pProperties);
3303
3304 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
3305     VkPhysicalDevice                            physicalDevice,
3306     deUint32*                                   pPropertyCount,
3307     VkLayerProperties*                          pProperties);
3308
3309 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
3310     VkDevice                                    device,
3311     deUint32                                    queueFamilyIndex,
3312     deUint32                                    queueIndex,
3313     VkQueue*                                    pQueue);
3314
3315 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
3316     VkQueue                                     queue,
3317     deUint32                                    submitCount,
3318     const VkSubmitInfo*                         pSubmits,
3319     VkFence                                     fence);
3320
3321 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
3322     VkQueue                                     queue);
3323
3324 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
3325     VkDevice                                    device);
3326
3327 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
3328     VkDevice                                    device,
3329     const VkMemoryAllocateInfo*                 pAllocateInfo,
3330     const VkAllocationCallbacks*                pAllocator,
3331     VkDeviceMemory*                             pMemory);
3332
3333 VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
3334     VkDevice                                    device,
3335     VkDeviceMemory                              memory,
3336     const VkAllocationCallbacks*                pAllocator);
3337
3338 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
3339     VkDevice                                    device,
3340     VkDeviceMemory                              memory,
3341     VkDeviceSize                                offset,
3342     VkDeviceSize                                size,
3343     VkMemoryMapFlags                            flags,
3344     void**                                      ppData);
3345
3346 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
3347     VkDevice                                    device,
3348     VkDeviceMemory                              memory);
3349
3350 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
3351     VkDevice                                    device,
3352     deUint32                                    memoryRangeCount,
3353     const VkMappedMemoryRange*                  pMemoryRanges);
3354
3355 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
3356     VkDevice                                    device,
3357     deUint32                                    memoryRangeCount,
3358     const VkMappedMemoryRange*                  pMemoryRanges);
3359
3360 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
3361     VkDevice                                    device,
3362     VkDeviceMemory                              memory,
3363     VkDeviceSize*                               pCommittedMemoryInBytes);
3364
3365 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
3366     VkDevice                                    device,
3367     VkBuffer                                    buffer,
3368     VkDeviceMemory                              memory,
3369     VkDeviceSize                                memoryOffset);
3370
3371 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
3372     VkDevice                                    device,
3373     VkImage                                     image,
3374     VkDeviceMemory                              memory,
3375     VkDeviceSize                                memoryOffset);
3376
3377 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
3378     VkDevice                                    device,
3379     VkBuffer                                    buffer,
3380     VkMemoryRequirements*                       pMemoryRequirements);
3381
3382 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
3383     VkDevice                                    device,
3384     VkImage                                     image,
3385     VkMemoryRequirements*                       pMemoryRequirements);
3386
3387 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
3388     VkDevice                                    device,
3389     VkImage                                     image,
3390     deUint32*                                   pSparseMemoryRequirementCount,
3391     VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
3392
3393 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
3394     VkPhysicalDevice                            physicalDevice,
3395     VkFormat                                    format,
3396     VkImageType                                 type,
3397     VkSampleCountFlagBits                       samples,
3398     VkImageUsageFlags                           usage,
3399     VkImageTiling                               tiling,
3400     deUint32*                                   pPropertyCount,
3401     VkSparseImageFormatProperties*              pProperties);
3402
3403 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
3404     VkQueue                                     queue,
3405     deUint32                                    bindInfoCount,
3406     const VkBindSparseInfo*                     pBindInfo,
3407     VkFence                                     fence);
3408
3409 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
3410     VkDevice                                    device,
3411     const VkFenceCreateInfo*                    pCreateInfo,
3412     const VkAllocationCallbacks*                pAllocator,
3413     VkFence*                                    pFence);
3414
3415 VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
3416     VkDevice                                    device,
3417     VkFence                                     fence,
3418     const VkAllocationCallbacks*                pAllocator);
3419
3420 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
3421     VkDevice                                    device,
3422     deUint32                                    fenceCount,
3423     const VkFence*                              pFences);
3424
3425 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
3426     VkDevice                                    device,
3427     VkFence                                     fence);
3428
3429 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
3430     VkDevice                                    device,
3431     deUint32                                    fenceCount,
3432     const VkFence*                              pFences,
3433     VkBool32                                    waitAll,
3434     deUint64                                    timeout);
3435
3436 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
3437     VkDevice                                    device,
3438     const VkSemaphoreCreateInfo*                pCreateInfo,
3439     const VkAllocationCallbacks*                pAllocator,
3440     VkSemaphore*                                pSemaphore);
3441
3442 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
3443     VkDevice                                    device,
3444     VkSemaphore                                 semaphore,
3445     const VkAllocationCallbacks*                pAllocator);
3446
3447 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
3448     VkDevice                                    device,
3449     const VkEventCreateInfo*                    pCreateInfo,
3450     const VkAllocationCallbacks*                pAllocator,
3451     VkEvent*                                    pEvent);
3452
3453 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
3454     VkDevice                                    device,
3455     VkEvent                                     event,
3456     const VkAllocationCallbacks*                pAllocator);
3457
3458 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
3459     VkDevice                                    device,
3460     VkEvent                                     event);
3461
3462 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
3463     VkDevice                                    device,
3464     VkEvent                                     event);
3465
3466 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
3467     VkDevice                                    device,
3468     VkEvent                                     event);
3469
3470 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
3471     VkDevice                                    device,
3472     const VkQueryPoolCreateInfo*                pCreateInfo,
3473     const VkAllocationCallbacks*                pAllocator,
3474     VkQueryPool*                                pQueryPool);
3475
3476 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
3477     VkDevice                                    device,
3478     VkQueryPool                                 queryPool,
3479     const VkAllocationCallbacks*                pAllocator);
3480
3481 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
3482     VkDevice                                    device,
3483     VkQueryPool                                 queryPool,
3484     deUint32                                    firstQuery,
3485     deUint32                                    queryCount,
3486     deUintptr                                      dataSize,
3487     void*                                       pData,
3488     VkDeviceSize                                stride,
3489     VkQueryResultFlags                          flags);
3490
3491 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
3492     VkDevice                                    device,
3493     const VkBufferCreateInfo*                   pCreateInfo,
3494     const VkAllocationCallbacks*                pAllocator,
3495     VkBuffer*                                   pBuffer);
3496
3497 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
3498     VkDevice                                    device,
3499     VkBuffer                                    buffer,
3500     const VkAllocationCallbacks*                pAllocator);
3501
3502 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
3503     VkDevice                                    device,
3504     const VkBufferViewCreateInfo*               pCreateInfo,
3505     const VkAllocationCallbacks*                pAllocator,
3506     VkBufferView*                               pView);
3507
3508 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
3509     VkDevice                                    device,
3510     VkBufferView                                bufferView,
3511     const VkAllocationCallbacks*                pAllocator);
3512
3513 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
3514     VkDevice                                    device,
3515     const VkImageCreateInfo*                    pCreateInfo,
3516     const VkAllocationCallbacks*                pAllocator,
3517     VkImage*                                    pImage);
3518
3519 VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
3520     VkDevice                                    device,
3521     VkImage                                     image,
3522     const VkAllocationCallbacks*                pAllocator);
3523
3524 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
3525     VkDevice                                    device,
3526     VkImage                                     image,
3527     const VkImageSubresource*                   pSubresource,
3528     VkSubresourceLayout*                        pLayout);
3529
3530 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
3531     VkDevice                                    device,
3532     const VkImageViewCreateInfo*                pCreateInfo,
3533     const VkAllocationCallbacks*                pAllocator,
3534     VkImageView*                                pView);
3535
3536 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
3537     VkDevice                                    device,
3538     VkImageView                                 imageView,
3539     const VkAllocationCallbacks*                pAllocator);
3540
3541 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
3542     VkDevice                                    device,
3543     const VkShaderModuleCreateInfo*             pCreateInfo,
3544     const VkAllocationCallbacks*                pAllocator,
3545     VkShaderModule*                             pShaderModule);
3546
3547 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
3548     VkDevice                                    device,
3549     VkShaderModule                              shaderModule,
3550     const VkAllocationCallbacks*                pAllocator);
3551
3552 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
3553     VkDevice                                    device,
3554     const VkPipelineCacheCreateInfo*            pCreateInfo,
3555     const VkAllocationCallbacks*                pAllocator,
3556     VkPipelineCache*                            pPipelineCache);
3557
3558 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
3559     VkDevice                                    device,
3560     VkPipelineCache                             pipelineCache,
3561     const VkAllocationCallbacks*                pAllocator);
3562
3563 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
3564     VkDevice                                    device,
3565     VkPipelineCache                             pipelineCache,
3566     deUintptr*                                     pDataSize,
3567     void*                                       pData);
3568
3569 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
3570     VkDevice                                    device,
3571     VkPipelineCache                             dstCache,
3572     deUint32                                    srcCacheCount,
3573     const VkPipelineCache*                      pSrcCaches);
3574
3575 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
3576     VkDevice                                    device,
3577     VkPipelineCache                             pipelineCache,
3578     deUint32                                    createInfoCount,
3579     const VkGraphicsPipelineCreateInfo*         pCreateInfos,
3580     const VkAllocationCallbacks*                pAllocator,
3581     VkPipeline*                                 pPipelines);
3582
3583 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
3584     VkDevice                                    device,
3585     VkPipelineCache                             pipelineCache,
3586     deUint32                                    createInfoCount,
3587     const VkComputePipelineCreateInfo*          pCreateInfos,
3588     const VkAllocationCallbacks*                pAllocator,
3589     VkPipeline*                                 pPipelines);
3590
3591 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
3592     VkDevice                                    device,
3593     VkPipeline                                  pipeline,
3594     const VkAllocationCallbacks*                pAllocator);
3595
3596 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
3597     VkDevice                                    device,
3598     const VkPipelineLayoutCreateInfo*           pCreateInfo,
3599     const VkAllocationCallbacks*                pAllocator,
3600     VkPipelineLayout*                           pPipelineLayout);
3601
3602 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
3603     VkDevice                                    device,
3604     VkPipelineLayout                            pipelineLayout,
3605     const VkAllocationCallbacks*                pAllocator);
3606
3607 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
3608     VkDevice                                    device,
3609     const VkSamplerCreateInfo*                  pCreateInfo,
3610     const VkAllocationCallbacks*                pAllocator,
3611     VkSampler*                                  pSampler);
3612
3613 VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
3614     VkDevice                                    device,
3615     VkSampler                                   sampler,
3616     const VkAllocationCallbacks*                pAllocator);
3617
3618 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
3619     VkDevice                                    device,
3620     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
3621     const VkAllocationCallbacks*                pAllocator,
3622     VkDescriptorSetLayout*                      pSetLayout);
3623
3624 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
3625     VkDevice                                    device,
3626     VkDescriptorSetLayout                       descriptorSetLayout,
3627     const VkAllocationCallbacks*                pAllocator);
3628
3629 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
3630     VkDevice                                    device,
3631     const VkDescriptorPoolCreateInfo*           pCreateInfo,
3632     const VkAllocationCallbacks*                pAllocator,
3633     VkDescriptorPool*                           pDescriptorPool);
3634
3635 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
3636     VkDevice                                    device,
3637     VkDescriptorPool                            descriptorPool,
3638     const VkAllocationCallbacks*                pAllocator);
3639
3640 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
3641     VkDevice                                    device,
3642     VkDescriptorPool                            descriptorPool,
3643     VkDescriptorPoolResetFlags                  flags);
3644
3645 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
3646     VkDevice                                    device,
3647     const VkDescriptorSetAllocateInfo*          pAllocateInfo,
3648     VkDescriptorSet*                            pDescriptorSets);
3649
3650 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
3651     VkDevice                                    device,
3652     VkDescriptorPool                            descriptorPool,
3653     deUint32                                    descriptorSetCount,
3654     const VkDescriptorSet*                      pDescriptorSets);
3655
3656 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
3657     VkDevice                                    device,
3658     deUint32                                    descriptorWriteCount,
3659     const VkWriteDescriptorSet*                 pDescriptorWrites,
3660     deUint32                                    descriptorCopyCount,
3661     const VkCopyDescriptorSet*                  pDescriptorCopies);
3662
3663 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
3664     VkDevice                                    device,
3665     const VkFramebufferCreateInfo*              pCreateInfo,
3666     const VkAllocationCallbacks*                pAllocator,
3667     VkFramebuffer*                              pFramebuffer);
3668
3669 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
3670     VkDevice                                    device,
3671     VkFramebuffer                               framebuffer,
3672     const VkAllocationCallbacks*                pAllocator);
3673
3674 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
3675     VkDevice                                    device,
3676     const VkRenderPassCreateInfo*               pCreateInfo,
3677     const VkAllocationCallbacks*                pAllocator,
3678     VkRenderPass*                               pRenderPass);
3679
3680 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
3681     VkDevice                                    device,
3682     VkRenderPass                                renderPass,
3683     const VkAllocationCallbacks*                pAllocator);
3684
3685 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
3686     VkDevice                                    device,
3687     VkRenderPass                                renderPass,
3688     VkExtent2D*                                 pGranularity);
3689
3690 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
3691     VkDevice                                    device,
3692     const VkCommandPoolCreateInfo*              pCreateInfo,
3693     const VkAllocationCallbacks*                pAllocator,
3694     VkCommandPool*                              pCommandPool);
3695
3696 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
3697     VkDevice                                    device,
3698     VkCommandPool                               commandPool,
3699     const VkAllocationCallbacks*                pAllocator);
3700
3701 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
3702     VkDevice                                    device,
3703     VkCommandPool                               commandPool,
3704     VkCommandPoolResetFlags                     flags);
3705
3706 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
3707     VkDevice                                    device,
3708     const VkCommandBufferAllocateInfo*          pAllocateInfo,
3709     VkCommandBuffer*                            pCommandBuffers);
3710
3711 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
3712     VkDevice                                    device,
3713     VkCommandPool                               commandPool,
3714     deUint32                                    commandBufferCount,
3715     const VkCommandBuffer*                      pCommandBuffers);
3716
3717 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
3718     VkCommandBuffer                             commandBuffer,
3719     const VkCommandBufferBeginInfo*             pBeginInfo);
3720
3721 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
3722     VkCommandBuffer                             commandBuffer);
3723
3724 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
3725     VkCommandBuffer                             commandBuffer,
3726     VkCommandBufferResetFlags                   flags);
3727
3728 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
3729     VkCommandBuffer                             commandBuffer,
3730     VkPipelineBindPoint                         pipelineBindPoint,
3731     VkPipeline                                  pipeline);
3732
3733 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
3734     VkCommandBuffer                             commandBuffer,
3735     deUint32                                    firstViewport,
3736     deUint32                                    viewportCount,
3737     const VkViewport*                           pViewports);
3738
3739 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
3740     VkCommandBuffer                             commandBuffer,
3741     deUint32                                    firstScissor,
3742     deUint32                                    scissorCount,
3743     const VkRect2D*                             pScissors);
3744
3745 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
3746     VkCommandBuffer                             commandBuffer,
3747     float                                       lineWidth);
3748
3749 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
3750     VkCommandBuffer                             commandBuffer,
3751     float                                       depthBiasConstantFactor,
3752     float                                       depthBiasClamp,
3753     float                                       depthBiasSlopeFactor);
3754
3755 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
3756     VkCommandBuffer                             commandBuffer,
3757     const float                                 blendConstants[4]);
3758
3759 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
3760     VkCommandBuffer                             commandBuffer,
3761     float                                       minDepthBounds,
3762     float                                       maxDepthBounds);
3763
3764 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
3765     VkCommandBuffer                             commandBuffer,
3766     VkStencilFaceFlags                          faceMask,
3767     deUint32                                    compareMask);
3768
3769 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
3770     VkCommandBuffer                             commandBuffer,
3771     VkStencilFaceFlags                          faceMask,
3772     deUint32                                    writeMask);
3773
3774 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
3775     VkCommandBuffer                             commandBuffer,
3776     VkStencilFaceFlags                          faceMask,
3777     deUint32                                    reference);
3778
3779 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
3780     VkCommandBuffer                             commandBuffer,
3781     VkPipelineBindPoint                         pipelineBindPoint,
3782     VkPipelineLayout                            layout,
3783     deUint32                                    firstSet,
3784     deUint32                                    descriptorSetCount,
3785     const VkDescriptorSet*                      pDescriptorSets,
3786     deUint32                                    dynamicOffsetCount,
3787     const deUint32*                             pDynamicOffsets);
3788
3789 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
3790     VkCommandBuffer                             commandBuffer,
3791     VkBuffer                                    buffer,
3792     VkDeviceSize                                offset,
3793     VkIndexType                                 indexType);
3794
3795 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
3796     VkCommandBuffer                             commandBuffer,
3797     deUint32                                    firstBinding,
3798     deUint32                                    bindingCount,
3799     const VkBuffer*                             pBuffers,
3800     const VkDeviceSize*                         pOffsets);
3801
3802 VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
3803     VkCommandBuffer                             commandBuffer,
3804     deUint32                                    vertexCount,
3805     deUint32                                    instanceCount,
3806     deUint32                                    firstVertex,
3807     deUint32                                    firstInstance);
3808
3809 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
3810     VkCommandBuffer                             commandBuffer,
3811     deUint32                                    indexCount,
3812     deUint32                                    instanceCount,
3813     deUint32                                    firstIndex,
3814     deInt32                                     vertexOffset,
3815     deUint32                                    firstInstance);
3816
3817 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
3818     VkCommandBuffer                             commandBuffer,
3819     VkBuffer                                    buffer,
3820     VkDeviceSize                                offset,
3821     deUint32                                    drawCount,
3822     deUint32                                    stride);
3823
3824 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
3825     VkCommandBuffer                             commandBuffer,
3826     VkBuffer                                    buffer,
3827     VkDeviceSize                                offset,
3828     deUint32                                    drawCount,
3829     deUint32                                    stride);
3830
3831 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
3832     VkCommandBuffer                             commandBuffer,
3833     deUint32                                    groupCountX,
3834     deUint32                                    groupCountY,
3835     deUint32                                    groupCountZ);
3836
3837 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
3838     VkCommandBuffer                             commandBuffer,
3839     VkBuffer                                    buffer,
3840     VkDeviceSize                                offset);
3841
3842 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
3843     VkCommandBuffer                             commandBuffer,
3844     VkBuffer                                    srcBuffer,
3845     VkBuffer                                    dstBuffer,
3846     deUint32                                    regionCount,
3847     const VkBufferCopy*                         pRegions);
3848
3849 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
3850     VkCommandBuffer                             commandBuffer,
3851     VkImage                                     srcImage,
3852     VkImageLayout                               srcImageLayout,
3853     VkImage                                     dstImage,
3854     VkImageLayout                               dstImageLayout,
3855     deUint32                                    regionCount,
3856     const VkImageCopy*                          pRegions);
3857
3858 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
3859     VkCommandBuffer                             commandBuffer,
3860     VkImage                                     srcImage,
3861     VkImageLayout                               srcImageLayout,
3862     VkImage                                     dstImage,
3863     VkImageLayout                               dstImageLayout,
3864     deUint32                                    regionCount,
3865     const VkImageBlit*                          pRegions,
3866     VkFilter                                    filter);
3867
3868 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
3869     VkCommandBuffer                             commandBuffer,
3870     VkBuffer                                    srcBuffer,
3871     VkImage                                     dstImage,
3872     VkImageLayout                               dstImageLayout,
3873     deUint32                                    regionCount,
3874     const VkBufferImageCopy*                    pRegions);
3875
3876 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
3877     VkCommandBuffer                             commandBuffer,
3878     VkImage                                     srcImage,
3879     VkImageLayout                               srcImageLayout,
3880     VkBuffer                                    dstBuffer,
3881     deUint32                                    regionCount,
3882     const VkBufferImageCopy*                    pRegions);
3883
3884 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
3885     VkCommandBuffer                             commandBuffer,
3886     VkBuffer                                    dstBuffer,
3887     VkDeviceSize                                dstOffset,
3888     VkDeviceSize                                dataSize,
3889     const void*                                 pData);
3890
3891 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
3892     VkCommandBuffer                             commandBuffer,
3893     VkBuffer                                    dstBuffer,
3894     VkDeviceSize                                dstOffset,
3895     VkDeviceSize                                size,
3896     deUint32                                    data);
3897
3898 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
3899     VkCommandBuffer                             commandBuffer,
3900     VkImage                                     image,
3901     VkImageLayout                               imageLayout,
3902     const VkClearColorValue*                    pColor,
3903     deUint32                                    rangeCount,
3904     const VkImageSubresourceRange*              pRanges);
3905
3906 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
3907     VkCommandBuffer                             commandBuffer,
3908     VkImage                                     image,
3909     VkImageLayout                               imageLayout,
3910     const VkClearDepthStencilValue*             pDepthStencil,
3911     deUint32                                    rangeCount,
3912     const VkImageSubresourceRange*              pRanges);
3913
3914 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
3915     VkCommandBuffer                             commandBuffer,
3916     deUint32                                    attachmentCount,
3917     const VkClearAttachment*                    pAttachments,
3918     deUint32                                    rectCount,
3919     const VkClearRect*                          pRects);
3920
3921 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
3922     VkCommandBuffer                             commandBuffer,
3923     VkImage                                     srcImage,
3924     VkImageLayout                               srcImageLayout,
3925     VkImage                                     dstImage,
3926     VkImageLayout                               dstImageLayout,
3927     deUint32                                    regionCount,
3928     const VkImageResolve*                       pRegions);
3929
3930 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
3931     VkCommandBuffer                             commandBuffer,
3932     VkEvent                                     event,
3933     VkPipelineStageFlags                        stageMask);
3934
3935 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
3936     VkCommandBuffer                             commandBuffer,
3937     VkEvent                                     event,
3938     VkPipelineStageFlags                        stageMask);
3939
3940 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
3941     VkCommandBuffer                             commandBuffer,
3942     deUint32                                    eventCount,
3943     const VkEvent*                              pEvents,
3944     VkPipelineStageFlags                        srcStageMask,
3945     VkPipelineStageFlags                        dstStageMask,
3946     deUint32                                    memoryBarrierCount,
3947     const VkMemoryBarrier*                      pMemoryBarriers,
3948     deUint32                                    bufferMemoryBarrierCount,
3949     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
3950     deUint32                                    imageMemoryBarrierCount,
3951     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
3952
3953 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
3954     VkCommandBuffer                             commandBuffer,
3955     VkPipelineStageFlags                        srcStageMask,
3956     VkPipelineStageFlags                        dstStageMask,
3957     VkDependencyFlags                           dependencyFlags,
3958     deUint32                                    memoryBarrierCount,
3959     const VkMemoryBarrier*                      pMemoryBarriers,
3960     deUint32                                    bufferMemoryBarrierCount,
3961     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
3962     deUint32                                    imageMemoryBarrierCount,
3963     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
3964
3965 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
3966     VkCommandBuffer                             commandBuffer,
3967     VkQueryPool                                 queryPool,
3968     deUint32                                    query,
3969     VkQueryControlFlags                         flags);
3970
3971 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
3972     VkCommandBuffer                             commandBuffer,
3973     VkQueryPool                                 queryPool,
3974     deUint32                                    query);
3975
3976 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
3977     VkCommandBuffer                             commandBuffer,
3978     VkQueryPool                                 queryPool,
3979     deUint32                                    firstQuery,
3980     deUint32                                    queryCount);
3981
3982 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
3983     VkCommandBuffer                             commandBuffer,
3984     VkPipelineStageFlagBits                     pipelineStage,
3985     VkQueryPool                                 queryPool,
3986     deUint32                                    query);
3987
3988 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
3989     VkCommandBuffer                             commandBuffer,
3990     VkQueryPool                                 queryPool,
3991     deUint32                                    firstQuery,
3992     deUint32                                    queryCount,
3993     VkBuffer                                    dstBuffer,
3994     VkDeviceSize                                dstOffset,
3995     VkDeviceSize                                stride,
3996     VkQueryResultFlags                          flags);
3997
3998 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
3999     VkCommandBuffer                             commandBuffer,
4000     VkPipelineLayout                            layout,
4001     VkShaderStageFlags                          stageFlags,
4002     deUint32                                    offset,
4003     deUint32                                    size,
4004     const void*                                 pValues);
4005
4006 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
4007     VkCommandBuffer                             commandBuffer,
4008     const VkRenderPassBeginInfo*                pRenderPassBegin,
4009     VkSubpassContents                           contents);
4010
4011 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
4012     VkCommandBuffer                             commandBuffer,
4013     VkSubpassContents                           contents);
4014
4015 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
4016     VkCommandBuffer                             commandBuffer);
4017
4018 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
4019     VkCommandBuffer                             commandBuffer,
4020     deUint32                                    commandBufferCount,
4021     const VkCommandBuffer*                      pCommandBuffers);
4022 #endif
4023
4024
4025 #define VK_VERSION_1_1 1
4026 // Vulkan 1.1 version number
4027 #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0
4028
4029 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
4030 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
4031 #define VK_MAX_DEVICE_GROUP_SIZE          32
4032 #define VK_LUID_SIZE                      8
4033 #define VK_QUEUE_FAMILY_EXTERNAL          (~0U-1)
4034
4035 typedef enum VkPointClippingBehavior {
4036     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
4037     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
4038     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
4039     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
4040     VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
4041     VK_POINT_CLIPPING_BEHAVIOR_END_RANGE = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
4042     VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES + 1),
4043     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
4044 } VkPointClippingBehavior;
4045
4046 typedef enum VkTessellationDomainOrigin {
4047     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
4048     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
4049     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
4050     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
4051     VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
4052     VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
4053     VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT + 1),
4054     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
4055 } VkTessellationDomainOrigin;
4056
4057 typedef enum VkSamplerYcbcrModelConversion {
4058     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
4059     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
4060     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
4061     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
4062     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
4063     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
4064     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
4065     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
4066     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
4067     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
4068     VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
4069     VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
4070     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY + 1),
4071     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
4072 } VkSamplerYcbcrModelConversion;
4073
4074 typedef enum VkSamplerYcbcrRange {
4075     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
4076     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
4077     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
4078     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
4079     VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
4080     VK_SAMPLER_YCBCR_RANGE_END_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
4081     VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW - VK_SAMPLER_YCBCR_RANGE_ITU_FULL + 1),
4082     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
4083 } VkSamplerYcbcrRange;
4084
4085 typedef enum VkChromaLocation {
4086     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
4087     VK_CHROMA_LOCATION_MIDPOINT = 1,
4088     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
4089     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
4090     VK_CHROMA_LOCATION_BEGIN_RANGE = VK_CHROMA_LOCATION_COSITED_EVEN,
4091     VK_CHROMA_LOCATION_END_RANGE = VK_CHROMA_LOCATION_MIDPOINT,
4092     VK_CHROMA_LOCATION_RANGE_SIZE = (VK_CHROMA_LOCATION_MIDPOINT - VK_CHROMA_LOCATION_COSITED_EVEN + 1),
4093     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
4094 } VkChromaLocation;
4095
4096 typedef enum VkDescriptorUpdateTemplateType {
4097     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
4098     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
4099     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4100     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4101     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4102     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET + 1),
4103     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
4104 } VkDescriptorUpdateTemplateType;
4105
4106 typedef enum VkSubgroupFeatureFlagBits {
4107     VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
4108     VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
4109     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
4110     VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
4111     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
4112     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
4113     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
4114     VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
4115     VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
4116     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4117 } VkSubgroupFeatureFlagBits;
4118 typedef VkFlags VkSubgroupFeatureFlags;
4119
4120 typedef enum VkPeerMemoryFeatureFlagBits {
4121     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
4122     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
4123     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
4124     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
4125     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
4126     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
4127     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
4128     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
4129     VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4130 } VkPeerMemoryFeatureFlagBits;
4131 typedef VkFlags VkPeerMemoryFeatureFlags;
4132
4133 typedef enum VkMemoryAllocateFlagBits {
4134     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
4135     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
4136     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
4137     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
4138     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
4139     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
4140     VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4141 } VkMemoryAllocateFlagBits;
4142 typedef VkFlags VkMemoryAllocateFlags;
4143 typedef VkFlags VkCommandPoolTrimFlags;
4144 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
4145
4146 typedef enum VkExternalMemoryHandleTypeFlagBits {
4147     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
4148     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
4149     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
4150     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
4151     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
4152     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
4153     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
4154     VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
4155     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
4156     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
4157     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
4158     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
4159     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4160     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4161     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
4162     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
4163     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
4164     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
4165     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4166 } VkExternalMemoryHandleTypeFlagBits;
4167 typedef VkFlags VkExternalMemoryHandleTypeFlags;
4168
4169 typedef enum VkExternalMemoryFeatureFlagBits {
4170     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
4171     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
4172     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
4173     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
4174     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
4175     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
4176     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4177 } VkExternalMemoryFeatureFlagBits;
4178 typedef VkFlags VkExternalMemoryFeatureFlags;
4179
4180 typedef enum VkExternalFenceHandleTypeFlagBits {
4181     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
4182     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
4183     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
4184     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
4185     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
4186     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4187     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4188     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
4189     VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4190 } VkExternalFenceHandleTypeFlagBits;
4191 typedef VkFlags VkExternalFenceHandleTypeFlags;
4192
4193 typedef enum VkExternalFenceFeatureFlagBits {
4194     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
4195     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
4196     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
4197     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
4198     VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4199 } VkExternalFenceFeatureFlagBits;
4200 typedef VkFlags VkExternalFenceFeatureFlags;
4201
4202 typedef enum VkFenceImportFlagBits {
4203     VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
4204     VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
4205     VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4206 } VkFenceImportFlagBits;
4207 typedef VkFlags VkFenceImportFlags;
4208
4209 typedef enum VkSemaphoreImportFlagBits {
4210     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
4211     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
4212     VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4213 } VkSemaphoreImportFlagBits;
4214 typedef VkFlags VkSemaphoreImportFlags;
4215
4216 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
4217     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
4218     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
4219     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
4220     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
4221     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
4222     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
4223     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4224     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4225     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
4226     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
4227     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4228 } VkExternalSemaphoreHandleTypeFlagBits;
4229 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
4230
4231 typedef enum VkExternalSemaphoreFeatureFlagBits {
4232     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
4233     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
4234     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
4235     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
4236     VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4237 } VkExternalSemaphoreFeatureFlagBits;
4238 typedef VkFlags VkExternalSemaphoreFeatureFlags;
4239 typedef struct VkPhysicalDeviceSubgroupProperties {
4240     VkStructureType           sType;
4241     void*                     pNext;
4242     deUint32                  subgroupSize;
4243     VkShaderStageFlags        supportedStages;
4244     VkSubgroupFeatureFlags    supportedOperations;
4245     VkBool32                  quadOperationsInAllStages;
4246 } VkPhysicalDeviceSubgroupProperties;
4247
4248 typedef struct VkBindBufferMemoryInfo {
4249     VkStructureType    sType;
4250     const void*        pNext;
4251     VkBuffer           buffer;
4252     VkDeviceMemory     memory;
4253     VkDeviceSize       memoryOffset;
4254 } VkBindBufferMemoryInfo;
4255
4256 typedef struct VkBindImageMemoryInfo {
4257     VkStructureType    sType;
4258     const void*        pNext;
4259     VkImage            image;
4260     VkDeviceMemory     memory;
4261     VkDeviceSize       memoryOffset;
4262 } VkBindImageMemoryInfo;
4263
4264 typedef struct VkPhysicalDevice16BitStorageFeatures {
4265     VkStructureType    sType;
4266     void*              pNext;
4267     VkBool32           storageBuffer16BitAccess;
4268     VkBool32           uniformAndStorageBuffer16BitAccess;
4269     VkBool32           storagePushConstant16;
4270     VkBool32           storageInputOutput16;
4271 } VkPhysicalDevice16BitStorageFeatures;
4272
4273 typedef struct VkMemoryDedicatedRequirements {
4274     VkStructureType    sType;
4275     void*              pNext;
4276     VkBool32           prefersDedicatedAllocation;
4277     VkBool32           requiresDedicatedAllocation;
4278 } VkMemoryDedicatedRequirements;
4279
4280 typedef struct VkMemoryDedicatedAllocateInfo {
4281     VkStructureType    sType;
4282     const void*        pNext;
4283     VkImage            image;
4284     VkBuffer           buffer;
4285 } VkMemoryDedicatedAllocateInfo;
4286
4287 typedef struct VkMemoryAllocateFlagsInfo {
4288     VkStructureType          sType;
4289     const void*              pNext;
4290     VkMemoryAllocateFlags    flags;
4291     deUint32                 deviceMask;
4292 } VkMemoryAllocateFlagsInfo;
4293
4294 typedef struct VkDeviceGroupRenderPassBeginInfo {
4295     VkStructureType    sType;
4296     const void*        pNext;
4297     deUint32           deviceMask;
4298     deUint32           deviceRenderAreaCount;
4299     const VkRect2D*    pDeviceRenderAreas;
4300 } VkDeviceGroupRenderPassBeginInfo;
4301
4302 typedef struct VkDeviceGroupCommandBufferBeginInfo {
4303     VkStructureType    sType;
4304     const void*        pNext;
4305     deUint32           deviceMask;
4306 } VkDeviceGroupCommandBufferBeginInfo;
4307
4308 typedef struct VkDeviceGroupSubmitInfo {
4309     VkStructureType    sType;
4310     const void*        pNext;
4311     deUint32           waitSemaphoreCount;
4312     const deUint32*    pWaitSemaphoreDeviceIndices;
4313     deUint32           commandBufferCount;
4314     const deUint32*    pCommandBufferDeviceMasks;
4315     deUint32           signalSemaphoreCount;
4316     const deUint32*    pSignalSemaphoreDeviceIndices;
4317 } VkDeviceGroupSubmitInfo;
4318
4319 typedef struct VkDeviceGroupBindSparseInfo {
4320     VkStructureType    sType;
4321     const void*        pNext;
4322     deUint32           resourceDeviceIndex;
4323     deUint32           memoryDeviceIndex;
4324 } VkDeviceGroupBindSparseInfo;
4325
4326 typedef struct VkBindBufferMemoryDeviceGroupInfo {
4327     VkStructureType    sType;
4328     const void*        pNext;
4329     deUint32           deviceIndexCount;
4330     const deUint32*    pDeviceIndices;
4331 } VkBindBufferMemoryDeviceGroupInfo;
4332
4333 typedef struct VkBindImageMemoryDeviceGroupInfo {
4334     VkStructureType    sType;
4335     const void*        pNext;
4336     deUint32           deviceIndexCount;
4337     const deUint32*    pDeviceIndices;
4338     deUint32           splitInstanceBindRegionCount;
4339     const VkRect2D*    pSplitInstanceBindRegions;
4340 } VkBindImageMemoryDeviceGroupInfo;
4341
4342 typedef struct VkPhysicalDeviceGroupProperties {
4343     VkStructureType     sType;
4344     void*               pNext;
4345     deUint32            physicalDeviceCount;
4346     VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
4347     VkBool32            subsetAllocation;
4348 } VkPhysicalDeviceGroupProperties;
4349
4350 typedef struct VkDeviceGroupDeviceCreateInfo {
4351     VkStructureType            sType;
4352     const void*                pNext;
4353     deUint32                   physicalDeviceCount;
4354     const VkPhysicalDevice*    pPhysicalDevices;
4355 } VkDeviceGroupDeviceCreateInfo;
4356
4357 typedef struct VkBufferMemoryRequirementsInfo2 {
4358     VkStructureType    sType;
4359     const void*        pNext;
4360     VkBuffer           buffer;
4361 } VkBufferMemoryRequirementsInfo2;
4362
4363 typedef struct VkImageMemoryRequirementsInfo2 {
4364     VkStructureType    sType;
4365     const void*        pNext;
4366     VkImage            image;
4367 } VkImageMemoryRequirementsInfo2;
4368
4369 typedef struct VkImageSparseMemoryRequirementsInfo2 {
4370     VkStructureType    sType;
4371     const void*        pNext;
4372     VkImage            image;
4373 } VkImageSparseMemoryRequirementsInfo2;
4374
4375 typedef struct VkMemoryRequirements2 {
4376     VkStructureType         sType;
4377     void*                   pNext;
4378     VkMemoryRequirements    memoryRequirements;
4379 } VkMemoryRequirements2;
4380
4381 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
4382
4383 typedef struct VkSparseImageMemoryRequirements2 {
4384     VkStructureType                    sType;
4385     void*                              pNext;
4386     VkSparseImageMemoryRequirements    memoryRequirements;
4387 } VkSparseImageMemoryRequirements2;
4388
4389 typedef struct VkPhysicalDeviceFeatures2 {
4390     VkStructureType             sType;
4391     void*                       pNext;
4392     VkPhysicalDeviceFeatures    features;
4393 } VkPhysicalDeviceFeatures2;
4394
4395 typedef struct VkPhysicalDeviceProperties2 {
4396     VkStructureType               sType;
4397     void*                         pNext;
4398     VkPhysicalDeviceProperties    properties;
4399 } VkPhysicalDeviceProperties2;
4400
4401 typedef struct VkFormatProperties2 {
4402     VkStructureType       sType;
4403     void*                 pNext;
4404     VkFormatProperties    formatProperties;
4405 } VkFormatProperties2;
4406
4407 typedef struct VkImageFormatProperties2 {
4408     VkStructureType            sType;
4409     void*                      pNext;
4410     VkImageFormatProperties    imageFormatProperties;
4411 } VkImageFormatProperties2;
4412
4413 typedef struct VkPhysicalDeviceImageFormatInfo2 {
4414     VkStructureType       sType;
4415     const void*           pNext;
4416     VkFormat              format;
4417     VkImageType           type;
4418     VkImageTiling         tiling;
4419     VkImageUsageFlags     usage;
4420     VkImageCreateFlags    flags;
4421 } VkPhysicalDeviceImageFormatInfo2;
4422
4423 typedef struct VkQueueFamilyProperties2 {
4424     VkStructureType            sType;
4425     void*                      pNext;
4426     VkQueueFamilyProperties    queueFamilyProperties;
4427 } VkQueueFamilyProperties2;
4428
4429 typedef struct VkPhysicalDeviceMemoryProperties2 {
4430     VkStructureType                     sType;
4431     void*                               pNext;
4432     VkPhysicalDeviceMemoryProperties    memoryProperties;
4433 } VkPhysicalDeviceMemoryProperties2;
4434
4435 typedef struct VkSparseImageFormatProperties2 {
4436     VkStructureType                  sType;
4437     void*                            pNext;
4438     VkSparseImageFormatProperties    properties;
4439 } VkSparseImageFormatProperties2;
4440
4441 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
4442     VkStructureType          sType;
4443     const void*              pNext;
4444     VkFormat                 format;
4445     VkImageType              type;
4446     VkSampleCountFlagBits    samples;
4447     VkImageUsageFlags        usage;
4448     VkImageTiling            tiling;
4449 } VkPhysicalDeviceSparseImageFormatInfo2;
4450
4451 typedef struct VkPhysicalDevicePointClippingProperties {
4452     VkStructureType            sType;
4453     void*                      pNext;
4454     VkPointClippingBehavior    pointClippingBehavior;
4455 } VkPhysicalDevicePointClippingProperties;
4456
4457 typedef struct VkInputAttachmentAspectReference {
4458     deUint32              subpass;
4459     deUint32              inputAttachmentIndex;
4460     VkImageAspectFlags    aspectMask;
4461 } VkInputAttachmentAspectReference;
4462
4463 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
4464     VkStructureType                            sType;
4465     const void*                                pNext;
4466     deUint32                                   aspectReferenceCount;
4467     const VkInputAttachmentAspectReference*    pAspectReferences;
4468 } VkRenderPassInputAttachmentAspectCreateInfo;
4469
4470 typedef struct VkImageViewUsageCreateInfo {
4471     VkStructureType      sType;
4472     const void*          pNext;
4473     VkImageUsageFlags    usage;
4474 } VkImageViewUsageCreateInfo;
4475
4476 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
4477     VkStructureType               sType;
4478     const void*                   pNext;
4479     VkTessellationDomainOrigin    domainOrigin;
4480 } VkPipelineTessellationDomainOriginStateCreateInfo;
4481
4482 typedef struct VkRenderPassMultiviewCreateInfo {
4483     VkStructureType    sType;
4484     const void*        pNext;
4485     deUint32           subpassCount;
4486     const deUint32*    pViewMasks;
4487     deUint32           dependencyCount;
4488     const deInt32*     pViewOffsets;
4489     deUint32           correlationMaskCount;
4490     const deUint32*    pCorrelationMasks;
4491 } VkRenderPassMultiviewCreateInfo;
4492
4493 typedef struct VkPhysicalDeviceMultiviewFeatures {
4494     VkStructureType    sType;
4495     void*              pNext;
4496     VkBool32           multiview;
4497     VkBool32           multiviewGeometryShader;
4498     VkBool32           multiviewTessellationShader;
4499 } VkPhysicalDeviceMultiviewFeatures;
4500
4501 typedef struct VkPhysicalDeviceMultiviewProperties {
4502     VkStructureType    sType;
4503     void*              pNext;
4504     deUint32           maxMultiviewViewCount;
4505     deUint32           maxMultiviewInstanceIndex;
4506 } VkPhysicalDeviceMultiviewProperties;
4507
4508 typedef struct VkPhysicalDeviceVariablePointersFeatures {
4509     VkStructureType    sType;
4510     void*              pNext;
4511     VkBool32           variablePointersStorageBuffer;
4512     VkBool32           variablePointers;
4513 } VkPhysicalDeviceVariablePointersFeatures;
4514
4515 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
4516
4517 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
4518     VkStructureType    sType;
4519     void*              pNext;
4520     VkBool32           protectedMemory;
4521 } VkPhysicalDeviceProtectedMemoryFeatures;
4522
4523 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
4524     VkStructureType    sType;
4525     void*              pNext;
4526     VkBool32           protectedNoFault;
4527 } VkPhysicalDeviceProtectedMemoryProperties;
4528
4529 typedef struct VkDeviceQueueInfo2 {
4530     VkStructureType             sType;
4531     const void*                 pNext;
4532     VkDeviceQueueCreateFlags    flags;
4533     deUint32                    queueFamilyIndex;
4534     deUint32                    queueIndex;
4535 } VkDeviceQueueInfo2;
4536
4537 typedef struct VkProtectedSubmitInfo {
4538     VkStructureType    sType;
4539     const void*        pNext;
4540     VkBool32           protectedSubmit;
4541 } VkProtectedSubmitInfo;
4542
4543 typedef struct VkSamplerYcbcrConversionCreateInfo {
4544     VkStructureType                  sType;
4545     const void*                      pNext;
4546     VkFormat                         format;
4547     VkSamplerYcbcrModelConversion    ycbcrModel;
4548     VkSamplerYcbcrRange              ycbcrRange;
4549     VkComponentMapping               components;
4550     VkChromaLocation                 xChromaOffset;
4551     VkChromaLocation                 yChromaOffset;
4552     VkFilter                         chromaFilter;
4553     VkBool32                         forceExplicitReconstruction;
4554 } VkSamplerYcbcrConversionCreateInfo;
4555
4556 typedef struct VkSamplerYcbcrConversionInfo {
4557     VkStructureType             sType;
4558     const void*                 pNext;
4559     VkSamplerYcbcrConversion    conversion;
4560 } VkSamplerYcbcrConversionInfo;
4561
4562 typedef struct VkBindImagePlaneMemoryInfo {
4563     VkStructureType          sType;
4564     const void*              pNext;
4565     VkImageAspectFlagBits    planeAspect;
4566 } VkBindImagePlaneMemoryInfo;
4567
4568 typedef struct VkImagePlaneMemoryRequirementsInfo {
4569     VkStructureType          sType;
4570     const void*              pNext;
4571     VkImageAspectFlagBits    planeAspect;
4572 } VkImagePlaneMemoryRequirementsInfo;
4573
4574 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4575     VkStructureType    sType;
4576     void*              pNext;
4577     VkBool32           samplerYcbcrConversion;
4578 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
4579
4580 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
4581     VkStructureType    sType;
4582     void*              pNext;
4583     deUint32           combinedImageSamplerDescriptorCount;
4584 } VkSamplerYcbcrConversionImageFormatProperties;
4585
4586 typedef struct VkDescriptorUpdateTemplateEntry {
4587     deUint32            dstBinding;
4588     deUint32            dstArrayElement;
4589     deUint32            descriptorCount;
4590     VkDescriptorType    descriptorType;
4591     deUintptr              offset;
4592     deUintptr              stride;
4593 } VkDescriptorUpdateTemplateEntry;
4594
4595 typedef struct VkDescriptorUpdateTemplateCreateInfo {
4596     VkStructureType                           sType;
4597     const void*                               pNext;
4598     VkDescriptorUpdateTemplateCreateFlags     flags;
4599     deUint32                                  descriptorUpdateEntryCount;
4600     const VkDescriptorUpdateTemplateEntry*    pDescriptorUpdateEntries;
4601     VkDescriptorUpdateTemplateType            templateType;
4602     VkDescriptorSetLayout                     descriptorSetLayout;
4603     VkPipelineBindPoint                       pipelineBindPoint;
4604     VkPipelineLayout                          pipelineLayout;
4605     deUint32                                  set;
4606 } VkDescriptorUpdateTemplateCreateInfo;
4607
4608 typedef struct VkExternalMemoryProperties {
4609     VkExternalMemoryFeatureFlags       externalMemoryFeatures;
4610     VkExternalMemoryHandleTypeFlags    exportFromImportedHandleTypes;
4611     VkExternalMemoryHandleTypeFlags    compatibleHandleTypes;
4612 } VkExternalMemoryProperties;
4613
4614 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
4615     VkStructureType                       sType;
4616     const void*                           pNext;
4617     VkExternalMemoryHandleTypeFlagBits    handleType;
4618 } VkPhysicalDeviceExternalImageFormatInfo;
4619
4620 typedef struct VkExternalImageFormatProperties {
4621     VkStructureType               sType;
4622     void*                         pNext;
4623     VkExternalMemoryProperties    externalMemoryProperties;
4624 } VkExternalImageFormatProperties;
4625
4626 typedef struct VkPhysicalDeviceExternalBufferInfo {
4627     VkStructureType                       sType;
4628     const void*                           pNext;
4629     VkBufferCreateFlags                   flags;
4630     VkBufferUsageFlags                    usage;
4631     VkExternalMemoryHandleTypeFlagBits    handleType;
4632 } VkPhysicalDeviceExternalBufferInfo;
4633
4634 typedef struct VkExternalBufferProperties {
4635     VkStructureType               sType;
4636     void*                         pNext;
4637     VkExternalMemoryProperties    externalMemoryProperties;
4638 } VkExternalBufferProperties;
4639
4640 typedef struct VkPhysicalDeviceIDProperties {
4641     VkStructureType    sType;
4642     void*              pNext;
4643     deUint8            deviceUUID[VK_UUID_SIZE];
4644     deUint8            driverUUID[VK_UUID_SIZE];
4645     deUint8            deviceLUID[VK_LUID_SIZE];
4646     deUint32           deviceNodeMask;
4647     VkBool32           deviceLUIDValid;
4648 } VkPhysicalDeviceIDProperties;
4649
4650 typedef struct VkExternalMemoryImageCreateInfo {
4651     VkStructureType                    sType;
4652     const void*                        pNext;
4653     VkExternalMemoryHandleTypeFlags    handleTypes;
4654 } VkExternalMemoryImageCreateInfo;
4655
4656 typedef struct VkExternalMemoryBufferCreateInfo {
4657     VkStructureType                    sType;
4658     const void*                        pNext;
4659     VkExternalMemoryHandleTypeFlags    handleTypes;
4660 } VkExternalMemoryBufferCreateInfo;
4661
4662 typedef struct VkExportMemoryAllocateInfo {
4663     VkStructureType                    sType;
4664     const void*                        pNext;
4665     VkExternalMemoryHandleTypeFlags    handleTypes;
4666 } VkExportMemoryAllocateInfo;
4667
4668 typedef struct VkPhysicalDeviceExternalFenceInfo {
4669     VkStructureType                      sType;
4670     const void*                          pNext;
4671     VkExternalFenceHandleTypeFlagBits    handleType;
4672 } VkPhysicalDeviceExternalFenceInfo;
4673
4674 typedef struct VkExternalFenceProperties {
4675     VkStructureType                   sType;
4676     void*                             pNext;
4677     VkExternalFenceHandleTypeFlags    exportFromImportedHandleTypes;
4678     VkExternalFenceHandleTypeFlags    compatibleHandleTypes;
4679     VkExternalFenceFeatureFlags       externalFenceFeatures;
4680 } VkExternalFenceProperties;
4681
4682 typedef struct VkExportFenceCreateInfo {
4683     VkStructureType                   sType;
4684     const void*                       pNext;
4685     VkExternalFenceHandleTypeFlags    handleTypes;
4686 } VkExportFenceCreateInfo;
4687
4688 typedef struct VkExportSemaphoreCreateInfo {
4689     VkStructureType                       sType;
4690     const void*                           pNext;
4691     VkExternalSemaphoreHandleTypeFlags    handleTypes;
4692 } VkExportSemaphoreCreateInfo;
4693
4694 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
4695     VkStructureType                          sType;
4696     const void*                              pNext;
4697     VkExternalSemaphoreHandleTypeFlagBits    handleType;
4698 } VkPhysicalDeviceExternalSemaphoreInfo;
4699
4700 typedef struct VkExternalSemaphoreProperties {
4701     VkStructureType                       sType;
4702     void*                                 pNext;
4703     VkExternalSemaphoreHandleTypeFlags    exportFromImportedHandleTypes;
4704     VkExternalSemaphoreHandleTypeFlags    compatibleHandleTypes;
4705     VkExternalSemaphoreFeatureFlags       externalSemaphoreFeatures;
4706 } VkExternalSemaphoreProperties;
4707
4708 typedef struct VkPhysicalDeviceMaintenance3Properties {
4709     VkStructureType    sType;
4710     void*              pNext;
4711     deUint32           maxPerSetDescriptors;
4712     VkDeviceSize       maxMemoryAllocationSize;
4713 } VkPhysicalDeviceMaintenance3Properties;
4714
4715 typedef struct VkDescriptorSetLayoutSupport {
4716     VkStructureType    sType;
4717     void*              pNext;
4718     VkBool32           supported;
4719 } VkDescriptorSetLayoutSupport;
4720
4721 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
4722     VkStructureType    sType;
4723     void*              pNext;
4724     VkBool32           shaderDrawParameters;
4725 } VkPhysicalDeviceShaderDrawParametersFeatures;
4726
4727 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
4728
4729 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(deUint32* pApiVersion);
4730 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
4731 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
4732 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
4733 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, deUint32 deviceMask);
4734 typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
4735 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
4736 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
4737 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
4738 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
4739 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
4740 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
4741 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
4742 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
4743 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
4744 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
4745 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
4746 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
4747 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
4748 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
4749 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
4750 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
4751 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
4752 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
4753 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
4754 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
4755 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
4756 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
4757
4758 #ifndef VK_NO_PROTOTYPES
4759 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
4760     deUint32*                                   pApiVersion);
4761
4762 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
4763     VkDevice                                    device,
4764     deUint32                                    bindInfoCount,
4765     const VkBindBufferMemoryInfo*               pBindInfos);
4766
4767 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
4768     VkDevice                                    device,
4769     deUint32                                    bindInfoCount,
4770     const VkBindImageMemoryInfo*                pBindInfos);
4771
4772 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
4773     VkDevice                                    device,
4774     deUint32                                    heapIndex,
4775     deUint32                                    localDeviceIndex,
4776     deUint32                                    remoteDeviceIndex,
4777     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
4778
4779 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
4780     VkCommandBuffer                             commandBuffer,
4781     deUint32                                    deviceMask);
4782
4783 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
4784     VkCommandBuffer                             commandBuffer,
4785     deUint32                                    baseGroupX,
4786     deUint32                                    baseGroupY,
4787     deUint32                                    baseGroupZ,
4788     deUint32                                    groupCountX,
4789     deUint32                                    groupCountY,
4790     deUint32                                    groupCountZ);
4791
4792 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
4793     VkInstance                                  instance,
4794     deUint32*                                   pPhysicalDeviceGroupCount,
4795     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
4796
4797 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
4798     VkDevice                                    device,
4799     const VkImageMemoryRequirementsInfo2*       pInfo,
4800     VkMemoryRequirements2*                      pMemoryRequirements);
4801
4802 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
4803     VkDevice                                    device,
4804     const VkBufferMemoryRequirementsInfo2*      pInfo,
4805     VkMemoryRequirements2*                      pMemoryRequirements);
4806
4807 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
4808     VkDevice                                    device,
4809     const VkImageSparseMemoryRequirementsInfo2* pInfo,
4810     deUint32*                                   pSparseMemoryRequirementCount,
4811     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
4812
4813 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
4814     VkPhysicalDevice                            physicalDevice,
4815     VkPhysicalDeviceFeatures2*                  pFeatures);
4816
4817 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
4818     VkPhysicalDevice                            physicalDevice,
4819     VkPhysicalDeviceProperties2*                pProperties);
4820
4821 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
4822     VkPhysicalDevice                            physicalDevice,
4823     VkFormat                                    format,
4824     VkFormatProperties2*                        pFormatProperties);
4825
4826 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
4827     VkPhysicalDevice                            physicalDevice,
4828     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
4829     VkImageFormatProperties2*                   pImageFormatProperties);
4830
4831 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
4832     VkPhysicalDevice                            physicalDevice,
4833     deUint32*                                   pQueueFamilyPropertyCount,
4834     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
4835
4836 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
4837     VkPhysicalDevice                            physicalDevice,
4838     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
4839
4840 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
4841     VkPhysicalDevice                            physicalDevice,
4842     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
4843     deUint32*                                   pPropertyCount,
4844     VkSparseImageFormatProperties2*             pProperties);
4845
4846 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
4847     VkDevice                                    device,
4848     VkCommandPool                               commandPool,
4849     VkCommandPoolTrimFlags                      flags);
4850
4851 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
4852     VkDevice                                    device,
4853     const VkDeviceQueueInfo2*                   pQueueInfo,
4854     VkQueue*                                    pQueue);
4855
4856 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
4857     VkDevice                                    device,
4858     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
4859     const VkAllocationCallbacks*                pAllocator,
4860     VkSamplerYcbcrConversion*                   pYcbcrConversion);
4861
4862 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
4863     VkDevice                                    device,
4864     VkSamplerYcbcrConversion                    ycbcrConversion,
4865     const VkAllocationCallbacks*                pAllocator);
4866
4867 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
4868     VkDevice                                    device,
4869     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
4870     const VkAllocationCallbacks*                pAllocator,
4871     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
4872
4873 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
4874     VkDevice                                    device,
4875     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4876     const VkAllocationCallbacks*                pAllocator);
4877
4878 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
4879     VkDevice                                    device,
4880     VkDescriptorSet                             descriptorSet,
4881     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4882     const void*                                 pData);
4883
4884 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
4885     VkPhysicalDevice                            physicalDevice,
4886     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
4887     VkExternalBufferProperties*                 pExternalBufferProperties);
4888
4889 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
4890     VkPhysicalDevice                            physicalDevice,
4891     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
4892     VkExternalFenceProperties*                  pExternalFenceProperties);
4893
4894 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
4895     VkPhysicalDevice                            physicalDevice,
4896     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
4897     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
4898
4899 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
4900     VkDevice                                    device,
4901     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
4902     VkDescriptorSetLayoutSupport*               pSupport);
4903 #endif
4904
4905
4906 #define VK_VERSION_1_2 1
4907 // Vulkan 1.2 version number
4908 #define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0
4909
4910 typedef deUint64 VkDeviceAddress;
4911 #define VK_MAX_DRIVER_NAME_SIZE           256
4912 #define VK_MAX_DRIVER_INFO_SIZE           256
4913
4914 typedef enum VkDriverId {
4915     VK_DRIVER_ID_AMD_PROPRIETARY = 1,
4916     VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
4917     VK_DRIVER_ID_MESA_RADV = 3,
4918     VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
4919     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
4920     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
4921     VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
4922     VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
4923     VK_DRIVER_ID_ARM_PROPRIETARY = 9,
4924     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
4925     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
4926     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
4927     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
4928     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
4929     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
4930     VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
4931     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
4932     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
4933     VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
4934     VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
4935     VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
4936     VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
4937     VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
4938     VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
4939     VK_DRIVER_ID_BEGIN_RANGE = VK_DRIVER_ID_AMD_PROPRIETARY,
4940     VK_DRIVER_ID_END_RANGE = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
4941     VK_DRIVER_ID_RANGE_SIZE = (VK_DRIVER_ID_BROADCOM_PROPRIETARY - VK_DRIVER_ID_AMD_PROPRIETARY + 1),
4942     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
4943 } VkDriverId;
4944
4945 typedef enum VkShaderFloatControlsIndependence {
4946     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
4947     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
4948     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
4949     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
4950     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
4951     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
4952     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_BEGIN_RANGE = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
4953     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_END_RANGE = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
4954     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_RANGE_SIZE = (VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY + 1),
4955     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
4956 } VkShaderFloatControlsIndependence;
4957
4958 typedef enum VkSamplerReductionMode {
4959     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
4960     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
4961     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
4962     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
4963     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
4964     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
4965     VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
4966     VK_SAMPLER_REDUCTION_MODE_END_RANGE = VK_SAMPLER_REDUCTION_MODE_MAX,
4967     VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE = (VK_SAMPLER_REDUCTION_MODE_MAX - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE + 1),
4968     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
4969 } VkSamplerReductionMode;
4970
4971 typedef enum VkSemaphoreType {
4972     VK_SEMAPHORE_TYPE_BINARY = 0,
4973     VK_SEMAPHORE_TYPE_TIMELINE = 1,
4974     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
4975     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
4976     VK_SEMAPHORE_TYPE_BEGIN_RANGE = VK_SEMAPHORE_TYPE_BINARY,
4977     VK_SEMAPHORE_TYPE_END_RANGE = VK_SEMAPHORE_TYPE_TIMELINE,
4978     VK_SEMAPHORE_TYPE_RANGE_SIZE = (VK_SEMAPHORE_TYPE_TIMELINE - VK_SEMAPHORE_TYPE_BINARY + 1),
4979     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
4980 } VkSemaphoreType;
4981
4982 typedef enum VkResolveModeFlagBits {
4983     VK_RESOLVE_MODE_NONE = 0,
4984     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
4985     VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
4986     VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
4987     VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
4988     VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
4989     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
4990     VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
4991     VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
4992     VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
4993     VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4994 } VkResolveModeFlagBits;
4995 typedef VkFlags VkResolveModeFlags;
4996
4997 typedef enum VkDescriptorBindingFlagBits {
4998     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
4999     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
5000     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
5001     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
5002     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
5003     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
5004     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
5005     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
5006     VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5007 } VkDescriptorBindingFlagBits;
5008 typedef VkFlags VkDescriptorBindingFlags;
5009
5010 typedef enum VkSemaphoreWaitFlagBits {
5011     VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
5012     VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
5013     VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5014 } VkSemaphoreWaitFlagBits;
5015 typedef VkFlags VkSemaphoreWaitFlags;
5016 typedef struct VkPhysicalDeviceVulkan11Features {
5017     VkStructureType    sType;
5018     void*              pNext;
5019     VkBool32           storageBuffer16BitAccess;
5020     VkBool32           uniformAndStorageBuffer16BitAccess;
5021     VkBool32           storagePushConstant16;
5022     VkBool32           storageInputOutput16;
5023     VkBool32           multiview;
5024     VkBool32           multiviewGeometryShader;
5025     VkBool32           multiviewTessellationShader;
5026     VkBool32           variablePointersStorageBuffer;
5027     VkBool32           variablePointers;
5028     VkBool32           protectedMemory;
5029     VkBool32           samplerYcbcrConversion;
5030     VkBool32           shaderDrawParameters;
5031 } VkPhysicalDeviceVulkan11Features;
5032
5033 typedef struct VkPhysicalDeviceVulkan11Properties {
5034     VkStructureType            sType;
5035     void*                      pNext;
5036     deUint8                    deviceUUID[VK_UUID_SIZE];
5037     deUint8                    driverUUID[VK_UUID_SIZE];
5038     deUint8                    deviceLUID[VK_LUID_SIZE];
5039     deUint32                   deviceNodeMask;
5040     VkBool32                   deviceLUIDValid;
5041     deUint32                   subgroupSize;
5042     VkShaderStageFlags         subgroupSupportedStages;
5043     VkSubgroupFeatureFlags     subgroupSupportedOperations;
5044     VkBool32                   subgroupQuadOperationsInAllStages;
5045     VkPointClippingBehavior    pointClippingBehavior;
5046     deUint32                   maxMultiviewViewCount;
5047     deUint32                   maxMultiviewInstanceIndex;
5048     VkBool32                   protectedNoFault;
5049     deUint32                   maxPerSetDescriptors;
5050     VkDeviceSize               maxMemoryAllocationSize;
5051 } VkPhysicalDeviceVulkan11Properties;
5052
5053 typedef struct VkPhysicalDeviceVulkan12Features {
5054     VkStructureType    sType;
5055     void*              pNext;
5056     VkBool32           samplerMirrorClampToEdge;
5057     VkBool32           drawIndirectCount;
5058     VkBool32           storageBuffer8BitAccess;
5059     VkBool32           uniformAndStorageBuffer8BitAccess;
5060     VkBool32           storagePushConstant8;
5061     VkBool32           shaderBufferInt64Atomics;
5062     VkBool32           shaderSharedInt64Atomics;
5063     VkBool32           shaderFloat16;
5064     VkBool32           shaderInt8;
5065     VkBool32           descriptorIndexing;
5066     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
5067     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
5068     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
5069     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
5070     VkBool32           shaderSampledImageArrayNonUniformIndexing;
5071     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
5072     VkBool32           shaderStorageImageArrayNonUniformIndexing;
5073     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
5074     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
5075     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
5076     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
5077     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
5078     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
5079     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
5080     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
5081     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
5082     VkBool32           descriptorBindingUpdateUnusedWhilePending;
5083     VkBool32           descriptorBindingPartiallyBound;
5084     VkBool32           descriptorBindingVariableDescriptorCount;
5085     VkBool32           runtimeDescriptorArray;
5086     VkBool32           samplerFilterMinmax;
5087     VkBool32           scalarBlockLayout;
5088     VkBool32           imagelessFramebuffer;
5089     VkBool32           uniformBufferStandardLayout;
5090     VkBool32           shaderSubgroupExtendedTypes;
5091     VkBool32           separateDepthStencilLayouts;
5092     VkBool32           hostQueryReset;
5093     VkBool32           timelineSemaphore;
5094     VkBool32           bufferDeviceAddress;
5095     VkBool32           bufferDeviceAddressCaptureReplay;
5096     VkBool32           bufferDeviceAddressMultiDevice;
5097     VkBool32           vulkanMemoryModel;
5098     VkBool32           vulkanMemoryModelDeviceScope;
5099     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
5100     VkBool32           shaderOutputViewportIndex;
5101     VkBool32           shaderOutputLayer;
5102     VkBool32           subgroupBroadcastDynamicId;
5103 } VkPhysicalDeviceVulkan12Features;
5104
5105 typedef struct VkConformanceVersion {
5106     deUint8    major;
5107     deUint8    minor;
5108     deUint8    subminor;
5109     deUint8    patch;
5110 } VkConformanceVersion;
5111
5112 typedef struct VkPhysicalDeviceVulkan12Properties {
5113     VkStructureType                      sType;
5114     void*                                pNext;
5115     VkDriverId                           driverID;
5116     char                                 driverName[VK_MAX_DRIVER_NAME_SIZE];
5117     char                                 driverInfo[VK_MAX_DRIVER_INFO_SIZE];
5118     VkConformanceVersion                 conformanceVersion;
5119     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
5120     VkShaderFloatControlsIndependence    roundingModeIndependence;
5121     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
5122     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
5123     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
5124     VkBool32                             shaderDenormPreserveFloat16;
5125     VkBool32                             shaderDenormPreserveFloat32;
5126     VkBool32                             shaderDenormPreserveFloat64;
5127     VkBool32                             shaderDenormFlushToZeroFloat16;
5128     VkBool32                             shaderDenormFlushToZeroFloat32;
5129     VkBool32                             shaderDenormFlushToZeroFloat64;
5130     VkBool32                             shaderRoundingModeRTEFloat16;
5131     VkBool32                             shaderRoundingModeRTEFloat32;
5132     VkBool32                             shaderRoundingModeRTEFloat64;
5133     VkBool32                             shaderRoundingModeRTZFloat16;
5134     VkBool32                             shaderRoundingModeRTZFloat32;
5135     VkBool32                             shaderRoundingModeRTZFloat64;
5136     deUint32                             maxUpdateAfterBindDescriptorsInAllPools;
5137     VkBool32                             shaderUniformBufferArrayNonUniformIndexingNative;
5138     VkBool32                             shaderSampledImageArrayNonUniformIndexingNative;
5139     VkBool32                             shaderStorageBufferArrayNonUniformIndexingNative;
5140     VkBool32                             shaderStorageImageArrayNonUniformIndexingNative;
5141     VkBool32                             shaderInputAttachmentArrayNonUniformIndexingNative;
5142     VkBool32                             robustBufferAccessUpdateAfterBind;
5143     VkBool32                             quadDivergentImplicitLod;
5144     deUint32                             maxPerStageDescriptorUpdateAfterBindSamplers;
5145     deUint32                             maxPerStageDescriptorUpdateAfterBindUniformBuffers;
5146     deUint32                             maxPerStageDescriptorUpdateAfterBindStorageBuffers;
5147     deUint32                             maxPerStageDescriptorUpdateAfterBindSampledImages;
5148     deUint32                             maxPerStageDescriptorUpdateAfterBindStorageImages;
5149     deUint32                             maxPerStageDescriptorUpdateAfterBindInputAttachments;
5150     deUint32                             maxPerStageUpdateAfterBindResources;
5151     deUint32                             maxDescriptorSetUpdateAfterBindSamplers;
5152     deUint32                             maxDescriptorSetUpdateAfterBindUniformBuffers;
5153     deUint32                             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
5154     deUint32                             maxDescriptorSetUpdateAfterBindStorageBuffers;
5155     deUint32                             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
5156     deUint32                             maxDescriptorSetUpdateAfterBindSampledImages;
5157     deUint32                             maxDescriptorSetUpdateAfterBindStorageImages;
5158     deUint32                             maxDescriptorSetUpdateAfterBindInputAttachments;
5159     VkResolveModeFlags                   supportedDepthResolveModes;
5160     VkResolveModeFlags                   supportedStencilResolveModes;
5161     VkBool32                             independentResolveNone;
5162     VkBool32                             independentResolve;
5163     VkBool32                             filterMinmaxSingleComponentFormats;
5164     VkBool32                             filterMinmaxImageComponentMapping;
5165     deUint64                             maxTimelineSemaphoreValueDifference;
5166     VkSampleCountFlags                   framebufferIntegerColorSampleCounts;
5167 } VkPhysicalDeviceVulkan12Properties;
5168
5169 typedef struct VkImageFormatListCreateInfo {
5170     VkStructureType    sType;
5171     const void*        pNext;
5172     deUint32           viewFormatCount;
5173     const VkFormat*    pViewFormats;
5174 } VkImageFormatListCreateInfo;
5175
5176 typedef struct VkAttachmentDescription2 {
5177     VkStructureType                 sType;
5178     const void*                     pNext;
5179     VkAttachmentDescriptionFlags    flags;
5180     VkFormat                        format;
5181     VkSampleCountFlagBits           samples;
5182     VkAttachmentLoadOp              loadOp;
5183     VkAttachmentStoreOp             storeOp;
5184     VkAttachmentLoadOp              stencilLoadOp;
5185     VkAttachmentStoreOp             stencilStoreOp;
5186     VkImageLayout                   initialLayout;
5187     VkImageLayout                   finalLayout;
5188 } VkAttachmentDescription2;
5189
5190 typedef struct VkAttachmentReference2 {
5191     VkStructureType       sType;
5192     const void*           pNext;
5193     deUint32              attachment;
5194     VkImageLayout         layout;
5195     VkImageAspectFlags    aspectMask;
5196 } VkAttachmentReference2;
5197
5198 typedef struct VkSubpassDescription2 {
5199     VkStructureType                  sType;
5200     const void*                      pNext;
5201     VkSubpassDescriptionFlags        flags;
5202     VkPipelineBindPoint              pipelineBindPoint;
5203     deUint32                         viewMask;
5204     deUint32                         inputAttachmentCount;
5205     const VkAttachmentReference2*    pInputAttachments;
5206     deUint32                         colorAttachmentCount;
5207     const VkAttachmentReference2*    pColorAttachments;
5208     const VkAttachmentReference2*    pResolveAttachments;
5209     const VkAttachmentReference2*    pDepthStencilAttachment;
5210     deUint32                         preserveAttachmentCount;
5211     const deUint32*                  pPreserveAttachments;
5212 } VkSubpassDescription2;
5213
5214 typedef struct VkSubpassDependency2 {
5215     VkStructureType         sType;
5216     const void*             pNext;
5217     deUint32                srcSubpass;
5218     deUint32                dstSubpass;
5219     VkPipelineStageFlags    srcStageMask;
5220     VkPipelineStageFlags    dstStageMask;
5221     VkAccessFlags           srcAccessMask;
5222     VkAccessFlags           dstAccessMask;
5223     VkDependencyFlags       dependencyFlags;
5224     deInt32                 viewOffset;
5225 } VkSubpassDependency2;
5226
5227 typedef struct VkRenderPassCreateInfo2 {
5228     VkStructureType                    sType;
5229     const void*                        pNext;
5230     VkRenderPassCreateFlags            flags;
5231     deUint32                           attachmentCount;
5232     const VkAttachmentDescription2*    pAttachments;
5233     deUint32                           subpassCount;
5234     const VkSubpassDescription2*       pSubpasses;
5235     deUint32                           dependencyCount;
5236     const VkSubpassDependency2*        pDependencies;
5237     deUint32                           correlatedViewMaskCount;
5238     const deUint32*                    pCorrelatedViewMasks;
5239 } VkRenderPassCreateInfo2;
5240
5241 typedef struct VkSubpassBeginInfo {
5242     VkStructureType      sType;
5243     const void*          pNext;
5244     VkSubpassContents    contents;
5245 } VkSubpassBeginInfo;
5246
5247 typedef struct VkSubpassEndInfo {
5248     VkStructureType    sType;
5249     const void*        pNext;
5250 } VkSubpassEndInfo;
5251
5252 typedef struct VkPhysicalDevice8BitStorageFeatures {
5253     VkStructureType    sType;
5254     void*              pNext;
5255     VkBool32           storageBuffer8BitAccess;
5256     VkBool32           uniformAndStorageBuffer8BitAccess;
5257     VkBool32           storagePushConstant8;
5258 } VkPhysicalDevice8BitStorageFeatures;
5259
5260 typedef struct VkPhysicalDeviceDriverProperties {
5261     VkStructureType         sType;
5262     void*                   pNext;
5263     VkDriverId              driverID;
5264     char                    driverName[VK_MAX_DRIVER_NAME_SIZE];
5265     char                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
5266     VkConformanceVersion    conformanceVersion;
5267 } VkPhysicalDeviceDriverProperties;
5268
5269 typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
5270     VkStructureType    sType;
5271     void*              pNext;
5272     VkBool32           shaderBufferInt64Atomics;
5273     VkBool32           shaderSharedInt64Atomics;
5274 } VkPhysicalDeviceShaderAtomicInt64Features;
5275
5276 typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
5277     VkStructureType    sType;
5278     void*              pNext;
5279     VkBool32           shaderFloat16;
5280     VkBool32           shaderInt8;
5281 } VkPhysicalDeviceShaderFloat16Int8Features;
5282
5283 typedef struct VkPhysicalDeviceFloatControlsProperties {
5284     VkStructureType                      sType;
5285     void*                                pNext;
5286     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
5287     VkShaderFloatControlsIndependence    roundingModeIndependence;
5288     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
5289     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
5290     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
5291     VkBool32                             shaderDenormPreserveFloat16;
5292     VkBool32                             shaderDenormPreserveFloat32;
5293     VkBool32                             shaderDenormPreserveFloat64;
5294     VkBool32                             shaderDenormFlushToZeroFloat16;
5295     VkBool32                             shaderDenormFlushToZeroFloat32;
5296     VkBool32                             shaderDenormFlushToZeroFloat64;
5297     VkBool32                             shaderRoundingModeRTEFloat16;
5298     VkBool32                             shaderRoundingModeRTEFloat32;
5299     VkBool32                             shaderRoundingModeRTEFloat64;
5300     VkBool32                             shaderRoundingModeRTZFloat16;
5301     VkBool32                             shaderRoundingModeRTZFloat32;
5302     VkBool32                             shaderRoundingModeRTZFloat64;
5303 } VkPhysicalDeviceFloatControlsProperties;
5304
5305 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
5306     VkStructureType                    sType;
5307     const void*                        pNext;
5308     deUint32                           bindingCount;
5309     const VkDescriptorBindingFlags*    pBindingFlags;
5310 } VkDescriptorSetLayoutBindingFlagsCreateInfo;
5311
5312 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
5313     VkStructureType    sType;
5314     void*              pNext;
5315     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
5316     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
5317     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
5318     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
5319     VkBool32           shaderSampledImageArrayNonUniformIndexing;
5320     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
5321     VkBool32           shaderStorageImageArrayNonUniformIndexing;
5322     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
5323     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
5324     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
5325     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
5326     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
5327     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
5328     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
5329     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
5330     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
5331     VkBool32           descriptorBindingUpdateUnusedWhilePending;
5332     VkBool32           descriptorBindingPartiallyBound;
5333     VkBool32           descriptorBindingVariableDescriptorCount;
5334     VkBool32           runtimeDescriptorArray;
5335 } VkPhysicalDeviceDescriptorIndexingFeatures;
5336
5337 typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
5338     VkStructureType    sType;
5339     void*              pNext;
5340     deUint32           maxUpdateAfterBindDescriptorsInAllPools;
5341     VkBool32           shaderUniformBufferArrayNonUniformIndexingNative;
5342     VkBool32           shaderSampledImageArrayNonUniformIndexingNative;
5343     VkBool32           shaderStorageBufferArrayNonUniformIndexingNative;
5344     VkBool32           shaderStorageImageArrayNonUniformIndexingNative;
5345     VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative;
5346     VkBool32           robustBufferAccessUpdateAfterBind;
5347     VkBool32           quadDivergentImplicitLod;
5348     deUint32           maxPerStageDescriptorUpdateAfterBindSamplers;
5349     deUint32           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
5350     deUint32           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
5351     deUint32           maxPerStageDescriptorUpdateAfterBindSampledImages;
5352     deUint32           maxPerStageDescriptorUpdateAfterBindStorageImages;
5353     deUint32           maxPerStageDescriptorUpdateAfterBindInputAttachments;
5354     deUint32           maxPerStageUpdateAfterBindResources;
5355     deUint32           maxDescriptorSetUpdateAfterBindSamplers;
5356     deUint32           maxDescriptorSetUpdateAfterBindUniformBuffers;
5357     deUint32           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
5358     deUint32           maxDescriptorSetUpdateAfterBindStorageBuffers;
5359     deUint32           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
5360     deUint32           maxDescriptorSetUpdateAfterBindSampledImages;
5361     deUint32           maxDescriptorSetUpdateAfterBindStorageImages;
5362     deUint32           maxDescriptorSetUpdateAfterBindInputAttachments;
5363 } VkPhysicalDeviceDescriptorIndexingProperties;
5364
5365 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
5366     VkStructureType    sType;
5367     const void*        pNext;
5368     deUint32           descriptorSetCount;
5369     const deUint32*    pDescriptorCounts;
5370 } VkDescriptorSetVariableDescriptorCountAllocateInfo;
5371
5372 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
5373     VkStructureType    sType;
5374     void*              pNext;
5375     deUint32           maxVariableDescriptorCount;
5376 } VkDescriptorSetVariableDescriptorCountLayoutSupport;
5377
5378 typedef struct VkSubpassDescriptionDepthStencilResolve {
5379     VkStructureType                  sType;
5380     const void*                      pNext;
5381     VkResolveModeFlagBits            depthResolveMode;
5382     VkResolveModeFlagBits            stencilResolveMode;
5383     const VkAttachmentReference2*    pDepthStencilResolveAttachment;
5384 } VkSubpassDescriptionDepthStencilResolve;
5385
5386 typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
5387     VkStructureType       sType;
5388     void*                 pNext;
5389     VkResolveModeFlags    supportedDepthResolveModes;
5390     VkResolveModeFlags    supportedStencilResolveModes;
5391     VkBool32              independentResolveNone;
5392     VkBool32              independentResolve;
5393 } VkPhysicalDeviceDepthStencilResolveProperties;
5394
5395 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
5396     VkStructureType    sType;
5397     void*              pNext;
5398     VkBool32           scalarBlockLayout;
5399 } VkPhysicalDeviceScalarBlockLayoutFeatures;
5400
5401 typedef struct VkImageStencilUsageCreateInfo {
5402     VkStructureType      sType;
5403     const void*          pNext;
5404     VkImageUsageFlags    stencilUsage;
5405 } VkImageStencilUsageCreateInfo;
5406
5407 typedef struct VkSamplerReductionModeCreateInfo {
5408     VkStructureType           sType;
5409     const void*               pNext;
5410     VkSamplerReductionMode    reductionMode;
5411 } VkSamplerReductionModeCreateInfo;
5412
5413 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
5414     VkStructureType    sType;
5415     void*              pNext;
5416     VkBool32           filterMinmaxSingleComponentFormats;
5417     VkBool32           filterMinmaxImageComponentMapping;
5418 } VkPhysicalDeviceSamplerFilterMinmaxProperties;
5419
5420 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
5421     VkStructureType    sType;
5422     void*              pNext;
5423     VkBool32           vulkanMemoryModel;
5424     VkBool32           vulkanMemoryModelDeviceScope;
5425     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
5426 } VkPhysicalDeviceVulkanMemoryModelFeatures;
5427
5428 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
5429     VkStructureType    sType;
5430     void*              pNext;
5431     VkBool32           imagelessFramebuffer;
5432 } VkPhysicalDeviceImagelessFramebufferFeatures;
5433
5434 typedef struct VkFramebufferAttachmentImageInfo {
5435     VkStructureType       sType;
5436     const void*           pNext;
5437     VkImageCreateFlags    flags;
5438     VkImageUsageFlags     usage;
5439     deUint32              width;
5440     deUint32              height;
5441     deUint32              layerCount;
5442     deUint32              viewFormatCount;
5443     const VkFormat*       pViewFormats;
5444 } VkFramebufferAttachmentImageInfo;
5445
5446 typedef struct VkFramebufferAttachmentsCreateInfo {
5447     VkStructureType                            sType;
5448     const void*                                pNext;
5449     deUint32                                   attachmentImageInfoCount;
5450     const VkFramebufferAttachmentImageInfo*    pAttachmentImageInfos;
5451 } VkFramebufferAttachmentsCreateInfo;
5452
5453 typedef struct VkRenderPassAttachmentBeginInfo {
5454     VkStructureType       sType;
5455     const void*           pNext;
5456     deUint32              attachmentCount;
5457     const VkImageView*    pAttachments;
5458 } VkRenderPassAttachmentBeginInfo;
5459
5460 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
5461     VkStructureType    sType;
5462     void*              pNext;
5463     VkBool32           uniformBufferStandardLayout;
5464 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
5465
5466 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
5467     VkStructureType    sType;
5468     void*              pNext;
5469     VkBool32           shaderSubgroupExtendedTypes;
5470 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
5471
5472 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
5473     VkStructureType    sType;
5474     void*              pNext;
5475     VkBool32           separateDepthStencilLayouts;
5476 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
5477
5478 typedef struct VkAttachmentReferenceStencilLayout {
5479     VkStructureType    sType;
5480     void*              pNext;
5481     VkImageLayout      stencilLayout;
5482 } VkAttachmentReferenceStencilLayout;
5483
5484 typedef struct VkAttachmentDescriptionStencilLayout {
5485     VkStructureType    sType;
5486     void*              pNext;
5487     VkImageLayout      stencilInitialLayout;
5488     VkImageLayout      stencilFinalLayout;
5489 } VkAttachmentDescriptionStencilLayout;
5490
5491 typedef struct VkPhysicalDeviceHostQueryResetFeatures {
5492     VkStructureType    sType;
5493     void*              pNext;
5494     VkBool32           hostQueryReset;
5495 } VkPhysicalDeviceHostQueryResetFeatures;
5496
5497 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
5498     VkStructureType    sType;
5499     void*              pNext;
5500     VkBool32           timelineSemaphore;
5501 } VkPhysicalDeviceTimelineSemaphoreFeatures;
5502
5503 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
5504     VkStructureType    sType;
5505     void*              pNext;
5506     deUint64           maxTimelineSemaphoreValueDifference;
5507 } VkPhysicalDeviceTimelineSemaphoreProperties;
5508
5509 typedef struct VkSemaphoreTypeCreateInfo {
5510     VkStructureType    sType;
5511     const void*        pNext;
5512     VkSemaphoreType    semaphoreType;
5513     deUint64           initialValue;
5514 } VkSemaphoreTypeCreateInfo;
5515
5516 typedef struct VkTimelineSemaphoreSubmitInfo {
5517     VkStructureType    sType;
5518     const void*        pNext;
5519     deUint32           waitSemaphoreValueCount;
5520     const deUint64*    pWaitSemaphoreValues;
5521     deUint32           signalSemaphoreValueCount;
5522     const deUint64*    pSignalSemaphoreValues;
5523 } VkTimelineSemaphoreSubmitInfo;
5524
5525 typedef struct VkSemaphoreWaitInfo {
5526     VkStructureType         sType;
5527     const void*             pNext;
5528     VkSemaphoreWaitFlags    flags;
5529     deUint32                semaphoreCount;
5530     const VkSemaphore*      pSemaphores;
5531     const deUint64*         pValues;
5532 } VkSemaphoreWaitInfo;
5533
5534 typedef struct VkSemaphoreSignalInfo {
5535     VkStructureType    sType;
5536     const void*        pNext;
5537     VkSemaphore        semaphore;
5538     deUint64           value;
5539 } VkSemaphoreSignalInfo;
5540
5541 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
5542     VkStructureType    sType;
5543     void*              pNext;
5544     VkBool32           bufferDeviceAddress;
5545     VkBool32           bufferDeviceAddressCaptureReplay;
5546     VkBool32           bufferDeviceAddressMultiDevice;
5547 } VkPhysicalDeviceBufferDeviceAddressFeatures;
5548
5549 typedef struct VkBufferDeviceAddressInfo {
5550     VkStructureType    sType;
5551     const void*        pNext;
5552     VkBuffer           buffer;
5553 } VkBufferDeviceAddressInfo;
5554
5555 typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
5556     VkStructureType    sType;
5557     const void*        pNext;
5558     deUint64           opaqueCaptureAddress;
5559 } VkBufferOpaqueCaptureAddressCreateInfo;
5560
5561 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
5562     VkStructureType    sType;
5563     const void*        pNext;
5564     deUint64           opaqueCaptureAddress;
5565 } VkMemoryOpaqueCaptureAddressAllocateInfo;
5566
5567 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
5568     VkStructureType    sType;
5569     const void*        pNext;
5570     VkDeviceMemory     memory;
5571 } VkDeviceMemoryOpaqueCaptureAddressInfo;
5572
5573 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
5574 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
5575 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
5576 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
5577 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
5578 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
5579 typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount);
5580 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, deUint64* pValue);
5581 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, deUint64 timeout);
5582 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
5583 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
5584 typedef deUint64 (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
5585 typedef deUint64 (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
5586
5587 #ifndef VK_NO_PROTOTYPES
5588 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
5589     VkCommandBuffer                             commandBuffer,
5590     VkBuffer                                    buffer,
5591     VkDeviceSize                                offset,
5592     VkBuffer                                    countBuffer,
5593     VkDeviceSize                                countBufferOffset,
5594     deUint32                                    maxDrawCount,
5595     deUint32                                    stride);
5596
5597 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
5598     VkCommandBuffer                             commandBuffer,
5599     VkBuffer                                    buffer,
5600     VkDeviceSize                                offset,
5601     VkBuffer                                    countBuffer,
5602     VkDeviceSize                                countBufferOffset,
5603     deUint32                                    maxDrawCount,
5604     deUint32                                    stride);
5605
5606 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
5607     VkDevice                                    device,
5608     const VkRenderPassCreateInfo2*              pCreateInfo,
5609     const VkAllocationCallbacks*                pAllocator,
5610     VkRenderPass*                               pRenderPass);
5611
5612 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
5613     VkCommandBuffer                             commandBuffer,
5614     const VkRenderPassBeginInfo*                pRenderPassBegin,
5615     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
5616
5617 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
5618     VkCommandBuffer                             commandBuffer,
5619     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
5620     const VkSubpassEndInfo*                     pSubpassEndInfo);
5621
5622 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
5623     VkCommandBuffer                             commandBuffer,
5624     const VkSubpassEndInfo*                     pSubpassEndInfo);
5625
5626 VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
5627     VkDevice                                    device,
5628     VkQueryPool                                 queryPool,
5629     deUint32                                    firstQuery,
5630     deUint32                                    queryCount);
5631
5632 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
5633     VkDevice                                    device,
5634     VkSemaphore                                 semaphore,
5635     deUint64*                                   pValue);
5636
5637 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
5638     VkDevice                                    device,
5639     const VkSemaphoreWaitInfo*                  pWaitInfo,
5640     deUint64                                    timeout);
5641
5642 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
5643     VkDevice                                    device,
5644     const VkSemaphoreSignalInfo*                pSignalInfo);
5645
5646 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
5647     VkDevice                                    device,
5648     const VkBufferDeviceAddressInfo*            pInfo);
5649
5650 VKAPI_ATTR deUint64 VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
5651     VkDevice                                    device,
5652     const VkBufferDeviceAddressInfo*            pInfo);
5653
5654 VKAPI_ATTR deUint64 VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
5655     VkDevice                                    device,
5656     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
5657 #endif
5658
5659
5660 #define VK_KHR_surface 1
5661 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
5662 #define VK_KHR_SURFACE_SPEC_VERSION       25
5663 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
5664
5665 typedef enum VkColorSpaceKHR {
5666     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
5667     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
5668     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
5669     VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
5670     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
5671     VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
5672     VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
5673     VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
5674     VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
5675     VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
5676     VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
5677     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
5678     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
5679     VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
5680     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
5681     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
5682     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
5683     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
5684     VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
5685     VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
5686     VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
5687     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
5688 } VkColorSpaceKHR;
5689
5690 typedef enum VkPresentModeKHR {
5691     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
5692     VK_PRESENT_MODE_MAILBOX_KHR = 1,
5693     VK_PRESENT_MODE_FIFO_KHR = 2,
5694     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
5695     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
5696     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
5697     VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
5698     VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
5699     VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
5700     VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
5701 } VkPresentModeKHR;
5702
5703 typedef enum VkSurfaceTransformFlagBitsKHR {
5704     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
5705     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
5706     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
5707     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
5708     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
5709     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
5710     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
5711     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
5712     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
5713     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
5714 } VkSurfaceTransformFlagBitsKHR;
5715 typedef VkFlags VkSurfaceTransformFlagsKHR;
5716
5717 typedef enum VkCompositeAlphaFlagBitsKHR {
5718     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
5719     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
5720     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
5721     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
5722     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
5723 } VkCompositeAlphaFlagBitsKHR;
5724 typedef VkFlags VkCompositeAlphaFlagsKHR;
5725 typedef struct VkSurfaceCapabilitiesKHR {
5726     deUint32                         minImageCount;
5727     deUint32                         maxImageCount;
5728     VkExtent2D                       currentExtent;
5729     VkExtent2D                       minImageExtent;
5730     VkExtent2D                       maxImageExtent;
5731     deUint32                         maxImageArrayLayers;
5732     VkSurfaceTransformFlagsKHR       supportedTransforms;
5733     VkSurfaceTransformFlagBitsKHR    currentTransform;
5734     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
5735     VkImageUsageFlags                supportedUsageFlags;
5736 } VkSurfaceCapabilitiesKHR;
5737
5738 typedef struct VkSurfaceFormatKHR {
5739     VkFormat           format;
5740     VkColorSpaceKHR    colorSpace;
5741 } VkSurfaceFormatKHR;
5742
5743 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
5744 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
5745 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
5746 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
5747 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pPresentModeCount, VkPresentModeKHR* pPresentModes);
5748
5749 #ifndef VK_NO_PROTOTYPES
5750 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
5751     VkInstance                                  instance,
5752     VkSurfaceKHR                                surface,
5753     const VkAllocationCallbacks*                pAllocator);
5754
5755 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
5756     VkPhysicalDevice                            physicalDevice,
5757     deUint32                                    queueFamilyIndex,
5758     VkSurfaceKHR                                surface,
5759     VkBool32*                                   pSupported);
5760
5761 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
5762     VkPhysicalDevice                            physicalDevice,
5763     VkSurfaceKHR                                surface,
5764     VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
5765
5766 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
5767     VkPhysicalDevice                            physicalDevice,
5768     VkSurfaceKHR                                surface,
5769     deUint32*                                   pSurfaceFormatCount,
5770     VkSurfaceFormatKHR*                         pSurfaceFormats);
5771
5772 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
5773     VkPhysicalDevice                            physicalDevice,
5774     VkSurfaceKHR                                surface,
5775     deUint32*                                   pPresentModeCount,
5776     VkPresentModeKHR*                           pPresentModes);
5777 #endif
5778
5779
5780 #define VK_KHR_swapchain 1
5781 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
5782 #define VK_KHR_SWAPCHAIN_SPEC_VERSION     70
5783 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
5784
5785 typedef enum VkSwapchainCreateFlagBitsKHR {
5786     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
5787     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
5788     VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
5789     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
5790 } VkSwapchainCreateFlagBitsKHR;
5791 typedef VkFlags VkSwapchainCreateFlagsKHR;
5792
5793 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
5794     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
5795     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
5796     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
5797     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
5798     VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
5799 } VkDeviceGroupPresentModeFlagBitsKHR;
5800 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
5801 typedef struct VkSwapchainCreateInfoKHR {
5802     VkStructureType                  sType;
5803     const void*                      pNext;
5804     VkSwapchainCreateFlagsKHR        flags;
5805     VkSurfaceKHR                     surface;
5806     deUint32                         minImageCount;
5807     VkFormat                         imageFormat;
5808     VkColorSpaceKHR                  imageColorSpace;
5809     VkExtent2D                       imageExtent;
5810     deUint32                         imageArrayLayers;
5811     VkImageUsageFlags                imageUsage;
5812     VkSharingMode                    imageSharingMode;
5813     deUint32                         queueFamilyIndexCount;
5814     const deUint32*                  pQueueFamilyIndices;
5815     VkSurfaceTransformFlagBitsKHR    preTransform;
5816     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
5817     VkPresentModeKHR                 presentMode;
5818     VkBool32                         clipped;
5819     VkSwapchainKHR                   oldSwapchain;
5820 } VkSwapchainCreateInfoKHR;
5821
5822 typedef struct VkPresentInfoKHR {
5823     VkStructureType          sType;
5824     const void*              pNext;
5825     deUint32                 waitSemaphoreCount;
5826     const VkSemaphore*       pWaitSemaphores;
5827     deUint32                 swapchainCount;
5828     const VkSwapchainKHR*    pSwapchains;
5829     const deUint32*          pImageIndices;
5830     VkResult*                pResults;
5831 } VkPresentInfoKHR;
5832
5833 typedef struct VkImageSwapchainCreateInfoKHR {
5834     VkStructureType    sType;
5835     const void*        pNext;
5836     VkSwapchainKHR     swapchain;
5837 } VkImageSwapchainCreateInfoKHR;
5838
5839 typedef struct VkBindImageMemorySwapchainInfoKHR {
5840     VkStructureType    sType;
5841     const void*        pNext;
5842     VkSwapchainKHR     swapchain;
5843     deUint32           imageIndex;
5844 } VkBindImageMemorySwapchainInfoKHR;
5845
5846 typedef struct VkAcquireNextImageInfoKHR {
5847     VkStructureType    sType;
5848     const void*        pNext;
5849     VkSwapchainKHR     swapchain;
5850     deUint64           timeout;
5851     VkSemaphore        semaphore;
5852     VkFence            fence;
5853     deUint32           deviceMask;
5854 } VkAcquireNextImageInfoKHR;
5855
5856 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
5857     VkStructureType                     sType;
5858     const void*                         pNext;
5859     deUint32                            presentMask[VK_MAX_DEVICE_GROUP_SIZE];
5860     VkDeviceGroupPresentModeFlagsKHR    modes;
5861 } VkDeviceGroupPresentCapabilitiesKHR;
5862
5863 typedef struct VkDeviceGroupPresentInfoKHR {
5864     VkStructureType                        sType;
5865     const void*                            pNext;
5866     deUint32                               swapchainCount;
5867     const deUint32*                        pDeviceMasks;
5868     VkDeviceGroupPresentModeFlagBitsKHR    mode;
5869 } VkDeviceGroupPresentInfoKHR;
5870
5871 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
5872     VkStructureType                     sType;
5873     const void*                         pNext;
5874     VkDeviceGroupPresentModeFlagsKHR    modes;
5875 } VkDeviceGroupSwapchainCreateInfoKHR;
5876
5877 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
5878 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
5879 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, deUint32* pSwapchainImageCount, VkImage* pSwapchainImages);
5880 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex);
5881 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
5882 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
5883 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
5884 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects);
5885 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex);
5886
5887 #ifndef VK_NO_PROTOTYPES
5888 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
5889     VkDevice                                    device,
5890     const VkSwapchainCreateInfoKHR*             pCreateInfo,
5891     const VkAllocationCallbacks*                pAllocator,
5892     VkSwapchainKHR*                             pSwapchain);
5893
5894 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
5895     VkDevice                                    device,
5896     VkSwapchainKHR                              swapchain,
5897     const VkAllocationCallbacks*                pAllocator);
5898
5899 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
5900     VkDevice                                    device,
5901     VkSwapchainKHR                              swapchain,
5902     deUint32*                                   pSwapchainImageCount,
5903     VkImage*                                    pSwapchainImages);
5904
5905 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
5906     VkDevice                                    device,
5907     VkSwapchainKHR                              swapchain,
5908     deUint64                                    timeout,
5909     VkSemaphore                                 semaphore,
5910     VkFence                                     fence,
5911     deUint32*                                   pImageIndex);
5912
5913 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
5914     VkQueue                                     queue,
5915     const VkPresentInfoKHR*                     pPresentInfo);
5916
5917 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
5918     VkDevice                                    device,
5919     VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
5920
5921 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
5922     VkDevice                                    device,
5923     VkSurfaceKHR                                surface,
5924     VkDeviceGroupPresentModeFlagsKHR*           pModes);
5925
5926 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
5927     VkPhysicalDevice                            physicalDevice,
5928     VkSurfaceKHR                                surface,
5929     deUint32*                                   pRectCount,
5930     VkRect2D*                                   pRects);
5931
5932 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
5933     VkDevice                                    device,
5934     const VkAcquireNextImageInfoKHR*            pAcquireInfo,
5935     deUint32*                                   pImageIndex);
5936 #endif
5937
5938
5939 #define VK_KHR_display 1
5940 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
5941 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
5942 #define VK_KHR_DISPLAY_SPEC_VERSION       23
5943 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
5944
5945 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
5946     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
5947     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
5948     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
5949     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
5950     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
5951 } VkDisplayPlaneAlphaFlagBitsKHR;
5952 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
5953 typedef VkFlags VkDisplayModeCreateFlagsKHR;
5954 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
5955 typedef struct VkDisplayPropertiesKHR {
5956     VkDisplayKHR                  display;
5957     const char*                   displayName;
5958     VkExtent2D                    physicalDimensions;
5959     VkExtent2D                    physicalResolution;
5960     VkSurfaceTransformFlagsKHR    supportedTransforms;
5961     VkBool32                      planeReorderPossible;
5962     VkBool32                      persistentContent;
5963 } VkDisplayPropertiesKHR;
5964
5965 typedef struct VkDisplayModeParametersKHR {
5966     VkExtent2D    visibleRegion;
5967     deUint32      refreshRate;
5968 } VkDisplayModeParametersKHR;
5969
5970 typedef struct VkDisplayModePropertiesKHR {
5971     VkDisplayModeKHR              displayMode;
5972     VkDisplayModeParametersKHR    parameters;
5973 } VkDisplayModePropertiesKHR;
5974
5975 typedef struct VkDisplayModeCreateInfoKHR {
5976     VkStructureType                sType;
5977     const void*                    pNext;
5978     VkDisplayModeCreateFlagsKHR    flags;
5979     VkDisplayModeParametersKHR     parameters;
5980 } VkDisplayModeCreateInfoKHR;
5981
5982 typedef struct VkDisplayPlaneCapabilitiesKHR {
5983     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
5984     VkOffset2D                     minSrcPosition;
5985     VkOffset2D                     maxSrcPosition;
5986     VkExtent2D                     minSrcExtent;
5987     VkExtent2D                     maxSrcExtent;
5988     VkOffset2D                     minDstPosition;
5989     VkOffset2D                     maxDstPosition;
5990     VkExtent2D                     minDstExtent;
5991     VkExtent2D                     maxDstExtent;
5992 } VkDisplayPlaneCapabilitiesKHR;
5993
5994 typedef struct VkDisplayPlanePropertiesKHR {
5995     VkDisplayKHR    currentDisplay;
5996     deUint32        currentStackIndex;
5997 } VkDisplayPlanePropertiesKHR;
5998
5999 typedef struct VkDisplaySurfaceCreateInfoKHR {
6000     VkStructureType                   sType;
6001     const void*                       pNext;
6002     VkDisplaySurfaceCreateFlagsKHR    flags;
6003     VkDisplayModeKHR                  displayMode;
6004     deUint32                          planeIndex;
6005     deUint32                          planeStackIndex;
6006     VkSurfaceTransformFlagBitsKHR     transform;
6007     float                             globalAlpha;
6008     VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
6009     VkExtent2D                        imageExtent;
6010 } VkDisplaySurfaceCreateInfoKHR;
6011
6012 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
6013 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
6014 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, deUint32 planeIndex, deUint32* pDisplayCount, VkDisplayKHR* pDisplays);
6015 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
6016 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
6017 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, deUint32 planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
6018 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
6019
6020 #ifndef VK_NO_PROTOTYPES
6021 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
6022     VkPhysicalDevice                            physicalDevice,
6023     deUint32*                                   pPropertyCount,
6024     VkDisplayPropertiesKHR*                     pProperties);
6025
6026 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
6027     VkPhysicalDevice                            physicalDevice,
6028     deUint32*                                   pPropertyCount,
6029     VkDisplayPlanePropertiesKHR*                pProperties);
6030
6031 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
6032     VkPhysicalDevice                            physicalDevice,
6033     deUint32                                    planeIndex,
6034     deUint32*                                   pDisplayCount,
6035     VkDisplayKHR*                               pDisplays);
6036
6037 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
6038     VkPhysicalDevice                            physicalDevice,
6039     VkDisplayKHR                                display,
6040     deUint32*                                   pPropertyCount,
6041     VkDisplayModePropertiesKHR*                 pProperties);
6042
6043 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
6044     VkPhysicalDevice                            physicalDevice,
6045     VkDisplayKHR                                display,
6046     const VkDisplayModeCreateInfoKHR*           pCreateInfo,
6047     const VkAllocationCallbacks*                pAllocator,
6048     VkDisplayModeKHR*                           pMode);
6049
6050 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
6051     VkPhysicalDevice                            physicalDevice,
6052     VkDisplayModeKHR                            mode,
6053     deUint32                                    planeIndex,
6054     VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
6055
6056 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
6057     VkInstance                                  instance,
6058     const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
6059     const VkAllocationCallbacks*                pAllocator,
6060     VkSurfaceKHR*                               pSurface);
6061 #endif
6062
6063
6064 #define VK_KHR_display_swapchain 1
6065 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
6066 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
6067 typedef struct VkDisplayPresentInfoKHR {
6068     VkStructureType    sType;
6069     const void*        pNext;
6070     VkRect2D           srcRect;
6071     VkRect2D           dstRect;
6072     VkBool32           persistent;
6073 } VkDisplayPresentInfoKHR;
6074
6075 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
6076
6077 #ifndef VK_NO_PROTOTYPES
6078 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
6079     VkDevice                                    device,
6080     deUint32                                    swapchainCount,
6081     const VkSwapchainCreateInfoKHR*             pCreateInfos,
6082     const VkAllocationCallbacks*                pAllocator,
6083     VkSwapchainKHR*                             pSwapchains);
6084 #endif
6085
6086
6087 #define VK_KHR_sampler_mirror_clamp_to_edge 1
6088 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
6089 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
6090
6091
6092 #define VK_KHR_multiview 1
6093 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
6094 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
6095 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
6096
6097 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
6098
6099 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
6100
6101
6102
6103 #define VK_KHR_get_physical_device_properties2 1
6104 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
6105 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
6106 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
6107
6108 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
6109
6110 typedef VkFormatProperties2 VkFormatProperties2KHR;
6111
6112 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
6113
6114 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
6115
6116 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
6117
6118 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
6119
6120 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
6121
6122 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
6123
6124 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
6125 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
6126 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
6127 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
6128 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
6129 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
6130 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
6131
6132 #ifndef VK_NO_PROTOTYPES
6133 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
6134     VkPhysicalDevice                            physicalDevice,
6135     VkPhysicalDeviceFeatures2*                  pFeatures);
6136
6137 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
6138     VkPhysicalDevice                            physicalDevice,
6139     VkPhysicalDeviceProperties2*                pProperties);
6140
6141 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
6142     VkPhysicalDevice                            physicalDevice,
6143     VkFormat                                    format,
6144     VkFormatProperties2*                        pFormatProperties);
6145
6146 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
6147     VkPhysicalDevice                            physicalDevice,
6148     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
6149     VkImageFormatProperties2*                   pImageFormatProperties);
6150
6151 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
6152     VkPhysicalDevice                            physicalDevice,
6153     deUint32*                                   pQueueFamilyPropertyCount,
6154     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
6155
6156 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
6157     VkPhysicalDevice                            physicalDevice,
6158     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
6159
6160 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
6161     VkPhysicalDevice                            physicalDevice,
6162     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
6163     deUint32*                                   pPropertyCount,
6164     VkSparseImageFormatProperties2*             pProperties);
6165 #endif
6166
6167
6168 #define VK_KHR_device_group 1
6169 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  4
6170 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
6171 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
6172
6173 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
6174
6175 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
6176
6177 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
6178
6179 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
6180
6181 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
6182
6183 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
6184
6185 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
6186
6187 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
6188
6189 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
6190
6191 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
6192
6193 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
6194 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, deUint32 deviceMask);
6195 typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
6196
6197 #ifndef VK_NO_PROTOTYPES
6198 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
6199     VkDevice                                    device,
6200     deUint32                                    heapIndex,
6201     deUint32                                    localDeviceIndex,
6202     deUint32                                    remoteDeviceIndex,
6203     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
6204
6205 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
6206     VkCommandBuffer                             commandBuffer,
6207     deUint32                                    deviceMask);
6208
6209 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
6210     VkCommandBuffer                             commandBuffer,
6211     deUint32                                    baseGroupX,
6212     deUint32                                    baseGroupY,
6213     deUint32                                    baseGroupZ,
6214     deUint32                                    groupCountX,
6215     deUint32                                    groupCountY,
6216     deUint32                                    groupCountZ);
6217 #endif
6218
6219
6220 #define VK_KHR_shader_draw_parameters 1
6221 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
6222 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
6223
6224
6225 #define VK_KHR_maintenance1 1
6226 #define VK_KHR_MAINTENANCE1_SPEC_VERSION  2
6227 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
6228 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
6229
6230 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
6231
6232 #ifndef VK_NO_PROTOTYPES
6233 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
6234     VkDevice                                    device,
6235     VkCommandPool                               commandPool,
6236     VkCommandPoolTrimFlags                      flags);
6237 #endif
6238
6239
6240 #define VK_KHR_device_group_creation 1
6241 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
6242 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
6243 #define VK_MAX_DEVICE_GROUP_SIZE_KHR      VK_MAX_DEVICE_GROUP_SIZE
6244 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
6245
6246 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
6247
6248 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
6249
6250 #ifndef VK_NO_PROTOTYPES
6251 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
6252     VkInstance                                  instance,
6253     deUint32*                                   pPhysicalDeviceGroupCount,
6254     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
6255 #endif
6256
6257
6258 #define VK_KHR_external_memory_capabilities 1
6259 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
6260 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
6261 #define VK_LUID_SIZE_KHR                  VK_LUID_SIZE
6262 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
6263
6264 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
6265
6266 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
6267
6268 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
6269
6270 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
6271
6272 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
6273
6274 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
6275
6276 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
6277
6278 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
6279
6280 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
6281
6282 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
6283
6284 #ifndef VK_NO_PROTOTYPES
6285 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
6286     VkPhysicalDevice                            physicalDevice,
6287     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
6288     VkExternalBufferProperties*                 pExternalBufferProperties);
6289 #endif
6290
6291
6292 #define VK_KHR_external_memory 1
6293 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
6294 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
6295 #define VK_QUEUE_FAMILY_EXTERNAL_KHR      VK_QUEUE_FAMILY_EXTERNAL
6296 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
6297
6298 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
6299
6300 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
6301
6302
6303
6304 #define VK_KHR_external_memory_fd 1
6305 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
6306 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
6307 typedef struct VkImportMemoryFdInfoKHR {
6308     VkStructureType                       sType;
6309     const void*                           pNext;
6310     VkExternalMemoryHandleTypeFlagBits    handleType;
6311     int                                   fd;
6312 } VkImportMemoryFdInfoKHR;
6313
6314 typedef struct VkMemoryFdPropertiesKHR {
6315     VkStructureType    sType;
6316     void*              pNext;
6317     deUint32           memoryTypeBits;
6318 } VkMemoryFdPropertiesKHR;
6319
6320 typedef struct VkMemoryGetFdInfoKHR {
6321     VkStructureType                       sType;
6322     const void*                           pNext;
6323     VkDeviceMemory                        memory;
6324     VkExternalMemoryHandleTypeFlagBits    handleType;
6325 } VkMemoryGetFdInfoKHR;
6326
6327 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
6328 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
6329
6330 #ifndef VK_NO_PROTOTYPES
6331 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
6332     VkDevice                                    device,
6333     const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
6334     int*                                        pFd);
6335
6336 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
6337     VkDevice                                    device,
6338     VkExternalMemoryHandleTypeFlagBits          handleType,
6339     int                                         fd,
6340     VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
6341 #endif
6342
6343
6344 #define VK_KHR_external_semaphore_capabilities 1
6345 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
6346 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
6347 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
6348
6349 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
6350
6351 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
6352
6353 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
6354
6355 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
6356
6357 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
6358
6359 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
6360
6361 #ifndef VK_NO_PROTOTYPES
6362 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
6363     VkPhysicalDevice                            physicalDevice,
6364     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
6365     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
6366 #endif
6367
6368
6369 #define VK_KHR_external_semaphore 1
6370 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
6371 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
6372 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
6373
6374 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
6375
6376 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
6377
6378
6379
6380 #define VK_KHR_external_semaphore_fd 1
6381 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
6382 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
6383 typedef struct VkImportSemaphoreFdInfoKHR {
6384     VkStructureType                          sType;
6385     const void*                              pNext;
6386     VkSemaphore                              semaphore;
6387     VkSemaphoreImportFlags                   flags;
6388     VkExternalSemaphoreHandleTypeFlagBits    handleType;
6389     int                                      fd;
6390 } VkImportSemaphoreFdInfoKHR;
6391
6392 typedef struct VkSemaphoreGetFdInfoKHR {
6393     VkStructureType                          sType;
6394     const void*                              pNext;
6395     VkSemaphore                              semaphore;
6396     VkExternalSemaphoreHandleTypeFlagBits    handleType;
6397 } VkSemaphoreGetFdInfoKHR;
6398
6399 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
6400 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
6401
6402 #ifndef VK_NO_PROTOTYPES
6403 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
6404     VkDevice                                    device,
6405     const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
6406
6407 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
6408     VkDevice                                    device,
6409     const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
6410     int*                                        pFd);
6411 #endif
6412
6413
6414 #define VK_KHR_push_descriptor 1
6415 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
6416 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
6417 typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
6418     VkStructureType    sType;
6419     void*              pNext;
6420     deUint32           maxPushDescriptors;
6421 } VkPhysicalDevicePushDescriptorPropertiesKHR;
6422
6423 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
6424 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, deUint32 set, const void* pData);
6425
6426 #ifndef VK_NO_PROTOTYPES
6427 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
6428     VkCommandBuffer                             commandBuffer,
6429     VkPipelineBindPoint                         pipelineBindPoint,
6430     VkPipelineLayout                            layout,
6431     deUint32                                    set,
6432     deUint32                                    descriptorWriteCount,
6433     const VkWriteDescriptorSet*                 pDescriptorWrites);
6434
6435 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
6436     VkCommandBuffer                             commandBuffer,
6437     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
6438     VkPipelineLayout                            layout,
6439     deUint32                                    set,
6440     const void*                                 pData);
6441 #endif
6442
6443
6444 #define VK_KHR_shader_float16_int8 1
6445 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
6446 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
6447 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
6448
6449 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
6450
6451
6452
6453 #define VK_KHR_16bit_storage 1
6454 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
6455 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
6456 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
6457
6458
6459
6460 #define VK_KHR_incremental_present 1
6461 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
6462 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
6463 typedef struct VkRectLayerKHR {
6464     VkOffset2D    offset;
6465     VkExtent2D    extent;
6466     deUint32      layer;
6467 } VkRectLayerKHR;
6468
6469 typedef struct VkPresentRegionKHR {
6470     deUint32                 rectangleCount;
6471     const VkRectLayerKHR*    pRectangles;
6472 } VkPresentRegionKHR;
6473
6474 typedef struct VkPresentRegionsKHR {
6475     VkStructureType              sType;
6476     const void*                  pNext;
6477     deUint32                     swapchainCount;
6478     const VkPresentRegionKHR*    pRegions;
6479 } VkPresentRegionsKHR;
6480
6481
6482
6483 #define VK_KHR_descriptor_update_template 1
6484 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
6485
6486 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
6487 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
6488 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
6489
6490 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
6491
6492 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
6493
6494 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
6495
6496 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
6497 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
6498 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
6499
6500 #ifndef VK_NO_PROTOTYPES
6501 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
6502     VkDevice                                    device,
6503     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
6504     const VkAllocationCallbacks*                pAllocator,
6505     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
6506
6507 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
6508     VkDevice                                    device,
6509     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
6510     const VkAllocationCallbacks*                pAllocator);
6511
6512 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
6513     VkDevice                                    device,
6514     VkDescriptorSet                             descriptorSet,
6515     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
6516     const void*                                 pData);
6517 #endif
6518
6519
6520 #define VK_KHR_imageless_framebuffer 1
6521 #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
6522 #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
6523 typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
6524
6525 typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
6526
6527 typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
6528
6529 typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
6530
6531
6532
6533 #define VK_KHR_create_renderpass2 1
6534 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
6535 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
6536 typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
6537
6538 typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
6539
6540 typedef VkAttachmentReference2 VkAttachmentReference2KHR;
6541
6542 typedef VkSubpassDescription2 VkSubpassDescription2KHR;
6543
6544 typedef VkSubpassDependency2 VkSubpassDependency2KHR;
6545
6546 typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
6547
6548 typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
6549
6550 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6551 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
6552 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
6553 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
6554
6555 #ifndef VK_NO_PROTOTYPES
6556 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
6557     VkDevice                                    device,
6558     const VkRenderPassCreateInfo2*              pCreateInfo,
6559     const VkAllocationCallbacks*                pAllocator,
6560     VkRenderPass*                               pRenderPass);
6561
6562 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
6563     VkCommandBuffer                             commandBuffer,
6564     const VkRenderPassBeginInfo*                pRenderPassBegin,
6565     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
6566
6567 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
6568     VkCommandBuffer                             commandBuffer,
6569     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
6570     const VkSubpassEndInfo*                     pSubpassEndInfo);
6571
6572 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
6573     VkCommandBuffer                             commandBuffer,
6574     const VkSubpassEndInfo*                     pSubpassEndInfo);
6575 #endif
6576
6577
6578 #define VK_KHR_shared_presentable_image 1
6579 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
6580 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
6581 typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
6582     VkStructureType      sType;
6583     void*                pNext;
6584     VkImageUsageFlags    sharedPresentSupportedUsageFlags;
6585 } VkSharedPresentSurfaceCapabilitiesKHR;
6586
6587 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
6588
6589 #ifndef VK_NO_PROTOTYPES
6590 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
6591     VkDevice                                    device,
6592     VkSwapchainKHR                              swapchain);
6593 #endif
6594
6595
6596 #define VK_KHR_external_fence_capabilities 1
6597 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
6598 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
6599 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
6600
6601 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
6602
6603 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
6604
6605 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
6606
6607 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
6608
6609 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
6610
6611 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
6612
6613 #ifndef VK_NO_PROTOTYPES
6614 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
6615     VkPhysicalDevice                            physicalDevice,
6616     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
6617     VkExternalFenceProperties*                  pExternalFenceProperties);
6618 #endif
6619
6620
6621 #define VK_KHR_external_fence 1
6622 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
6623 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
6624 typedef VkFenceImportFlags VkFenceImportFlagsKHR;
6625
6626 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
6627
6628 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
6629
6630
6631
6632 #define VK_KHR_external_fence_fd 1
6633 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
6634 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
6635 typedef struct VkImportFenceFdInfoKHR {
6636     VkStructureType                      sType;
6637     const void*                          pNext;
6638     VkFence                              fence;
6639     VkFenceImportFlags                   flags;
6640     VkExternalFenceHandleTypeFlagBits    handleType;
6641     int                                  fd;
6642 } VkImportFenceFdInfoKHR;
6643
6644 typedef struct VkFenceGetFdInfoKHR {
6645     VkStructureType                      sType;
6646     const void*                          pNext;
6647     VkFence                              fence;
6648     VkExternalFenceHandleTypeFlagBits    handleType;
6649 } VkFenceGetFdInfoKHR;
6650
6651 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
6652 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
6653
6654 #ifndef VK_NO_PROTOTYPES
6655 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
6656     VkDevice                                    device,
6657     const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
6658
6659 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
6660     VkDevice                                    device,
6661     const VkFenceGetFdInfoKHR*                  pGetFdInfo,
6662     int*                                        pFd);
6663 #endif
6664
6665 #define VK_KHR_performance_query 1
6666 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
6667 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
6668
6669 typedef enum VkPerformanceCounterUnitKHR {
6670     VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
6671     VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
6672     VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
6673     VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
6674     VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
6675     VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
6676     VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
6677     VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
6678     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
6679     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
6680     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
6681     VK_PERFORMANCE_COUNTER_UNIT_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
6682     VK_PERFORMANCE_COUNTER_UNIT_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR,
6683     VK_PERFORMANCE_COUNTER_UNIT_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR + 1),
6684     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
6685 } VkPerformanceCounterUnitKHR;
6686
6687 typedef enum VkPerformanceCounterScopeKHR {
6688     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0,
6689     VK_QUERY_SCOPE_RENDER_PASS_KHR = 1,
6690     VK_QUERY_SCOPE_COMMAND_KHR = 2,
6691     VK_PERFORMANCE_COUNTER_SCOPE_BEGIN_RANGE_KHR = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
6692     VK_PERFORMANCE_COUNTER_SCOPE_END_RANGE_KHR = VK_QUERY_SCOPE_COMMAND_KHR,
6693     VK_PERFORMANCE_COUNTER_SCOPE_RANGE_SIZE_KHR = (VK_QUERY_SCOPE_COMMAND_KHR - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR + 1),
6694     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
6695 } VkPerformanceCounterScopeKHR;
6696
6697 typedef enum VkPerformanceCounterStorageKHR {
6698     VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
6699     VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
6700     VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
6701     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
6702     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
6703     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
6704     VK_PERFORMANCE_COUNTER_STORAGE_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
6705     VK_PERFORMANCE_COUNTER_STORAGE_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR,
6706     VK_PERFORMANCE_COUNTER_STORAGE_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR + 1),
6707     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
6708 } VkPerformanceCounterStorageKHR;
6709
6710 typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
6711     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 0x00000001,
6712     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 0x00000002,
6713     VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
6714 } VkPerformanceCounterDescriptionFlagBitsKHR;
6715 typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
6716
6717 typedef enum VkAcquireProfilingLockFlagBitsKHR {
6718     VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
6719 } VkAcquireProfilingLockFlagBitsKHR;
6720 typedef VkFlags VkAcquireProfilingLockFlagsKHR;
6721 typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
6722     VkStructureType    sType;
6723     void*              pNext;
6724     VkBool32           performanceCounterQueryPools;
6725     VkBool32           performanceCounterMultipleQueryPools;
6726 } VkPhysicalDevicePerformanceQueryFeaturesKHR;
6727
6728 typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
6729     VkStructureType    sType;
6730     void*              pNext;
6731     VkBool32           allowCommandBufferQueryCopies;
6732 } VkPhysicalDevicePerformanceQueryPropertiesKHR;
6733
6734 typedef struct VkPerformanceCounterKHR {
6735     VkStructureType                   sType;
6736     const void*                       pNext;
6737     VkPerformanceCounterUnitKHR       unit;
6738     VkPerformanceCounterScopeKHR      scope;
6739     VkPerformanceCounterStorageKHR    storage;
6740     deUint8                           uuid[VK_UUID_SIZE];
6741 } VkPerformanceCounterKHR;
6742
6743 typedef struct VkPerformanceCounterDescriptionKHR {
6744     VkStructureType                            sType;
6745     const void*                                pNext;
6746     VkPerformanceCounterDescriptionFlagsKHR    flags;
6747     char                                       name[VK_MAX_DESCRIPTION_SIZE];
6748     char                                       category[VK_MAX_DESCRIPTION_SIZE];
6749     char                                       description[VK_MAX_DESCRIPTION_SIZE];
6750 } VkPerformanceCounterDescriptionKHR;
6751
6752 typedef struct VkQueryPoolPerformanceCreateInfoKHR {
6753     VkStructureType    sType;
6754     const void*        pNext;
6755     deUint32           queueFamilyIndex;
6756     deUint32           counterIndexCount;
6757     const deUint32*    pCounterIndices;
6758 } VkQueryPoolPerformanceCreateInfoKHR;
6759
6760 typedef union VkPerformanceCounterResultKHR {
6761     deInt32     int32;
6762     deInt64     int64;
6763     deUint32    uint32;
6764     deUint64    uint64;
6765     float       float32;
6766     double      float64;
6767 } VkPerformanceCounterResultKHR;
6768
6769 typedef struct VkAcquireProfilingLockInfoKHR {
6770     VkStructureType                   sType;
6771     const void*                       pNext;
6772     VkAcquireProfilingLockFlagsKHR    flags;
6773     deUint64                          timeout;
6774 } VkAcquireProfilingLockInfoKHR;
6775
6776 typedef struct VkPerformanceQuerySubmitInfoKHR {
6777     VkStructureType    sType;
6778     const void*        pNext;
6779     deUint32           counterPassIndex;
6780 } VkPerformanceQuerySubmitInfoKHR;
6781
6782 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, deUint32* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
6783 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, deUint32* pNumPasses);
6784 typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
6785 typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
6786
6787 #ifndef VK_NO_PROTOTYPES
6788 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
6789     VkPhysicalDevice                            physicalDevice,
6790     deUint32                                    queueFamilyIndex,
6791     deUint32*                                   pCounterCount,
6792     VkPerformanceCounterKHR*                    pCounters,
6793     VkPerformanceCounterDescriptionKHR*         pCounterDescriptions);
6794
6795 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
6796     VkPhysicalDevice                            physicalDevice,
6797     const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
6798     deUint32*                                   pNumPasses);
6799
6800 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
6801     VkDevice                                    device,
6802     const VkAcquireProfilingLockInfoKHR*        pInfo);
6803
6804 VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
6805     VkDevice                                    device);
6806 #endif
6807
6808
6809 #define VK_KHR_maintenance2 1
6810 #define VK_KHR_MAINTENANCE2_SPEC_VERSION  1
6811 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
6812 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
6813
6814 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
6815
6816 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
6817
6818 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
6819
6820 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
6821
6822 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
6823
6824 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
6825
6826
6827
6828 #define VK_KHR_get_surface_capabilities2 1
6829 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
6830 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
6831 typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
6832     VkStructureType    sType;
6833     const void*        pNext;
6834     VkSurfaceKHR       surface;
6835 } VkPhysicalDeviceSurfaceInfo2KHR;
6836
6837 typedef struct VkSurfaceCapabilities2KHR {
6838     VkStructureType             sType;
6839     void*                       pNext;
6840     VkSurfaceCapabilitiesKHR    surfaceCapabilities;
6841 } VkSurfaceCapabilities2KHR;
6842
6843 typedef struct VkSurfaceFormat2KHR {
6844     VkStructureType       sType;
6845     void*                 pNext;
6846     VkSurfaceFormatKHR    surfaceFormat;
6847 } VkSurfaceFormat2KHR;
6848
6849 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
6850 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
6851
6852 #ifndef VK_NO_PROTOTYPES
6853 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
6854     VkPhysicalDevice                            physicalDevice,
6855     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
6856     VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
6857
6858 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
6859     VkPhysicalDevice                            physicalDevice,
6860     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
6861     deUint32*                                   pSurfaceFormatCount,
6862     VkSurfaceFormat2KHR*                        pSurfaceFormats);
6863 #endif
6864
6865
6866 #define VK_KHR_variable_pointers 1
6867 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
6868 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
6869 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
6870
6871 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
6872
6873
6874
6875 #define VK_KHR_get_display_properties2 1
6876 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
6877 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
6878 typedef struct VkDisplayProperties2KHR {
6879     VkStructureType           sType;
6880     void*                     pNext;
6881     VkDisplayPropertiesKHR    displayProperties;
6882 } VkDisplayProperties2KHR;
6883
6884 typedef struct VkDisplayPlaneProperties2KHR {
6885     VkStructureType                sType;
6886     void*                          pNext;
6887     VkDisplayPlanePropertiesKHR    displayPlaneProperties;
6888 } VkDisplayPlaneProperties2KHR;
6889
6890 typedef struct VkDisplayModeProperties2KHR {
6891     VkStructureType               sType;
6892     void*                         pNext;
6893     VkDisplayModePropertiesKHR    displayModeProperties;
6894 } VkDisplayModeProperties2KHR;
6895
6896 typedef struct VkDisplayPlaneInfo2KHR {
6897     VkStructureType     sType;
6898     const void*         pNext;
6899     VkDisplayModeKHR    mode;
6900     deUint32            planeIndex;
6901 } VkDisplayPlaneInfo2KHR;
6902
6903 typedef struct VkDisplayPlaneCapabilities2KHR {
6904     VkStructureType                  sType;
6905     void*                            pNext;
6906     VkDisplayPlaneCapabilitiesKHR    capabilities;
6907 } VkDisplayPlaneCapabilities2KHR;
6908
6909 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayProperties2KHR* pProperties);
6910 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
6911 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
6912 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
6913
6914 #ifndef VK_NO_PROTOTYPES
6915 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
6916     VkPhysicalDevice                            physicalDevice,
6917     deUint32*                                   pPropertyCount,
6918     VkDisplayProperties2KHR*                    pProperties);
6919
6920 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
6921     VkPhysicalDevice                            physicalDevice,
6922     deUint32*                                   pPropertyCount,
6923     VkDisplayPlaneProperties2KHR*               pProperties);
6924
6925 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
6926     VkPhysicalDevice                            physicalDevice,
6927     VkDisplayKHR                                display,
6928     deUint32*                                   pPropertyCount,
6929     VkDisplayModeProperties2KHR*                pProperties);
6930
6931 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
6932     VkPhysicalDevice                            physicalDevice,
6933     const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
6934     VkDisplayPlaneCapabilities2KHR*             pCapabilities);
6935 #endif
6936
6937
6938 #define VK_KHR_dedicated_allocation 1
6939 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
6940 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
6941 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
6942
6943 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
6944
6945
6946
6947 #define VK_KHR_storage_buffer_storage_class 1
6948 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
6949 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
6950
6951
6952 #define VK_KHR_relaxed_block_layout 1
6953 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
6954 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
6955
6956
6957 #define VK_KHR_get_memory_requirements2 1
6958 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
6959 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
6960 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
6961
6962 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
6963
6964 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
6965
6966 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
6967
6968 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6969 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6970 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
6971
6972 #ifndef VK_NO_PROTOTYPES
6973 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
6974     VkDevice                                    device,
6975     const VkImageMemoryRequirementsInfo2*       pInfo,
6976     VkMemoryRequirements2*                      pMemoryRequirements);
6977
6978 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
6979     VkDevice                                    device,
6980     const VkBufferMemoryRequirementsInfo2*      pInfo,
6981     VkMemoryRequirements2*                      pMemoryRequirements);
6982
6983 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
6984     VkDevice                                    device,
6985     const VkImageSparseMemoryRequirementsInfo2* pInfo,
6986     deUint32*                                   pSparseMemoryRequirementCount,
6987     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
6988 #endif
6989
6990
6991 #define VK_KHR_image_format_list 1
6992 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
6993 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
6994 typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
6995
6996
6997
6998 #define VK_KHR_sampler_ycbcr_conversion 1
6999 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
7000
7001 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
7002 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
7003 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
7004
7005 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
7006
7007 typedef VkChromaLocation VkChromaLocationKHR;
7008
7009 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
7010
7011 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
7012
7013 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
7014
7015 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
7016
7017 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
7018
7019 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
7020
7021 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
7022 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
7023
7024 #ifndef VK_NO_PROTOTYPES
7025 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
7026     VkDevice                                    device,
7027     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
7028     const VkAllocationCallbacks*                pAllocator,
7029     VkSamplerYcbcrConversion*                   pYcbcrConversion);
7030
7031 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
7032     VkDevice                                    device,
7033     VkSamplerYcbcrConversion                    ycbcrConversion,
7034     const VkAllocationCallbacks*                pAllocator);
7035 #endif
7036
7037
7038 #define VK_KHR_bind_memory2 1
7039 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
7040 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
7041 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
7042
7043 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
7044
7045 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
7046 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
7047
7048 #ifndef VK_NO_PROTOTYPES
7049 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
7050     VkDevice                                    device,
7051     deUint32                                    bindInfoCount,
7052     const VkBindBufferMemoryInfo*               pBindInfos);
7053
7054 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
7055     VkDevice                                    device,
7056     deUint32                                    bindInfoCount,
7057     const VkBindImageMemoryInfo*                pBindInfos);
7058 #endif
7059
7060
7061 #define VK_KHR_maintenance3 1
7062 #define VK_KHR_MAINTENANCE3_SPEC_VERSION  1
7063 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
7064 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
7065
7066 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
7067
7068 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
7069
7070 #ifndef VK_NO_PROTOTYPES
7071 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
7072     VkDevice                                    device,
7073     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
7074     VkDescriptorSetLayoutSupport*               pSupport);
7075 #endif
7076
7077
7078 #define VK_KHR_draw_indirect_count 1
7079 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
7080 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
7081 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
7082 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
7083
7084 #ifndef VK_NO_PROTOTYPES
7085 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
7086     VkCommandBuffer                             commandBuffer,
7087     VkBuffer                                    buffer,
7088     VkDeviceSize                                offset,
7089     VkBuffer                                    countBuffer,
7090     VkDeviceSize                                countBufferOffset,
7091     deUint32                                    maxDrawCount,
7092     deUint32                                    stride);
7093
7094 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
7095     VkCommandBuffer                             commandBuffer,
7096     VkBuffer                                    buffer,
7097     VkDeviceSize                                offset,
7098     VkBuffer                                    countBuffer,
7099     VkDeviceSize                                countBufferOffset,
7100     deUint32                                    maxDrawCount,
7101     deUint32                                    stride);
7102 #endif
7103
7104
7105 #define VK_KHR_shader_subgroup_extended_types 1
7106 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
7107 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
7108 typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
7109
7110
7111
7112 #define VK_KHR_8bit_storage 1
7113 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1
7114 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
7115 typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
7116
7117
7118
7119 #define VK_KHR_shader_atomic_int64 1
7120 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
7121 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
7122 typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
7123
7124
7125
7126 #define VK_KHR_shader_clock 1
7127 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION  1
7128 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
7129 typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
7130     VkStructureType    sType;
7131     void*              pNext;
7132     VkBool32           shaderSubgroupClock;
7133     VkBool32           shaderDeviceClock;
7134 } VkPhysicalDeviceShaderClockFeaturesKHR;
7135
7136
7137
7138 #define VK_KHR_driver_properties 1
7139 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
7140 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
7141 #define VK_MAX_DRIVER_NAME_SIZE_KHR       VK_MAX_DRIVER_NAME_SIZE
7142 #define VK_MAX_DRIVER_INFO_SIZE_KHR       VK_MAX_DRIVER_INFO_SIZE
7143 typedef VkDriverId VkDriverIdKHR;
7144
7145 typedef VkConformanceVersion VkConformanceVersionKHR;
7146
7147 typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
7148
7149
7150
7151 #define VK_KHR_shader_float_controls 1
7152 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
7153 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
7154 typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
7155
7156 typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
7157
7158
7159
7160 #define VK_KHR_depth_stencil_resolve 1
7161 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
7162 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
7163 typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
7164
7165 typedef VkResolveModeFlags VkResolveModeFlagsKHR;
7166
7167 typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
7168
7169 typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
7170
7171
7172
7173 #define VK_KHR_swapchain_mutable_format 1
7174 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
7175 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
7176
7177
7178 #define VK_KHR_timeline_semaphore 1
7179 #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
7180 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
7181 typedef VkSemaphoreType VkSemaphoreTypeKHR;
7182
7183 typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
7184
7185 typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
7186
7187 typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
7188
7189 typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
7190
7191 typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
7192
7193 typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
7194
7195 typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
7196
7197 typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
7198
7199 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, deUint64* pValue);
7200 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, deUint64 timeout);
7201 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
7202
7203 #ifndef VK_NO_PROTOTYPES
7204 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
7205     VkDevice                                    device,
7206     VkSemaphore                                 semaphore,
7207     deUint64*                                   pValue);
7208
7209 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
7210     VkDevice                                    device,
7211     const VkSemaphoreWaitInfo*                  pWaitInfo,
7212     deUint64                                    timeout);
7213
7214 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
7215     VkDevice                                    device,
7216     const VkSemaphoreSignalInfo*                pSignalInfo);
7217 #endif
7218
7219
7220 #define VK_KHR_vulkan_memory_model 1
7221 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
7222 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
7223 typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
7224
7225
7226 #define VK_KHR_spirv_1_4 1
7227 #define VK_KHR_SPIRV_1_4_SPEC_VERSION     1
7228 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME   "VK_KHR_spirv_1_4"
7229
7230
7231 #define VK_KHR_surface_protected_capabilities 1
7232 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
7233 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
7234 typedef struct VkSurfaceProtectedCapabilitiesKHR {
7235     VkStructureType    sType;
7236     const void*        pNext;
7237     VkBool32           supportsProtected;
7238 } VkSurfaceProtectedCapabilitiesKHR;
7239
7240
7241
7242 #define VK_KHR_separate_depth_stencil_layouts 1
7243 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
7244 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
7245 typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
7246
7247 typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
7248
7249 typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
7250
7251
7252
7253 #define VK_KHR_uniform_buffer_standard_layout 1
7254 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
7255 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
7256 typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
7257
7258
7259
7260 #define VK_KHR_buffer_device_address 1
7261 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
7262 #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
7263 typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
7264
7265 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
7266
7267 typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
7268
7269 typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
7270
7271 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
7272
7273 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
7274 typedef deUint64 (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
7275 typedef deUint64 (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
7276
7277 #ifndef VK_NO_PROTOTYPES
7278 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
7279     VkDevice                                    device,
7280     const VkBufferDeviceAddressInfo*            pInfo);
7281
7282 VKAPI_ATTR deUint64 VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
7283     VkDevice                                    device,
7284     const VkBufferDeviceAddressInfo*            pInfo);
7285
7286 VKAPI_ATTR deUint64 VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
7287     VkDevice                                    device,
7288     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
7289 #endif
7290
7291
7292 #define VK_KHR_pipeline_executable_properties 1
7293 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
7294 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
7295
7296 typedef enum VkPipelineExecutableStatisticFormatKHR {
7297     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
7298     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
7299     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
7300     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
7301     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BEGIN_RANGE_KHR = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
7302     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_END_RANGE_KHR = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR,
7303     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_RANGE_SIZE_KHR = (VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR + 1),
7304     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
7305 } VkPipelineExecutableStatisticFormatKHR;
7306 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
7307     VkStructureType    sType;
7308     void*              pNext;
7309     VkBool32           pipelineExecutableInfo;
7310 } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
7311
7312 typedef struct VkPipelineInfoKHR {
7313     VkStructureType    sType;
7314     const void*        pNext;
7315     VkPipeline         pipeline;
7316 } VkPipelineInfoKHR;
7317
7318 typedef struct VkPipelineExecutablePropertiesKHR {
7319     VkStructureType       sType;
7320     void*                 pNext;
7321     VkShaderStageFlags    stages;
7322     char                  name[VK_MAX_DESCRIPTION_SIZE];
7323     char                  description[VK_MAX_DESCRIPTION_SIZE];
7324     deUint32              subgroupSize;
7325 } VkPipelineExecutablePropertiesKHR;
7326
7327 typedef struct VkPipelineExecutableInfoKHR {
7328     VkStructureType    sType;
7329     const void*        pNext;
7330     VkPipeline         pipeline;
7331     deUint32           executableIndex;
7332 } VkPipelineExecutableInfoKHR;
7333
7334 typedef union VkPipelineExecutableStatisticValueKHR {
7335     VkBool32    b32;
7336     deInt64     i64;
7337     deUint64    u64;
7338     double      f64;
7339 } VkPipelineExecutableStatisticValueKHR;
7340
7341 typedef struct VkPipelineExecutableStatisticKHR {
7342     VkStructureType                           sType;
7343     void*                                     pNext;
7344     char                                      name[VK_MAX_DESCRIPTION_SIZE];
7345     char                                      description[VK_MAX_DESCRIPTION_SIZE];
7346     VkPipelineExecutableStatisticFormatKHR    format;
7347     VkPipelineExecutableStatisticValueKHR     value;
7348 } VkPipelineExecutableStatisticKHR;
7349
7350 typedef struct VkPipelineExecutableInternalRepresentationKHR {
7351     VkStructureType    sType;
7352     void*              pNext;
7353     char               name[VK_MAX_DESCRIPTION_SIZE];
7354     char               description[VK_MAX_DESCRIPTION_SIZE];
7355     VkBool32           isText;
7356     deUintptr             dataSize;
7357     void*              pData;
7358 } VkPipelineExecutableInternalRepresentationKHR;
7359
7360 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice                        device, const VkPipelineInfoKHR*        pPipelineInfo, deUint32* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
7361 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, deUint32* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
7362 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, deUint32* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
7363
7364 #ifndef VK_NO_PROTOTYPES
7365 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
7366     VkDevice                                    device,
7367     const VkPipelineInfoKHR*                    pPipelineInfo,
7368     deUint32*                                   pExecutableCount,
7369     VkPipelineExecutablePropertiesKHR*          pProperties);
7370
7371 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
7372     VkDevice                                    device,
7373     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
7374     deUint32*                                   pStatisticCount,
7375     VkPipelineExecutableStatisticKHR*           pStatistics);
7376
7377 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
7378     VkDevice                                    device,
7379     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
7380     deUint32*                                   pInternalRepresentationCount,
7381     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
7382 #endif
7383
7384 #define VK_EXT_debug_report 1
7385 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
7386 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  9
7387 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
7388
7389 typedef enum VkDebugReportObjectTypeEXT {
7390     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
7391     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
7392     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
7393     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
7394     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
7395     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
7396     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
7397     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
7398     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
7399     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
7400     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
7401     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
7402     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
7403     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
7404     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
7405     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
7406     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
7407     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
7408     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
7409     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
7410     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
7411     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
7412     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
7413     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
7414     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
7415     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
7416     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
7417     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
7418     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
7419     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
7420     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
7421     VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
7422     VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
7423     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
7424     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
7425     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
7426     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
7427     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
7428     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
7429     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
7430     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
7431     VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
7432     VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
7433     VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
7434     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
7435 } VkDebugReportObjectTypeEXT;
7436
7437 typedef enum VkDebugReportFlagBitsEXT {
7438     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
7439     VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
7440     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
7441     VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
7442     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
7443     VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
7444 } VkDebugReportFlagBitsEXT;
7445 typedef VkFlags VkDebugReportFlagsEXT;
7446 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
7447     VkDebugReportFlagsEXT                       flags,
7448     VkDebugReportObjectTypeEXT                  objectType,
7449     deUint64                                    object,
7450     deUintptr                                      location,
7451     deInt32                                     messageCode,
7452     const char*                                 pLayerPrefix,
7453     const char*                                 pMessage,
7454     void*                                       pUserData);
7455
7456 typedef struct VkDebugReportCallbackCreateInfoEXT {
7457     VkStructureType                 sType;
7458     const void*                     pNext;
7459     VkDebugReportFlagsEXT           flags;
7460     PFN_vkDebugReportCallbackEXT    pfnCallback;
7461     void*                           pUserData;
7462 } VkDebugReportCallbackCreateInfoEXT;
7463
7464 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
7465 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
7466 typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage);
7467
7468 #ifndef VK_NO_PROTOTYPES
7469 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
7470     VkInstance                                  instance,
7471     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
7472     const VkAllocationCallbacks*                pAllocator,
7473     VkDebugReportCallbackEXT*                   pCallback);
7474
7475 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
7476     VkInstance                                  instance,
7477     VkDebugReportCallbackEXT                    callback,
7478     const VkAllocationCallbacks*                pAllocator);
7479
7480 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
7481     VkInstance                                  instance,
7482     VkDebugReportFlagsEXT                       flags,
7483     VkDebugReportObjectTypeEXT                  objectType,
7484     deUint64                                    object,
7485     deUintptr                                      location,
7486     deInt32                                     messageCode,
7487     const char*                                 pLayerPrefix,
7488     const char*                                 pMessage);
7489 #endif
7490
7491
7492 #define VK_NV_glsl_shader 1
7493 #define VK_NV_GLSL_SHADER_SPEC_VERSION    1
7494 #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
7495
7496
7497 #define VK_EXT_depth_range_unrestricted 1
7498 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
7499 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
7500
7501
7502 #define VK_IMG_filter_cubic 1
7503 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
7504 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
7505
7506
7507 #define VK_AMD_rasterization_order 1
7508 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
7509 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
7510
7511 typedef enum VkRasterizationOrderAMD {
7512     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
7513     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
7514     VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
7515     VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
7516     VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
7517     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
7518 } VkRasterizationOrderAMD;
7519 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
7520     VkStructureType            sType;
7521     const void*                pNext;
7522     VkRasterizationOrderAMD    rasterizationOrder;
7523 } VkPipelineRasterizationStateRasterizationOrderAMD;
7524
7525
7526
7527 #define VK_AMD_shader_trinary_minmax 1
7528 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
7529 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
7530
7531
7532 #define VK_AMD_shader_explicit_vertex_parameter 1
7533 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
7534 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
7535
7536
7537 #define VK_EXT_debug_marker 1
7538 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
7539 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
7540 typedef struct VkDebugMarkerObjectNameInfoEXT {
7541     VkStructureType               sType;
7542     const void*                   pNext;
7543     VkDebugReportObjectTypeEXT    objectType;
7544     deUint64                      object;
7545     const char*                   pObjectName;
7546 } VkDebugMarkerObjectNameInfoEXT;
7547
7548 typedef struct VkDebugMarkerObjectTagInfoEXT {
7549     VkStructureType               sType;
7550     const void*                   pNext;
7551     VkDebugReportObjectTypeEXT    objectType;
7552     deUint64                      object;
7553     deUint64                      tagName;
7554     deUintptr                        tagSize;
7555     const void*                   pTag;
7556 } VkDebugMarkerObjectTagInfoEXT;
7557
7558 typedef struct VkDebugMarkerMarkerInfoEXT {
7559     VkStructureType    sType;
7560     const void*        pNext;
7561     const char*        pMarkerName;
7562     float              color[4];
7563 } VkDebugMarkerMarkerInfoEXT;
7564
7565 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
7566 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
7567 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
7568 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
7569 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
7570
7571 #ifndef VK_NO_PROTOTYPES
7572 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
7573     VkDevice                                    device,
7574     const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
7575
7576 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
7577     VkDevice                                    device,
7578     const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
7579
7580 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
7581     VkCommandBuffer                             commandBuffer,
7582     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
7583
7584 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
7585     VkCommandBuffer                             commandBuffer);
7586
7587 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
7588     VkCommandBuffer                             commandBuffer,
7589     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
7590 #endif
7591
7592
7593 #define VK_AMD_gcn_shader 1
7594 #define VK_AMD_GCN_SHADER_SPEC_VERSION    1
7595 #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
7596
7597
7598 #define VK_NV_dedicated_allocation 1
7599 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
7600 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
7601 typedef struct VkDedicatedAllocationImageCreateInfoNV {
7602     VkStructureType    sType;
7603     const void*        pNext;
7604     VkBool32           dedicatedAllocation;
7605 } VkDedicatedAllocationImageCreateInfoNV;
7606
7607 typedef struct VkDedicatedAllocationBufferCreateInfoNV {
7608     VkStructureType    sType;
7609     const void*        pNext;
7610     VkBool32           dedicatedAllocation;
7611 } VkDedicatedAllocationBufferCreateInfoNV;
7612
7613 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
7614     VkStructureType    sType;
7615     const void*        pNext;
7616     VkImage            image;
7617     VkBuffer           buffer;
7618 } VkDedicatedAllocationMemoryAllocateInfoNV;
7619
7620
7621
7622 #define VK_EXT_transform_feedback 1
7623 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
7624 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
7625 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
7626 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
7627     VkStructureType    sType;
7628     void*              pNext;
7629     VkBool32           transformFeedback;
7630     VkBool32           geometryStreams;
7631 } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
7632
7633 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
7634     VkStructureType    sType;
7635     void*              pNext;
7636     deUint32           maxTransformFeedbackStreams;
7637     deUint32           maxTransformFeedbackBuffers;
7638     VkDeviceSize       maxTransformFeedbackBufferSize;
7639     deUint32           maxTransformFeedbackStreamDataSize;
7640     deUint32           maxTransformFeedbackBufferDataSize;
7641     deUint32           maxTransformFeedbackBufferDataStride;
7642     VkBool32           transformFeedbackQueries;
7643     VkBool32           transformFeedbackStreamsLinesTriangles;
7644     VkBool32           transformFeedbackRasterizationStreamSelect;
7645     VkBool32           transformFeedbackDraw;
7646 } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
7647
7648 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
7649     VkStructureType                                     sType;
7650     const void*                                         pNext;
7651     VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
7652     deUint32                                            rasterizationStream;
7653 } VkPipelineRasterizationStateStreamCreateInfoEXT;
7654
7655 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
7656 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
7657 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
7658 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags, deUint32 index);
7659 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, deUint32 index);
7660 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, deUint32 instanceCount, deUint32 firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, deUint32 counterOffset, deUint32 vertexStride);
7661
7662 #ifndef VK_NO_PROTOTYPES
7663 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
7664     VkCommandBuffer                             commandBuffer,
7665     deUint32                                    firstBinding,
7666     deUint32                                    bindingCount,
7667     const VkBuffer*                             pBuffers,
7668     const VkDeviceSize*                         pOffsets,
7669     const VkDeviceSize*                         pSizes);
7670
7671 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
7672     VkCommandBuffer                             commandBuffer,
7673     deUint32                                    firstCounterBuffer,
7674     deUint32                                    counterBufferCount,
7675     const VkBuffer*                             pCounterBuffers,
7676     const VkDeviceSize*                         pCounterBufferOffsets);
7677
7678 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
7679     VkCommandBuffer                             commandBuffer,
7680     deUint32                                    firstCounterBuffer,
7681     deUint32                                    counterBufferCount,
7682     const VkBuffer*                             pCounterBuffers,
7683     const VkDeviceSize*                         pCounterBufferOffsets);
7684
7685 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
7686     VkCommandBuffer                             commandBuffer,
7687     VkQueryPool                                 queryPool,
7688     deUint32                                    query,
7689     VkQueryControlFlags                         flags,
7690     deUint32                                    index);
7691
7692 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
7693     VkCommandBuffer                             commandBuffer,
7694     VkQueryPool                                 queryPool,
7695     deUint32                                    query,
7696     deUint32                                    index);
7697
7698 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
7699     VkCommandBuffer                             commandBuffer,
7700     deUint32                                    instanceCount,
7701     deUint32                                    firstInstance,
7702     VkBuffer                                    counterBuffer,
7703     VkDeviceSize                                counterBufferOffset,
7704     deUint32                                    counterOffset,
7705     deUint32                                    vertexStride);
7706 #endif
7707
7708
7709 #define VK_NVX_image_view_handle 1
7710 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 1
7711 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
7712 typedef struct VkImageViewHandleInfoNVX {
7713     VkStructureType     sType;
7714     const void*         pNext;
7715     VkImageView         imageView;
7716     VkDescriptorType    descriptorType;
7717     VkSampler           sampler;
7718 } VkImageViewHandleInfoNVX;
7719
7720 typedef deUint32 (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
7721
7722 #ifndef VK_NO_PROTOTYPES
7723 VKAPI_ATTR deUint32 VKAPI_CALL vkGetImageViewHandleNVX(
7724     VkDevice                                    device,
7725     const VkImageViewHandleInfoNVX*             pInfo);
7726 #endif
7727
7728
7729 #define VK_AMD_draw_indirect_count 1
7730 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
7731 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
7732 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
7733 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
7734
7735 #ifndef VK_NO_PROTOTYPES
7736 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
7737     VkCommandBuffer                             commandBuffer,
7738     VkBuffer                                    buffer,
7739     VkDeviceSize                                offset,
7740     VkBuffer                                    countBuffer,
7741     VkDeviceSize                                countBufferOffset,
7742     deUint32                                    maxDrawCount,
7743     deUint32                                    stride);
7744
7745 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
7746     VkCommandBuffer                             commandBuffer,
7747     VkBuffer                                    buffer,
7748     VkDeviceSize                                offset,
7749     VkBuffer                                    countBuffer,
7750     VkDeviceSize                                countBufferOffset,
7751     deUint32                                    maxDrawCount,
7752     deUint32                                    stride);
7753 #endif
7754
7755
7756 #define VK_AMD_negative_viewport_height 1
7757 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
7758 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
7759
7760
7761 #define VK_AMD_gpu_shader_half_float 1
7762 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
7763 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
7764
7765
7766 #define VK_AMD_shader_ballot 1
7767 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
7768 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
7769
7770
7771 #define VK_AMD_texture_gather_bias_lod 1
7772 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
7773 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
7774 typedef struct VkTextureLODGatherFormatPropertiesAMD {
7775     VkStructureType    sType;
7776     void*              pNext;
7777     VkBool32           supportsTextureGatherLODBiasAMD;
7778 } VkTextureLODGatherFormatPropertiesAMD;
7779
7780
7781
7782 #define VK_AMD_shader_info 1
7783 #define VK_AMD_SHADER_INFO_SPEC_VERSION   1
7784 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
7785
7786 typedef enum VkShaderInfoTypeAMD {
7787     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
7788     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
7789     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
7790     VK_SHADER_INFO_TYPE_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
7791     VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD,
7792     VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1),
7793     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
7794 } VkShaderInfoTypeAMD;
7795 typedef struct VkShaderResourceUsageAMD {
7796     deUint32    numUsedVgprs;
7797     deUint32    numUsedSgprs;
7798     deUint32    ldsSizePerLocalWorkGroup;
7799     deUintptr      ldsUsageSizeInBytes;
7800     deUintptr      scratchMemUsageInBytes;
7801 } VkShaderResourceUsageAMD;
7802
7803 typedef struct VkShaderStatisticsInfoAMD {
7804     VkShaderStageFlags          shaderStageMask;
7805     VkShaderResourceUsageAMD    resourceUsage;
7806     deUint32                    numPhysicalVgprs;
7807     deUint32                    numPhysicalSgprs;
7808     deUint32                    numAvailableVgprs;
7809     deUint32                    numAvailableSgprs;
7810     deUint32                    computeWorkGroupSize[3];
7811 } VkShaderStatisticsInfoAMD;
7812
7813 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, deUintptr* pInfoSize, void* pInfo);
7814
7815 #ifndef VK_NO_PROTOTYPES
7816 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
7817     VkDevice                                    device,
7818     VkPipeline                                  pipeline,
7819     VkShaderStageFlagBits                       shaderStage,
7820     VkShaderInfoTypeAMD                         infoType,
7821     deUintptr*                                     pInfoSize,
7822     void*                                       pInfo);
7823 #endif
7824
7825
7826 #define VK_AMD_shader_image_load_store_lod 1
7827 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
7828 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
7829
7830
7831 #define VK_NV_corner_sampled_image 1
7832 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
7833 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
7834 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
7835     VkStructureType    sType;
7836     void*              pNext;
7837     VkBool32           cornerSampledImage;
7838 } VkPhysicalDeviceCornerSampledImageFeaturesNV;
7839
7840
7841
7842 #define VK_IMG_format_pvrtc 1
7843 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
7844 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
7845
7846
7847 #define VK_NV_external_memory_capabilities 1
7848 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
7849 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
7850
7851 typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
7852     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
7853     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
7854     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
7855     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
7856     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
7857 } VkExternalMemoryHandleTypeFlagBitsNV;
7858 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
7859
7860 typedef enum VkExternalMemoryFeatureFlagBitsNV {
7861     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
7862     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
7863     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
7864     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
7865 } VkExternalMemoryFeatureFlagBitsNV;
7866 typedef VkFlags VkExternalMemoryFeatureFlagsNV;
7867 typedef struct VkExternalImageFormatPropertiesNV {
7868     VkImageFormatProperties              imageFormatProperties;
7869     VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
7870     VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
7871     VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
7872 } VkExternalImageFormatPropertiesNV;
7873
7874 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
7875
7876 #ifndef VK_NO_PROTOTYPES
7877 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
7878     VkPhysicalDevice                            physicalDevice,
7879     VkFormat                                    format,
7880     VkImageType                                 type,
7881     VkImageTiling                               tiling,
7882     VkImageUsageFlags                           usage,
7883     VkImageCreateFlags                          flags,
7884     VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
7885     VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
7886 #endif
7887
7888
7889 #define VK_NV_external_memory 1
7890 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
7891 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
7892 typedef struct VkExternalMemoryImageCreateInfoNV {
7893     VkStructureType                      sType;
7894     const void*                          pNext;
7895     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
7896 } VkExternalMemoryImageCreateInfoNV;
7897
7898 typedef struct VkExportMemoryAllocateInfoNV {
7899     VkStructureType                      sType;
7900     const void*                          pNext;
7901     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
7902 } VkExportMemoryAllocateInfoNV;
7903
7904
7905
7906 #define VK_EXT_validation_flags 1
7907 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2
7908 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
7909
7910 typedef enum VkValidationCheckEXT {
7911     VK_VALIDATION_CHECK_ALL_EXT = 0,
7912     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
7913     VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
7914     VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT,
7915     VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
7916     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
7917 } VkValidationCheckEXT;
7918 typedef struct VkValidationFlagsEXT {
7919     VkStructureType                sType;
7920     const void*                    pNext;
7921     deUint32                       disabledValidationCheckCount;
7922     const VkValidationCheckEXT*    pDisabledValidationChecks;
7923 } VkValidationFlagsEXT;
7924
7925
7926
7927 #define VK_EXT_shader_subgroup_ballot 1
7928 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
7929 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
7930
7931
7932 #define VK_EXT_shader_subgroup_vote 1
7933 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
7934 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
7935
7936
7937 #define VK_EXT_texture_compression_astc_hdr 1
7938 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
7939 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
7940 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT {
7941     VkStructureType    sType;
7942     const void*        pNext;
7943     VkBool32           textureCompressionASTC_HDR;
7944 } VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
7945
7946
7947
7948 #define VK_EXT_astc_decode_mode 1
7949 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
7950 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
7951 typedef struct VkImageViewASTCDecodeModeEXT {
7952     VkStructureType    sType;
7953     const void*        pNext;
7954     VkFormat           decodeMode;
7955 } VkImageViewASTCDecodeModeEXT;
7956
7957 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
7958     VkStructureType    sType;
7959     void*              pNext;
7960     VkBool32           decodeModeSharedExponent;
7961 } VkPhysicalDeviceASTCDecodeFeaturesEXT;
7962
7963
7964
7965 #define VK_EXT_conditional_rendering 1
7966 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
7967 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
7968
7969 typedef enum VkConditionalRenderingFlagBitsEXT {
7970     VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
7971     VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
7972 } VkConditionalRenderingFlagBitsEXT;
7973 typedef VkFlags VkConditionalRenderingFlagsEXT;
7974 typedef struct VkConditionalRenderingBeginInfoEXT {
7975     VkStructureType                   sType;
7976     const void*                       pNext;
7977     VkBuffer                          buffer;
7978     VkDeviceSize                      offset;
7979     VkConditionalRenderingFlagsEXT    flags;
7980 } VkConditionalRenderingBeginInfoEXT;
7981
7982 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
7983     VkStructureType    sType;
7984     void*              pNext;
7985     VkBool32           conditionalRendering;
7986     VkBool32           inheritedConditionalRendering;
7987 } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
7988
7989 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
7990     VkStructureType    sType;
7991     const void*        pNext;
7992     VkBool32           conditionalRenderingEnable;
7993 } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
7994
7995 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
7996 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
7997
7998 #ifndef VK_NO_PROTOTYPES
7999 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
8000     VkCommandBuffer                             commandBuffer,
8001     const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin);
8002
8003 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
8004     VkCommandBuffer                             commandBuffer);
8005 #endif
8006
8007
8008 #define VK_NVX_device_generated_commands 1
8009 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
8010 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
8011 #define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
8012 #define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
8013
8014 typedef enum VkIndirectCommandsTokenTypeNVX {
8015     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
8016     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
8017     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
8018     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
8019     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
8020     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
8021     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
8022     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
8023     VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX,
8024     VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX,
8025     VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1),
8026     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
8027 } VkIndirectCommandsTokenTypeNVX;
8028
8029 typedef enum VkObjectEntryTypeNVX {
8030     VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
8031     VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
8032     VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
8033     VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
8034     VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
8035     VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX,
8036     VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX,
8037     VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1),
8038     VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
8039 } VkObjectEntryTypeNVX;
8040
8041 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
8042     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
8043     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
8044     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
8045     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
8046     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
8047 } VkIndirectCommandsLayoutUsageFlagBitsNVX;
8048 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
8049
8050 typedef enum VkObjectEntryUsageFlagBitsNVX {
8051     VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
8052     VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
8053     VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
8054 } VkObjectEntryUsageFlagBitsNVX;
8055 typedef VkFlags VkObjectEntryUsageFlagsNVX;
8056 typedef struct VkDeviceGeneratedCommandsFeaturesNVX {
8057     VkStructureType    sType;
8058     const void*        pNext;
8059     VkBool32           computeBindingPointSupport;
8060 } VkDeviceGeneratedCommandsFeaturesNVX;
8061
8062 typedef struct VkDeviceGeneratedCommandsLimitsNVX {
8063     VkStructureType    sType;
8064     const void*        pNext;
8065     deUint32           maxIndirectCommandsLayoutTokenCount;
8066     deUint32           maxObjectEntryCounts;
8067     deUint32           minSequenceCountBufferOffsetAlignment;
8068     deUint32           minSequenceIndexBufferOffsetAlignment;
8069     deUint32           minCommandsTokenBufferOffsetAlignment;
8070 } VkDeviceGeneratedCommandsLimitsNVX;
8071
8072 typedef struct VkIndirectCommandsTokenNVX {
8073     VkIndirectCommandsTokenTypeNVX    tokenType;
8074     VkBuffer                          buffer;
8075     VkDeviceSize                      offset;
8076 } VkIndirectCommandsTokenNVX;
8077
8078 typedef struct VkIndirectCommandsLayoutTokenNVX {
8079     VkIndirectCommandsTokenTypeNVX    tokenType;
8080     deUint32                          bindingUnit;
8081     deUint32                          dynamicCount;
8082     deUint32                          divisor;
8083 } VkIndirectCommandsLayoutTokenNVX;
8084
8085 typedef struct VkIndirectCommandsLayoutCreateInfoNVX {
8086     VkStructureType                            sType;
8087     const void*                                pNext;
8088     VkPipelineBindPoint                        pipelineBindPoint;
8089     VkIndirectCommandsLayoutUsageFlagsNVX      flags;
8090     deUint32                                   tokenCount;
8091     const VkIndirectCommandsLayoutTokenNVX*    pTokens;
8092 } VkIndirectCommandsLayoutCreateInfoNVX;
8093
8094 typedef struct VkCmdProcessCommandsInfoNVX {
8095     VkStructureType                      sType;
8096     const void*                          pNext;
8097     VkObjectTableNVX                     objectTable;
8098     VkIndirectCommandsLayoutNVX          indirectCommandsLayout;
8099     deUint32                             indirectCommandsTokenCount;
8100     const VkIndirectCommandsTokenNVX*    pIndirectCommandsTokens;
8101     deUint32                             maxSequencesCount;
8102     VkCommandBuffer                      targetCommandBuffer;
8103     VkBuffer                             sequencesCountBuffer;
8104     VkDeviceSize                         sequencesCountOffset;
8105     VkBuffer                             sequencesIndexBuffer;
8106     VkDeviceSize                         sequencesIndexOffset;
8107 } VkCmdProcessCommandsInfoNVX;
8108
8109 typedef struct VkCmdReserveSpaceForCommandsInfoNVX {
8110     VkStructureType                sType;
8111     const void*                    pNext;
8112     VkObjectTableNVX               objectTable;
8113     VkIndirectCommandsLayoutNVX    indirectCommandsLayout;
8114     deUint32                       maxSequencesCount;
8115 } VkCmdReserveSpaceForCommandsInfoNVX;
8116
8117 typedef struct VkObjectTableCreateInfoNVX {
8118     VkStructureType                      sType;
8119     const void*                          pNext;
8120     deUint32                             objectCount;
8121     const VkObjectEntryTypeNVX*          pObjectEntryTypes;
8122     const deUint32*                      pObjectEntryCounts;
8123     const VkObjectEntryUsageFlagsNVX*    pObjectEntryUsageFlags;
8124     deUint32                             maxUniformBuffersPerDescriptor;
8125     deUint32                             maxStorageBuffersPerDescriptor;
8126     deUint32                             maxStorageImagesPerDescriptor;
8127     deUint32                             maxSampledImagesPerDescriptor;
8128     deUint32                             maxPipelineLayouts;
8129 } VkObjectTableCreateInfoNVX;
8130
8131 typedef struct VkObjectTableEntryNVX {
8132     VkObjectEntryTypeNVX          type;
8133     VkObjectEntryUsageFlagsNVX    flags;
8134 } VkObjectTableEntryNVX;
8135
8136 typedef struct VkObjectTablePipelineEntryNVX {
8137     VkObjectEntryTypeNVX          type;
8138     VkObjectEntryUsageFlagsNVX    flags;
8139     VkPipeline                    pipeline;
8140 } VkObjectTablePipelineEntryNVX;
8141
8142 typedef struct VkObjectTableDescriptorSetEntryNVX {
8143     VkObjectEntryTypeNVX          type;
8144     VkObjectEntryUsageFlagsNVX    flags;
8145     VkPipelineLayout              pipelineLayout;
8146     VkDescriptorSet               descriptorSet;
8147 } VkObjectTableDescriptorSetEntryNVX;
8148
8149 typedef struct VkObjectTableVertexBufferEntryNVX {
8150     VkObjectEntryTypeNVX          type;
8151     VkObjectEntryUsageFlagsNVX    flags;
8152     VkBuffer                      buffer;
8153 } VkObjectTableVertexBufferEntryNVX;
8154
8155 typedef struct VkObjectTableIndexBufferEntryNVX {
8156     VkObjectEntryTypeNVX          type;
8157     VkObjectEntryUsageFlagsNVX    flags;
8158     VkBuffer                      buffer;
8159     VkIndexType                   indexType;
8160 } VkObjectTableIndexBufferEntryNVX;
8161
8162 typedef struct VkObjectTablePushConstantEntryNVX {
8163     VkObjectEntryTypeNVX          type;
8164     VkObjectEntryUsageFlagsNVX    flags;
8165     VkPipelineLayout              pipelineLayout;
8166     VkShaderStageFlags            stageFlags;
8167 } VkObjectTablePushConstantEntryNVX;
8168
8169 typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
8170 typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
8171 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
8172 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
8173 typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
8174 typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
8175 typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const*    ppObjectTableEntries, const deUint32* pObjectIndices);
8176 typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices);
8177 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
8178
8179 #ifndef VK_NO_PROTOTYPES
8180 VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
8181     VkCommandBuffer                             commandBuffer,
8182     const VkCmdProcessCommandsInfoNVX*          pProcessCommandsInfo);
8183
8184 VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
8185     VkCommandBuffer                             commandBuffer,
8186     const VkCmdReserveSpaceForCommandsInfoNVX*  pReserveSpaceInfo);
8187
8188 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
8189     VkDevice                                    device,
8190     const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
8191     const VkAllocationCallbacks*                pAllocator,
8192     VkIndirectCommandsLayoutNVX*                pIndirectCommandsLayout);
8193
8194 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
8195     VkDevice                                    device,
8196     VkIndirectCommandsLayoutNVX                 indirectCommandsLayout,
8197     const VkAllocationCallbacks*                pAllocator);
8198
8199 VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
8200     VkDevice                                    device,
8201     const VkObjectTableCreateInfoNVX*           pCreateInfo,
8202     const VkAllocationCallbacks*                pAllocator,
8203     VkObjectTableNVX*                           pObjectTable);
8204
8205 VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
8206     VkDevice                                    device,
8207     VkObjectTableNVX                            objectTable,
8208     const VkAllocationCallbacks*                pAllocator);
8209
8210 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
8211     VkDevice                                    device,
8212     VkObjectTableNVX                            objectTable,
8213     deUint32                                    objectCount,
8214     const VkObjectTableEntryNVX* const*         ppObjectTableEntries,
8215     const deUint32*                             pObjectIndices);
8216
8217 VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
8218     VkDevice                                    device,
8219     VkObjectTableNVX                            objectTable,
8220     deUint32                                    objectCount,
8221     const VkObjectEntryTypeNVX*                 pObjectEntryTypes,
8222     const deUint32*                             pObjectIndices);
8223
8224 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
8225     VkPhysicalDevice                            physicalDevice,
8226     VkDeviceGeneratedCommandsFeaturesNVX*       pFeatures,
8227     VkDeviceGeneratedCommandsLimitsNVX*         pLimits);
8228 #endif
8229
8230
8231 #define VK_NV_clip_space_w_scaling 1
8232 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
8233 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
8234 typedef struct VkViewportWScalingNV {
8235     float    xcoeff;
8236     float    ycoeff;
8237 } VkViewportWScalingNV;
8238
8239 typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
8240     VkStructureType                sType;
8241     const void*                    pNext;
8242     VkBool32                       viewportWScalingEnable;
8243     deUint32                       viewportCount;
8244     const VkViewportWScalingNV*    pViewportWScalings;
8245 } VkPipelineViewportWScalingStateCreateInfoNV;
8246
8247 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings);
8248
8249 #ifndef VK_NO_PROTOTYPES
8250 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
8251     VkCommandBuffer                             commandBuffer,
8252     deUint32                                    firstViewport,
8253     deUint32                                    viewportCount,
8254     const VkViewportWScalingNV*                 pViewportWScalings);
8255 #endif
8256
8257
8258 #define VK_EXT_direct_mode_display 1
8259 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
8260 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
8261 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
8262
8263 #ifndef VK_NO_PROTOTYPES
8264 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
8265     VkPhysicalDevice                            physicalDevice,
8266     VkDisplayKHR                                display);
8267 #endif
8268
8269
8270 #define VK_EXT_display_surface_counter 1
8271 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
8272 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
8273
8274 typedef enum VkSurfaceCounterFlagBitsEXT {
8275     VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
8276     VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
8277 } VkSurfaceCounterFlagBitsEXT;
8278 typedef VkFlags VkSurfaceCounterFlagsEXT;
8279 typedef struct VkSurfaceCapabilities2EXT {
8280     VkStructureType                  sType;
8281     void*                            pNext;
8282     deUint32                         minImageCount;
8283     deUint32                         maxImageCount;
8284     VkExtent2D                       currentExtent;
8285     VkExtent2D                       minImageExtent;
8286     VkExtent2D                       maxImageExtent;
8287     deUint32                         maxImageArrayLayers;
8288     VkSurfaceTransformFlagsKHR       supportedTransforms;
8289     VkSurfaceTransformFlagBitsKHR    currentTransform;
8290     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
8291     VkImageUsageFlags                supportedUsageFlags;
8292     VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
8293 } VkSurfaceCapabilities2EXT;
8294
8295 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
8296
8297 #ifndef VK_NO_PROTOTYPES
8298 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
8299     VkPhysicalDevice                            physicalDevice,
8300     VkSurfaceKHR                                surface,
8301     VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
8302 #endif
8303
8304
8305 #define VK_EXT_display_control 1
8306 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
8307 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
8308
8309 typedef enum VkDisplayPowerStateEXT {
8310     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
8311     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
8312     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
8313     VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT,
8314     VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT,
8315     VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1),
8316     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
8317 } VkDisplayPowerStateEXT;
8318
8319 typedef enum VkDeviceEventTypeEXT {
8320     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
8321     VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
8322     VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
8323     VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1),
8324     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
8325 } VkDeviceEventTypeEXT;
8326
8327 typedef enum VkDisplayEventTypeEXT {
8328     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
8329     VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
8330     VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
8331     VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1),
8332     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
8333 } VkDisplayEventTypeEXT;
8334 typedef struct VkDisplayPowerInfoEXT {
8335     VkStructureType           sType;
8336     const void*               pNext;
8337     VkDisplayPowerStateEXT    powerState;
8338 } VkDisplayPowerInfoEXT;
8339
8340 typedef struct VkDeviceEventInfoEXT {
8341     VkStructureType         sType;
8342     const void*             pNext;
8343     VkDeviceEventTypeEXT    deviceEvent;
8344 } VkDeviceEventInfoEXT;
8345
8346 typedef struct VkDisplayEventInfoEXT {
8347     VkStructureType          sType;
8348     const void*              pNext;
8349     VkDisplayEventTypeEXT    displayEvent;
8350 } VkDisplayEventInfoEXT;
8351
8352 typedef struct VkSwapchainCounterCreateInfoEXT {
8353     VkStructureType             sType;
8354     const void*                 pNext;
8355     VkSurfaceCounterFlagsEXT    surfaceCounters;
8356 } VkSwapchainCounterCreateInfoEXT;
8357
8358 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
8359 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
8360 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
8361 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue);
8362
8363 #ifndef VK_NO_PROTOTYPES
8364 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
8365     VkDevice                                    device,
8366     VkDisplayKHR                                display,
8367     const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
8368
8369 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
8370     VkDevice                                    device,
8371     const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
8372     const VkAllocationCallbacks*                pAllocator,
8373     VkFence*                                    pFence);
8374
8375 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
8376     VkDevice                                    device,
8377     VkDisplayKHR                                display,
8378     const VkDisplayEventInfoEXT*                pDisplayEventInfo,
8379     const VkAllocationCallbacks*                pAllocator,
8380     VkFence*                                    pFence);
8381
8382 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
8383     VkDevice                                    device,
8384     VkSwapchainKHR                              swapchain,
8385     VkSurfaceCounterFlagBitsEXT                 counter,
8386     deUint64*                                   pCounterValue);
8387 #endif
8388
8389
8390 #define VK_GOOGLE_display_timing 1
8391 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
8392 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
8393 typedef struct VkRefreshCycleDurationGOOGLE {
8394     deUint64    refreshDuration;
8395 } VkRefreshCycleDurationGOOGLE;
8396
8397 typedef struct VkPastPresentationTimingGOOGLE {
8398     deUint32    presentID;
8399     deUint64    desiredPresentTime;
8400     deUint64    actualPresentTime;
8401     deUint64    earliestPresentTime;
8402     deUint64    presentMargin;
8403 } VkPastPresentationTimingGOOGLE;
8404
8405 typedef struct VkPresentTimeGOOGLE {
8406     deUint32    presentID;
8407     deUint64    desiredPresentTime;
8408 } VkPresentTimeGOOGLE;
8409
8410 typedef struct VkPresentTimesInfoGOOGLE {
8411     VkStructureType               sType;
8412     const void*                   pNext;
8413     deUint32                      swapchainCount;
8414     const VkPresentTimeGOOGLE*    pTimes;
8415 } VkPresentTimesInfoGOOGLE;
8416
8417 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
8418 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
8419
8420 #ifndef VK_NO_PROTOTYPES
8421 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
8422     VkDevice                                    device,
8423     VkSwapchainKHR                              swapchain,
8424     VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
8425
8426 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
8427     VkDevice                                    device,
8428     VkSwapchainKHR                              swapchain,
8429     deUint32*                                   pPresentationTimingCount,
8430     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
8431 #endif
8432
8433
8434 #define VK_NV_sample_mask_override_coverage 1
8435 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
8436 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
8437
8438
8439 #define VK_NV_geometry_shader_passthrough 1
8440 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
8441 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
8442
8443
8444 #define VK_NV_viewport_array2 1
8445 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
8446 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
8447
8448
8449 #define VK_NVX_multiview_per_view_attributes 1
8450 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
8451 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
8452 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
8453     VkStructureType    sType;
8454     void*              pNext;
8455     VkBool32           perViewPositionAllComponents;
8456 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
8457
8458
8459
8460 #define VK_NV_viewport_swizzle 1
8461 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
8462 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
8463
8464 typedef enum VkViewportCoordinateSwizzleNV {
8465     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
8466     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
8467     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
8468     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
8469     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
8470     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
8471     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
8472     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
8473     VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
8474     VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
8475     VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1),
8476     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
8477 } VkViewportCoordinateSwizzleNV;
8478 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
8479 typedef struct VkViewportSwizzleNV {
8480     VkViewportCoordinateSwizzleNV    x;
8481     VkViewportCoordinateSwizzleNV    y;
8482     VkViewportCoordinateSwizzleNV    z;
8483     VkViewportCoordinateSwizzleNV    w;
8484 } VkViewportSwizzleNV;
8485
8486 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
8487     VkStructureType                                sType;
8488     const void*                                    pNext;
8489     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
8490     deUint32                                       viewportCount;
8491     const VkViewportSwizzleNV*                     pViewportSwizzles;
8492 } VkPipelineViewportSwizzleStateCreateInfoNV;
8493
8494
8495
8496 #define VK_EXT_discard_rectangles 1
8497 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
8498 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
8499
8500 typedef enum VkDiscardRectangleModeEXT {
8501     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
8502     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
8503     VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
8504     VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
8505     VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1),
8506     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
8507 } VkDiscardRectangleModeEXT;
8508 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
8509 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
8510     VkStructureType    sType;
8511     void*              pNext;
8512     deUint32           maxDiscardRectangles;
8513 } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
8514
8515 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
8516     VkStructureType                                  sType;
8517     const void*                                      pNext;
8518     VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
8519     VkDiscardRectangleModeEXT                        discardRectangleMode;
8520     deUint32                                         discardRectangleCount;
8521     const VkRect2D*                                  pDiscardRectangles;
8522 } VkPipelineDiscardRectangleStateCreateInfoEXT;
8523
8524 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles);
8525
8526 #ifndef VK_NO_PROTOTYPES
8527 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
8528     VkCommandBuffer                             commandBuffer,
8529     deUint32                                    firstDiscardRectangle,
8530     deUint32                                    discardRectangleCount,
8531     const VkRect2D*                             pDiscardRectangles);
8532 #endif
8533
8534
8535 #define VK_EXT_conservative_rasterization 1
8536 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
8537 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
8538
8539 typedef enum VkConservativeRasterizationModeEXT {
8540     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
8541     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
8542     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
8543     VK_CONSERVATIVE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
8544     VK_CONSERVATIVE_RASTERIZATION_MODE_END_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT,
8545     VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1),
8546     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
8547 } VkConservativeRasterizationModeEXT;
8548 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
8549 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
8550     VkStructureType    sType;
8551     void*              pNext;
8552     float              primitiveOverestimationSize;
8553     float              maxExtraPrimitiveOverestimationSize;
8554     float              extraPrimitiveOverestimationSizeGranularity;
8555     VkBool32           primitiveUnderestimation;
8556     VkBool32           conservativePointAndLineRasterization;
8557     VkBool32           degenerateTrianglesRasterized;
8558     VkBool32           degenerateLinesRasterized;
8559     VkBool32           fullyCoveredFragmentShaderInputVariable;
8560     VkBool32           conservativeRasterizationPostDepthCoverage;
8561 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
8562
8563 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
8564     VkStructureType                                           sType;
8565     const void*                                               pNext;
8566     VkPipelineRasterizationConservativeStateCreateFlagsEXT    flags;
8567     VkConservativeRasterizationModeEXT                        conservativeRasterizationMode;
8568     float                                                     extraPrimitiveOverestimationSize;
8569 } VkPipelineRasterizationConservativeStateCreateInfoEXT;
8570
8571
8572
8573 #define VK_EXT_depth_clip_enable 1
8574 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
8575 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
8576 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
8577 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
8578     VkStructureType    sType;
8579     void*              pNext;
8580     VkBool32           depthClipEnable;
8581 } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
8582
8583 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
8584     VkStructureType                                        sType;
8585     const void*                                            pNext;
8586     VkPipelineRasterizationDepthClipStateCreateFlagsEXT    flags;
8587     VkBool32                                               depthClipEnable;
8588 } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
8589
8590
8591
8592 #define VK_EXT_swapchain_colorspace 1
8593 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4
8594 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
8595
8596
8597 #define VK_EXT_hdr_metadata 1
8598 #define VK_EXT_HDR_METADATA_SPEC_VERSION  2
8599 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
8600 typedef struct VkXYColorEXT {
8601     float    x;
8602     float    y;
8603 } VkXYColorEXT;
8604
8605 typedef struct VkHdrMetadataEXT {
8606     VkStructureType    sType;
8607     const void*        pNext;
8608     VkXYColorEXT       displayPrimaryRed;
8609     VkXYColorEXT       displayPrimaryGreen;
8610     VkXYColorEXT       displayPrimaryBlue;
8611     VkXYColorEXT       whitePoint;
8612     float              maxLuminance;
8613     float              minLuminance;
8614     float              maxContentLightLevel;
8615     float              maxFrameAverageLightLevel;
8616 } VkHdrMetadataEXT;
8617
8618 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
8619
8620 #ifndef VK_NO_PROTOTYPES
8621 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
8622     VkDevice                                    device,
8623     deUint32                                    swapchainCount,
8624     const VkSwapchainKHR*                       pSwapchains,
8625     const VkHdrMetadataEXT*                     pMetadata);
8626 #endif
8627
8628
8629 #define VK_EXT_external_memory_dma_buf 1
8630 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
8631 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
8632
8633
8634 #define VK_EXT_queue_family_foreign 1
8635 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
8636 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
8637 #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~0U-2)
8638
8639
8640 #define VK_EXT_debug_utils 1
8641 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
8642 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   1
8643 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
8644 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
8645 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
8646
8647 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
8648     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
8649     VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
8650     VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
8651     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
8652     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
8653 } VkDebugUtilsMessageSeverityFlagBitsEXT;
8654 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
8655
8656 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
8657     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
8658     VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
8659     VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
8660     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
8661 } VkDebugUtilsMessageTypeFlagBitsEXT;
8662 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
8663 typedef struct VkDebugUtilsObjectNameInfoEXT {
8664     VkStructureType    sType;
8665     const void*        pNext;
8666     VkObjectType       objectType;
8667     deUint64           objectHandle;
8668     const char*        pObjectName;
8669 } VkDebugUtilsObjectNameInfoEXT;
8670
8671 typedef struct VkDebugUtilsObjectTagInfoEXT {
8672     VkStructureType    sType;
8673     const void*        pNext;
8674     VkObjectType       objectType;
8675     deUint64           objectHandle;
8676     deUint64           tagName;
8677     deUintptr             tagSize;
8678     const void*        pTag;
8679 } VkDebugUtilsObjectTagInfoEXT;
8680
8681 typedef struct VkDebugUtilsLabelEXT {
8682     VkStructureType    sType;
8683     const void*        pNext;
8684     const char*        pLabelName;
8685     float              color[4];
8686 } VkDebugUtilsLabelEXT;
8687
8688 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
8689     VkStructureType                              sType;
8690     const void*                                  pNext;
8691     VkDebugUtilsMessengerCallbackDataFlagsEXT    flags;
8692     const char*                                  pMessageIdName;
8693     deInt32                                      messageIdNumber;
8694     const char*                                  pMessage;
8695     deUint32                                     queueLabelCount;
8696     const VkDebugUtilsLabelEXT*                  pQueueLabels;
8697     deUint32                                     cmdBufLabelCount;
8698     const VkDebugUtilsLabelEXT*                  pCmdBufLabels;
8699     deUint32                                     objectCount;
8700     const VkDebugUtilsObjectNameInfoEXT*         pObjects;
8701 } VkDebugUtilsMessengerCallbackDataEXT;
8702
8703 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
8704     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
8705     VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,
8706     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
8707     void*                                            pUserData);
8708
8709 typedef struct VkDebugUtilsMessengerCreateInfoEXT {
8710     VkStructureType                         sType;
8711     const void*                             pNext;
8712     VkDebugUtilsMessengerCreateFlagsEXT     flags;
8713     VkDebugUtilsMessageSeverityFlagsEXT     messageSeverity;
8714     VkDebugUtilsMessageTypeFlagsEXT         messageType;
8715     PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
8716     void*                                   pUserData;
8717 } VkDebugUtilsMessengerCreateInfoEXT;
8718
8719 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
8720 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
8721 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
8722 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
8723 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
8724 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
8725 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
8726 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
8727 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
8728 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
8729 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
8730
8731 #ifndef VK_NO_PROTOTYPES
8732 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
8733     VkDevice                                    device,
8734     const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
8735
8736 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
8737     VkDevice                                    device,
8738     const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
8739
8740 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
8741     VkQueue                                     queue,
8742     const VkDebugUtilsLabelEXT*                 pLabelInfo);
8743
8744 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
8745     VkQueue                                     queue);
8746
8747 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
8748     VkQueue                                     queue,
8749     const VkDebugUtilsLabelEXT*                 pLabelInfo);
8750
8751 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
8752     VkCommandBuffer                             commandBuffer,
8753     const VkDebugUtilsLabelEXT*                 pLabelInfo);
8754
8755 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
8756     VkCommandBuffer                             commandBuffer);
8757
8758 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
8759     VkCommandBuffer                             commandBuffer,
8760     const VkDebugUtilsLabelEXT*                 pLabelInfo);
8761
8762 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
8763     VkInstance                                  instance,
8764     const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo,
8765     const VkAllocationCallbacks*                pAllocator,
8766     VkDebugUtilsMessengerEXT*                   pMessenger);
8767
8768 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
8769     VkInstance                                  instance,
8770     VkDebugUtilsMessengerEXT                    messenger,
8771     const VkAllocationCallbacks*                pAllocator);
8772
8773 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
8774     VkInstance                                  instance,
8775     VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
8776     VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
8777     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
8778 #endif
8779
8780
8781 #define VK_EXT_sampler_filter_minmax 1
8782 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
8783 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
8784 typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
8785
8786 typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
8787
8788 typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
8789
8790
8791
8792 #define VK_AMD_gpu_shader_int16 1
8793 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
8794 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
8795
8796
8797 #define VK_AMD_mixed_attachment_samples 1
8798 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
8799 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
8800
8801
8802 #define VK_AMD_shader_fragment_mask 1
8803 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
8804 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
8805
8806
8807 #define VK_EXT_inline_uniform_block 1
8808 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
8809 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
8810 typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
8811     VkStructureType    sType;
8812     void*              pNext;
8813     VkBool32           inlineUniformBlock;
8814     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
8815 } VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
8816
8817 typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
8818     VkStructureType    sType;
8819     void*              pNext;
8820     deUint32           maxInlineUniformBlockSize;
8821     deUint32           maxPerStageDescriptorInlineUniformBlocks;
8822     deUint32           maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
8823     deUint32           maxDescriptorSetInlineUniformBlocks;
8824     deUint32           maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
8825 } VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
8826
8827 typedef struct VkWriteDescriptorSetInlineUniformBlockEXT {
8828     VkStructureType    sType;
8829     const void*        pNext;
8830     deUint32           dataSize;
8831     const void*        pData;
8832 } VkWriteDescriptorSetInlineUniformBlockEXT;
8833
8834 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
8835     VkStructureType    sType;
8836     const void*        pNext;
8837     deUint32           maxInlineUniformBlockBindings;
8838 } VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
8839
8840
8841
8842 #define VK_EXT_shader_stencil_export 1
8843 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
8844 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
8845
8846
8847 #define VK_EXT_sample_locations 1
8848 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
8849 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
8850 typedef struct VkSampleLocationEXT {
8851     float    x;
8852     float    y;
8853 } VkSampleLocationEXT;
8854
8855 typedef struct VkSampleLocationsInfoEXT {
8856     VkStructureType               sType;
8857     const void*                   pNext;
8858     VkSampleCountFlagBits         sampleLocationsPerPixel;
8859     VkExtent2D                    sampleLocationGridSize;
8860     deUint32                      sampleLocationsCount;
8861     const VkSampleLocationEXT*    pSampleLocations;
8862 } VkSampleLocationsInfoEXT;
8863
8864 typedef struct VkAttachmentSampleLocationsEXT {
8865     deUint32                    attachmentIndex;
8866     VkSampleLocationsInfoEXT    sampleLocationsInfo;
8867 } VkAttachmentSampleLocationsEXT;
8868
8869 typedef struct VkSubpassSampleLocationsEXT {
8870     deUint32                    subpassIndex;
8871     VkSampleLocationsInfoEXT    sampleLocationsInfo;
8872 } VkSubpassSampleLocationsEXT;
8873
8874 typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
8875     VkStructureType                          sType;
8876     const void*                              pNext;
8877     deUint32                                 attachmentInitialSampleLocationsCount;
8878     const VkAttachmentSampleLocationsEXT*    pAttachmentInitialSampleLocations;
8879     deUint32                                 postSubpassSampleLocationsCount;
8880     const VkSubpassSampleLocationsEXT*       pPostSubpassSampleLocations;
8881 } VkRenderPassSampleLocationsBeginInfoEXT;
8882
8883 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
8884     VkStructureType             sType;
8885     const void*                 pNext;
8886     VkBool32                    sampleLocationsEnable;
8887     VkSampleLocationsInfoEXT    sampleLocationsInfo;
8888 } VkPipelineSampleLocationsStateCreateInfoEXT;
8889
8890 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
8891     VkStructureType       sType;
8892     void*                 pNext;
8893     VkSampleCountFlags    sampleLocationSampleCounts;
8894     VkExtent2D            maxSampleLocationGridSize;
8895     float                 sampleLocationCoordinateRange[2];
8896     deUint32              sampleLocationSubPixelBits;
8897     VkBool32              variableSampleLocations;
8898 } VkPhysicalDeviceSampleLocationsPropertiesEXT;
8899
8900 typedef struct VkMultisamplePropertiesEXT {
8901     VkStructureType    sType;
8902     void*              pNext;
8903     VkExtent2D         maxSampleLocationGridSize;
8904 } VkMultisamplePropertiesEXT;
8905
8906 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
8907 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
8908
8909 #ifndef VK_NO_PROTOTYPES
8910 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
8911     VkCommandBuffer                             commandBuffer,
8912     const VkSampleLocationsInfoEXT*             pSampleLocationsInfo);
8913
8914 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
8915     VkPhysicalDevice                            physicalDevice,
8916     VkSampleCountFlagBits                       samples,
8917     VkMultisamplePropertiesEXT*                 pMultisampleProperties);
8918 #endif
8919
8920
8921 #define VK_EXT_blend_operation_advanced 1
8922 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
8923 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
8924
8925 typedef enum VkBlendOverlapEXT {
8926     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
8927     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
8928     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
8929     VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
8930     VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT,
8931     VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1),
8932     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
8933 } VkBlendOverlapEXT;
8934 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
8935     VkStructureType    sType;
8936     void*              pNext;
8937     VkBool32           advancedBlendCoherentOperations;
8938 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
8939
8940 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
8941     VkStructureType    sType;
8942     void*              pNext;
8943     deUint32           advancedBlendMaxColorAttachments;
8944     VkBool32           advancedBlendIndependentBlend;
8945     VkBool32           advancedBlendNonPremultipliedSrcColor;
8946     VkBool32           advancedBlendNonPremultipliedDstColor;
8947     VkBool32           advancedBlendCorrelatedOverlap;
8948     VkBool32           advancedBlendAllOperations;
8949 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
8950
8951 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
8952     VkStructureType      sType;
8953     const void*          pNext;
8954     VkBool32             srcPremultiplied;
8955     VkBool32             dstPremultiplied;
8956     VkBlendOverlapEXT    blendOverlap;
8957 } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
8958
8959
8960
8961 #define VK_NV_fragment_coverage_to_color 1
8962 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
8963 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
8964 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
8965 typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
8966     VkStructureType                                sType;
8967     const void*                                    pNext;
8968     VkPipelineCoverageToColorStateCreateFlagsNV    flags;
8969     VkBool32                                       coverageToColorEnable;
8970     deUint32                                       coverageToColorLocation;
8971 } VkPipelineCoverageToColorStateCreateInfoNV;
8972
8973
8974
8975 #define VK_NV_framebuffer_mixed_samples 1
8976 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
8977 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
8978
8979 typedef enum VkCoverageModulationModeNV {
8980     VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
8981     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
8982     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
8983     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
8984     VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV,
8985     VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV,
8986     VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1),
8987     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
8988 } VkCoverageModulationModeNV;
8989 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
8990 typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
8991     VkStructureType                                   sType;
8992     const void*                                       pNext;
8993     VkPipelineCoverageModulationStateCreateFlagsNV    flags;
8994     VkCoverageModulationModeNV                        coverageModulationMode;
8995     VkBool32                                          coverageModulationTableEnable;
8996     deUint32                                          coverageModulationTableCount;
8997     const float*                                      pCoverageModulationTable;
8998 } VkPipelineCoverageModulationStateCreateInfoNV;
8999
9000
9001
9002 #define VK_NV_fill_rectangle 1
9003 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
9004 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
9005
9006 #define VK_NV_shader_sm_builtins 1
9007 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
9008 #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
9009 typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
9010     VkStructureType    sType;
9011     void*              pNext;
9012     deUint32           shaderSMCount;
9013     deUint32           shaderWarpsPerSM;
9014 } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
9015
9016 typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
9017     VkStructureType    sType;
9018     void*              pNext;
9019     VkBool32           shaderSMBuiltins;
9020 } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
9021
9022 #define VK_EXT_post_depth_coverage 1
9023 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
9024 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
9025
9026
9027 #define VK_EXT_image_drm_format_modifier 1
9028 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1
9029 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
9030 typedef struct VkDrmFormatModifierPropertiesEXT {
9031     deUint64                drmFormatModifier;
9032     deUint32                drmFormatModifierPlaneCount;
9033     VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
9034 } VkDrmFormatModifierPropertiesEXT;
9035
9036 typedef struct VkDrmFormatModifierPropertiesListEXT {
9037     VkStructureType                      sType;
9038     void*                                pNext;
9039     deUint32                             drmFormatModifierCount;
9040     VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties;
9041 } VkDrmFormatModifierPropertiesListEXT;
9042
9043 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
9044     VkStructureType    sType;
9045     const void*        pNext;
9046     deUint64           drmFormatModifier;
9047     VkSharingMode      sharingMode;
9048     deUint32           queueFamilyIndexCount;
9049     const deUint32*    pQueueFamilyIndices;
9050 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
9051
9052 typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
9053     VkStructureType    sType;
9054     const void*        pNext;
9055     deUint32           drmFormatModifierCount;
9056     const deUint64*    pDrmFormatModifiers;
9057 } VkImageDrmFormatModifierListCreateInfoEXT;
9058
9059 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
9060     VkStructureType               sType;
9061     const void*                   pNext;
9062     deUint64                      drmFormatModifier;
9063     deUint32                      drmFormatModifierPlaneCount;
9064     const VkSubresourceLayout*    pPlaneLayouts;
9065 } VkImageDrmFormatModifierExplicitCreateInfoEXT;
9066
9067 typedef struct VkImageDrmFormatModifierPropertiesEXT {
9068     VkStructureType    sType;
9069     void*              pNext;
9070     deUint64           drmFormatModifier;
9071 } VkImageDrmFormatModifierPropertiesEXT;
9072
9073 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
9074
9075 #ifndef VK_NO_PROTOTYPES
9076 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
9077     VkDevice                                    device,
9078     VkImage                                     image,
9079     VkImageDrmFormatModifierPropertiesEXT*      pProperties);
9080 #endif
9081
9082
9083 #define VK_EXT_validation_cache 1
9084 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
9085 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
9086 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
9087
9088 typedef enum VkValidationCacheHeaderVersionEXT {
9089     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
9090     VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
9091     VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
9092     VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1),
9093     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
9094 } VkValidationCacheHeaderVersionEXT;
9095 typedef VkFlags VkValidationCacheCreateFlagsEXT;
9096 typedef struct VkValidationCacheCreateInfoEXT {
9097     VkStructureType                    sType;
9098     const void*                        pNext;
9099     VkValidationCacheCreateFlagsEXT    flags;
9100     deUintptr                             initialDataSize;
9101     const void*                        pInitialData;
9102 } VkValidationCacheCreateInfoEXT;
9103
9104 typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
9105     VkStructureType         sType;
9106     const void*             pNext;
9107     VkValidationCacheEXT    validationCache;
9108 } VkShaderModuleValidationCacheCreateInfoEXT;
9109
9110 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
9111 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
9112 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, deUint32 srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
9113 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, deUintptr* pDataSize, void* pData);
9114
9115 #ifndef VK_NO_PROTOTYPES
9116 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
9117     VkDevice                                    device,
9118     const VkValidationCacheCreateInfoEXT*       pCreateInfo,
9119     const VkAllocationCallbacks*                pAllocator,
9120     VkValidationCacheEXT*                       pValidationCache);
9121
9122 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
9123     VkDevice                                    device,
9124     VkValidationCacheEXT                        validationCache,
9125     const VkAllocationCallbacks*                pAllocator);
9126
9127 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
9128     VkDevice                                    device,
9129     VkValidationCacheEXT                        dstCache,
9130     deUint32                                    srcCacheCount,
9131     const VkValidationCacheEXT*                 pSrcCaches);
9132
9133 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
9134     VkDevice                                    device,
9135     VkValidationCacheEXT                        validationCache,
9136     deUintptr*                                     pDataSize,
9137     void*                                       pData);
9138 #endif
9139
9140
9141 #define VK_EXT_descriptor_indexing 1
9142 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
9143 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
9144 typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
9145
9146 typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
9147
9148 typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
9149
9150 typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
9151
9152 typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
9153
9154 typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
9155
9156 typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
9157
9158
9159
9160 #define VK_EXT_shader_viewport_index_layer 1
9161 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
9162 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
9163
9164
9165 #define VK_NV_shading_rate_image 1
9166 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
9167 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
9168
9169 typedef enum VkShadingRatePaletteEntryNV {
9170     VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
9171     VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
9172     VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
9173     VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
9174     VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
9175     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
9176     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
9177     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
9178     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
9179     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
9180     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
9181     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
9182     VK_SHADING_RATE_PALETTE_ENTRY_BEGIN_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
9183     VK_SHADING_RATE_PALETTE_ENTRY_END_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV,
9184     VK_SHADING_RATE_PALETTE_ENTRY_RANGE_SIZE_NV = (VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV + 1),
9185     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
9186 } VkShadingRatePaletteEntryNV;
9187
9188 typedef enum VkCoarseSampleOrderTypeNV {
9189     VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
9190     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
9191     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
9192     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
9193     VK_COARSE_SAMPLE_ORDER_TYPE_BEGIN_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
9194     VK_COARSE_SAMPLE_ORDER_TYPE_END_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV,
9195     VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1),
9196     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
9197 } VkCoarseSampleOrderTypeNV;
9198 typedef struct VkShadingRatePaletteNV {
9199     deUint32                              shadingRatePaletteEntryCount;
9200     const VkShadingRatePaletteEntryNV*    pShadingRatePaletteEntries;
9201 } VkShadingRatePaletteNV;
9202
9203 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
9204     VkStructureType                  sType;
9205     const void*                      pNext;
9206     VkBool32                         shadingRateImageEnable;
9207     deUint32                         viewportCount;
9208     const VkShadingRatePaletteNV*    pShadingRatePalettes;
9209 } VkPipelineViewportShadingRateImageStateCreateInfoNV;
9210
9211 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
9212     VkStructureType    sType;
9213     void*              pNext;
9214     VkBool32           shadingRateImage;
9215     VkBool32           shadingRateCoarseSampleOrder;
9216 } VkPhysicalDeviceShadingRateImageFeaturesNV;
9217
9218 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
9219     VkStructureType    sType;
9220     void*              pNext;
9221     VkExtent2D         shadingRateTexelSize;
9222     deUint32           shadingRatePaletteSize;
9223     deUint32           shadingRateMaxCoarseSamples;
9224 } VkPhysicalDeviceShadingRateImagePropertiesNV;
9225
9226 typedef struct VkCoarseSampleLocationNV {
9227     deUint32    pixelX;
9228     deUint32    pixelY;
9229     deUint32    sample;
9230 } VkCoarseSampleLocationNV;
9231
9232 typedef struct VkCoarseSampleOrderCustomNV {
9233     VkShadingRatePaletteEntryNV        shadingRate;
9234     deUint32                           sampleCount;
9235     deUint32                           sampleLocationCount;
9236     const VkCoarseSampleLocationNV*    pSampleLocations;
9237 } VkCoarseSampleOrderCustomNV;
9238
9239 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
9240     VkStructureType                       sType;
9241     const void*                           pNext;
9242     VkCoarseSampleOrderTypeNV             sampleOrderType;
9243     deUint32                              customSampleOrderCount;
9244     const VkCoarseSampleOrderCustomNV*    pCustomSampleOrders;
9245 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
9246
9247 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
9248 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
9249 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, deUint32 customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
9250
9251 #ifndef VK_NO_PROTOTYPES
9252 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
9253     VkCommandBuffer                             commandBuffer,
9254     VkImageView                                 imageView,
9255     VkImageLayout                               imageLayout);
9256
9257 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
9258     VkCommandBuffer                             commandBuffer,
9259     deUint32                                    firstViewport,
9260     deUint32                                    viewportCount,
9261     const VkShadingRatePaletteNV*               pShadingRatePalettes);
9262
9263 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
9264     VkCommandBuffer                             commandBuffer,
9265     VkCoarseSampleOrderTypeNV                   sampleOrderType,
9266     deUint32                                    customSampleOrderCount,
9267     const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders);
9268 #endif
9269
9270
9271 #define VK_NV_ray_tracing 1
9272 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
9273 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
9274 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
9275 #define VK_SHADER_UNUSED_NV               (~0U)
9276
9277 typedef enum VkAccelerationStructureTypeNV {
9278     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0,
9279     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1,
9280     VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV,
9281     VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV,
9282     VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV + 1),
9283     VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
9284 } VkAccelerationStructureTypeNV;
9285
9286 typedef enum VkRayTracingShaderGroupTypeNV {
9287     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0,
9288     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1,
9289     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2,
9290     VK_RAY_TRACING_SHADER_GROUP_TYPE_BEGIN_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV,
9291     VK_RAY_TRACING_SHADER_GROUP_TYPE_END_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV,
9292     VK_RAY_TRACING_SHADER_GROUP_TYPE_RANGE_SIZE_NV = (VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV + 1),
9293     VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
9294 } VkRayTracingShaderGroupTypeNV;
9295
9296 typedef enum VkGeometryTypeNV {
9297     VK_GEOMETRY_TYPE_TRIANGLES_NV = 0,
9298     VK_GEOMETRY_TYPE_AABBS_NV = 1,
9299     VK_GEOMETRY_TYPE_BEGIN_RANGE_NV = VK_GEOMETRY_TYPE_TRIANGLES_NV,
9300     VK_GEOMETRY_TYPE_END_RANGE_NV = VK_GEOMETRY_TYPE_AABBS_NV,
9301     VK_GEOMETRY_TYPE_RANGE_SIZE_NV = (VK_GEOMETRY_TYPE_AABBS_NV - VK_GEOMETRY_TYPE_TRIANGLES_NV + 1),
9302     VK_GEOMETRY_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
9303 } VkGeometryTypeNV;
9304
9305 typedef enum VkCopyAccelerationStructureModeNV {
9306     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0,
9307     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1,
9308     VK_COPY_ACCELERATION_STRUCTURE_MODE_BEGIN_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV,
9309     VK_COPY_ACCELERATION_STRUCTURE_MODE_END_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV,
9310     VK_COPY_ACCELERATION_STRUCTURE_MODE_RANGE_SIZE_NV = (VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV + 1),
9311     VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NV = 0x7FFFFFFF
9312 } VkCopyAccelerationStructureModeNV;
9313
9314 typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
9315     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
9316     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
9317     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
9318     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
9319     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV,
9320     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV + 1),
9321     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
9322 } VkAccelerationStructureMemoryRequirementsTypeNV;
9323
9324 typedef enum VkGeometryFlagBitsNV {
9325     VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001,
9326     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002,
9327     VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
9328 } VkGeometryFlagBitsNV;
9329 typedef VkFlags VkGeometryFlagsNV;
9330
9331 typedef enum VkGeometryInstanceFlagBitsNV {
9332     VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001,
9333     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002,
9334     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004,
9335     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
9336     VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
9337 } VkGeometryInstanceFlagBitsNV;
9338 typedef VkFlags VkGeometryInstanceFlagsNV;
9339
9340 typedef enum VkBuildAccelerationStructureFlagBitsNV {
9341     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001,
9342     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002,
9343     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004,
9344     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008,
9345     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010,
9346     VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
9347 } VkBuildAccelerationStructureFlagBitsNV;
9348 typedef VkFlags VkBuildAccelerationStructureFlagsNV;
9349 typedef struct VkRayTracingShaderGroupCreateInfoNV {
9350     VkStructureType                  sType;
9351     const void*                      pNext;
9352     VkRayTracingShaderGroupTypeNV    type;
9353     deUint32                         generalShader;
9354     deUint32                         closestHitShader;
9355     deUint32                         anyHitShader;
9356     deUint32                         intersectionShader;
9357 } VkRayTracingShaderGroupCreateInfoNV;
9358
9359 typedef struct VkRayTracingPipelineCreateInfoNV {
9360     VkStructureType                               sType;
9361     const void*                                   pNext;
9362     VkPipelineCreateFlags                         flags;
9363     deUint32                                      stageCount;
9364     const VkPipelineShaderStageCreateInfo*        pStages;
9365     deUint32                                      groupCount;
9366     const VkRayTracingShaderGroupCreateInfoNV*    pGroups;
9367     deUint32                                      maxRecursionDepth;
9368     VkPipelineLayout                              layout;
9369     VkPipeline                                    basePipelineHandle;
9370     deInt32                                       basePipelineIndex;
9371 } VkRayTracingPipelineCreateInfoNV;
9372
9373 typedef struct VkGeometryTrianglesNV {
9374     VkStructureType    sType;
9375     const void*        pNext;
9376     VkBuffer           vertexData;
9377     VkDeviceSize       vertexOffset;
9378     deUint32           vertexCount;
9379     VkDeviceSize       vertexStride;
9380     VkFormat           vertexFormat;
9381     VkBuffer           indexData;
9382     VkDeviceSize       indexOffset;
9383     deUint32           indexCount;
9384     VkIndexType        indexType;
9385     VkBuffer           transformData;
9386     VkDeviceSize       transformOffset;
9387 } VkGeometryTrianglesNV;
9388
9389 typedef struct VkGeometryAABBNV {
9390     VkStructureType    sType;
9391     const void*        pNext;
9392     VkBuffer           aabbData;
9393     deUint32           numAABBs;
9394     deUint32           stride;
9395     VkDeviceSize       offset;
9396 } VkGeometryAABBNV;
9397
9398 typedef struct VkGeometryDataNV {
9399     VkGeometryTrianglesNV    triangles;
9400     VkGeometryAABBNV         aabbs;
9401 } VkGeometryDataNV;
9402
9403 typedef struct VkGeometryNV {
9404     VkStructureType      sType;
9405     const void*          pNext;
9406     VkGeometryTypeNV     geometryType;
9407     VkGeometryDataNV     geometry;
9408     VkGeometryFlagsNV    flags;
9409 } VkGeometryNV;
9410
9411 typedef struct VkAccelerationStructureInfoNV {
9412     VkStructureType                        sType;
9413     const void*                            pNext;
9414     VkAccelerationStructureTypeNV          type;
9415     VkBuildAccelerationStructureFlagsNV    flags;
9416     deUint32                               instanceCount;
9417     deUint32                               geometryCount;
9418     const VkGeometryNV*                    pGeometries;
9419 } VkAccelerationStructureInfoNV;
9420
9421 typedef struct VkAccelerationStructureCreateInfoNV {
9422     VkStructureType                  sType;
9423     const void*                      pNext;
9424     VkDeviceSize                     compactedSize;
9425     VkAccelerationStructureInfoNV    info;
9426 } VkAccelerationStructureCreateInfoNV;
9427
9428 typedef struct VkBindAccelerationStructureMemoryInfoNV {
9429     VkStructureType              sType;
9430     const void*                  pNext;
9431     VkAccelerationStructureNV    accelerationStructure;
9432     VkDeviceMemory               memory;
9433     VkDeviceSize                 memoryOffset;
9434     deUint32                     deviceIndexCount;
9435     const deUint32*              pDeviceIndices;
9436 } VkBindAccelerationStructureMemoryInfoNV;
9437
9438 typedef struct VkWriteDescriptorSetAccelerationStructureNV {
9439     VkStructureType                     sType;
9440     const void*                         pNext;
9441     deUint32                            accelerationStructureCount;
9442     const VkAccelerationStructureNV*    pAccelerationStructures;
9443 } VkWriteDescriptorSetAccelerationStructureNV;
9444
9445 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
9446     VkStructureType                                    sType;
9447     const void*                                        pNext;
9448     VkAccelerationStructureMemoryRequirementsTypeNV    type;
9449     VkAccelerationStructureNV                          accelerationStructure;
9450 } VkAccelerationStructureMemoryRequirementsInfoNV;
9451
9452 typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
9453     VkStructureType    sType;
9454     void*              pNext;
9455     deUint32           shaderGroupHandleSize;
9456     deUint32           maxRecursionDepth;
9457     deUint32           maxShaderGroupStride;
9458     deUint32           shaderGroupBaseAlignment;
9459     deUint64           maxGeometryCount;
9460     deUint64           maxInstanceCount;
9461     deUint64           maxTriangleCount;
9462     deUint32           maxDescriptorSetAccelerationStructures;
9463 } VkPhysicalDeviceRayTracingPropertiesNV;
9464
9465 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
9466 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
9467 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
9468 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
9469 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);
9470 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode);
9471 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, deUint32 width, deUint32 height, deUint32 depth);
9472 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
9473 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData);
9474 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, deUintptr dataSize, void* pData);
9475 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery);
9476 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, deUint32 shader);
9477
9478 #ifndef VK_NO_PROTOTYPES
9479 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
9480     VkDevice                                    device,
9481     const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
9482     const VkAllocationCallbacks*                pAllocator,
9483     VkAccelerationStructureNV*                  pAccelerationStructure);
9484
9485 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
9486     VkDevice                                    device,
9487     VkAccelerationStructureNV                   accelerationStructure,
9488     const VkAllocationCallbacks*                pAllocator);
9489
9490 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
9491     VkDevice                                    device,
9492     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
9493     VkMemoryRequirements2KHR*                   pMemoryRequirements);
9494
9495 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
9496     VkDevice                                    device,
9497     deUint32                                    bindInfoCount,
9498     const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
9499
9500 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
9501     VkCommandBuffer                             commandBuffer,
9502     const VkAccelerationStructureInfoNV*        pInfo,
9503     VkBuffer                                    instanceData,
9504     VkDeviceSize                                instanceOffset,
9505     VkBool32                                    update,
9506     VkAccelerationStructureNV                   dst,
9507     VkAccelerationStructureNV                   src,
9508     VkBuffer                                    scratch,
9509     VkDeviceSize                                scratchOffset);
9510
9511 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
9512     VkCommandBuffer                             commandBuffer,
9513     VkAccelerationStructureNV                   dst,
9514     VkAccelerationStructureNV                   src,
9515     VkCopyAccelerationStructureModeNV           mode);
9516
9517 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
9518     VkCommandBuffer                             commandBuffer,
9519     VkBuffer                                    raygenShaderBindingTableBuffer,
9520     VkDeviceSize                                raygenShaderBindingOffset,
9521     VkBuffer                                    missShaderBindingTableBuffer,
9522     VkDeviceSize                                missShaderBindingOffset,
9523     VkDeviceSize                                missShaderBindingStride,
9524     VkBuffer                                    hitShaderBindingTableBuffer,
9525     VkDeviceSize                                hitShaderBindingOffset,
9526     VkDeviceSize                                hitShaderBindingStride,
9527     VkBuffer                                    callableShaderBindingTableBuffer,
9528     VkDeviceSize                                callableShaderBindingOffset,
9529     VkDeviceSize                                callableShaderBindingStride,
9530     deUint32                                    width,
9531     deUint32                                    height,
9532     deUint32                                    depth);
9533
9534 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
9535     VkDevice                                    device,
9536     VkPipelineCache                             pipelineCache,
9537     deUint32                                    createInfoCount,
9538     const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
9539     const VkAllocationCallbacks*                pAllocator,
9540     VkPipeline*                                 pPipelines);
9541
9542 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
9543     VkDevice                                    device,
9544     VkPipeline                                  pipeline,
9545     deUint32                                    firstGroup,
9546     deUint32                                    groupCount,
9547     deUintptr                                      dataSize,
9548     void*                                       pData);
9549
9550 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
9551     VkDevice                                    device,
9552     VkAccelerationStructureNV                   accelerationStructure,
9553     deUintptr                                      dataSize,
9554     void*                                       pData);
9555
9556 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
9557     VkCommandBuffer                             commandBuffer,
9558     deUint32                                    accelerationStructureCount,
9559     const VkAccelerationStructureNV*            pAccelerationStructures,
9560     VkQueryType                                 queryType,
9561     VkQueryPool                                 queryPool,
9562     deUint32                                    firstQuery);
9563
9564 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
9565     VkDevice                                    device,
9566     VkPipeline                                  pipeline,
9567     deUint32                                    shader);
9568 #endif
9569
9570
9571 #define VK_NV_representative_fragment_test 1
9572 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
9573 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
9574 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
9575     VkStructureType    sType;
9576     void*              pNext;
9577     VkBool32           representativeFragmentTest;
9578 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
9579
9580 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
9581     VkStructureType    sType;
9582     const void*        pNext;
9583     VkBool32           representativeFragmentTestEnable;
9584 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
9585
9586
9587
9588 #define VK_EXT_filter_cubic 1
9589 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION  2
9590 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
9591 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
9592     VkStructureType    sType;
9593     void*              pNext;
9594     VkImageViewType    imageViewType;
9595 } VkPhysicalDeviceImageViewImageFormatInfoEXT;
9596
9597 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
9598     VkStructureType    sType;
9599     void*              pNext;
9600     VkBool32           filterCubic;
9601     VkBool32           filterCubicMinmax;
9602 } VkFilterCubicImageViewImageFormatPropertiesEXT;
9603
9604
9605
9606 #define VK_EXT_global_priority 1
9607 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
9608 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
9609
9610 typedef enum VkQueueGlobalPriorityEXT {
9611     VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
9612     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
9613     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
9614     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
9615     VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
9616     VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT,
9617     VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1),
9618     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF
9619 } VkQueueGlobalPriorityEXT;
9620 typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
9621     VkStructureType             sType;
9622     const void*                 pNext;
9623     VkQueueGlobalPriorityEXT    globalPriority;
9624 } VkDeviceQueueGlobalPriorityCreateInfoEXT;
9625
9626
9627
9628 #define VK_EXT_external_memory_host 1
9629 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
9630 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
9631 typedef struct VkImportMemoryHostPointerInfoEXT {
9632     VkStructureType                       sType;
9633     const void*                           pNext;
9634     VkExternalMemoryHandleTypeFlagBits    handleType;
9635     void*                                 pHostPointer;
9636 } VkImportMemoryHostPointerInfoEXT;
9637
9638 typedef struct VkMemoryHostPointerPropertiesEXT {
9639     VkStructureType    sType;
9640     void*              pNext;
9641     deUint32           memoryTypeBits;
9642 } VkMemoryHostPointerPropertiesEXT;
9643
9644 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
9645     VkStructureType    sType;
9646     void*              pNext;
9647     VkDeviceSize       minImportedHostPointerAlignment;
9648 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
9649
9650 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
9651
9652 #ifndef VK_NO_PROTOTYPES
9653 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
9654     VkDevice                                    device,
9655     VkExternalMemoryHandleTypeFlagBits          handleType,
9656     const void*                                 pHostPointer,
9657     VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties);
9658 #endif
9659
9660
9661 #define VK_AMD_buffer_marker 1
9662 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
9663 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
9664 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, deUint32 marker);
9665
9666 #ifndef VK_NO_PROTOTYPES
9667 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
9668     VkCommandBuffer                             commandBuffer,
9669     VkPipelineStageFlagBits                     pipelineStage,
9670     VkBuffer                                    dstBuffer,
9671     VkDeviceSize                                dstOffset,
9672     deUint32                                    marker);
9673 #endif
9674
9675
9676 #define VK_AMD_pipeline_compiler_control 1
9677 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
9678 #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
9679
9680 typedef enum VkPipelineCompilerControlFlagBitsAMD {
9681     VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
9682 } VkPipelineCompilerControlFlagBitsAMD;
9683 typedef VkFlags VkPipelineCompilerControlFlagsAMD;
9684 typedef struct VkPipelineCompilerControlCreateInfoAMD {
9685     VkStructureType                      sType;
9686     const void*                          pNext;
9687     VkPipelineCompilerControlFlagsAMD    compilerControlFlags;
9688 } VkPipelineCompilerControlCreateInfoAMD;
9689
9690
9691
9692 #define VK_EXT_calibrated_timestamps 1
9693 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
9694 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
9695
9696 typedef enum VkTimeDomainEXT {
9697     VK_TIME_DOMAIN_DEVICE_EXT = 0,
9698     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
9699     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
9700     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
9701     VK_TIME_DOMAIN_BEGIN_RANGE_EXT = VK_TIME_DOMAIN_DEVICE_EXT,
9702     VK_TIME_DOMAIN_END_RANGE_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT,
9703     VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1),
9704     VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
9705 } VkTimeDomainEXT;
9706 typedef struct VkCalibratedTimestampInfoEXT {
9707     VkStructureType    sType;
9708     const void*        pNext;
9709     VkTimeDomainEXT    timeDomain;
9710 } VkCalibratedTimestampInfoEXT;
9711
9712 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, deUint32* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains);
9713 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, deUint32 timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, deUint64* pTimestamps, deUint64* pMaxDeviation);
9714
9715 #ifndef VK_NO_PROTOTYPES
9716 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
9717     VkPhysicalDevice                            physicalDevice,
9718     deUint32*                                   pTimeDomainCount,
9719     VkTimeDomainEXT*                            pTimeDomains);
9720
9721 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
9722     VkDevice                                    device,
9723     deUint32                                    timestampCount,
9724     const VkCalibratedTimestampInfoEXT*         pTimestampInfos,
9725     deUint64*                                   pTimestamps,
9726     deUint64*                                   pMaxDeviation);
9727 #endif
9728
9729
9730 #define VK_AMD_shader_core_properties 1
9731 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
9732 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
9733 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
9734     VkStructureType    sType;
9735     void*              pNext;
9736     deUint32           shaderEngineCount;
9737     deUint32           shaderArraysPerEngineCount;
9738     deUint32           computeUnitsPerShaderArray;
9739     deUint32           simdPerComputeUnit;
9740     deUint32           wavefrontsPerSimd;
9741     deUint32           wavefrontSize;
9742     deUint32           sgprsPerSimd;
9743     deUint32           minSgprAllocation;
9744     deUint32           maxSgprAllocation;
9745     deUint32           sgprAllocationGranularity;
9746     deUint32           vgprsPerSimd;
9747     deUint32           minVgprAllocation;
9748     deUint32           maxVgprAllocation;
9749     deUint32           vgprAllocationGranularity;
9750 } VkPhysicalDeviceShaderCorePropertiesAMD;
9751
9752
9753
9754 #define VK_AMD_memory_overallocation_behavior 1
9755 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
9756 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
9757
9758 typedef enum VkMemoryOverallocationBehaviorAMD {
9759     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
9760     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
9761     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
9762     VK_MEMORY_OVERALLOCATION_BEHAVIOR_BEGIN_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
9763     VK_MEMORY_OVERALLOCATION_BEHAVIOR_END_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD,
9764     VK_MEMORY_OVERALLOCATION_BEHAVIOR_RANGE_SIZE_AMD = (VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD + 1),
9765     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
9766 } VkMemoryOverallocationBehaviorAMD;
9767 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
9768     VkStructureType                      sType;
9769     const void*                          pNext;
9770     VkMemoryOverallocationBehaviorAMD    overallocationBehavior;
9771 } VkDeviceMemoryOverallocationCreateInfoAMD;
9772
9773
9774
9775 #define VK_EXT_vertex_attribute_divisor 1
9776 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
9777 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
9778 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
9779     VkStructureType    sType;
9780     void*              pNext;
9781     deUint32           maxVertexAttribDivisor;
9782 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
9783
9784 typedef struct VkVertexInputBindingDivisorDescriptionEXT {
9785     deUint32    binding;
9786     deUint32    divisor;
9787 } VkVertexInputBindingDivisorDescriptionEXT;
9788
9789 typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
9790     VkStructureType                                     sType;
9791     const void*                                         pNext;
9792     deUint32                                            vertexBindingDivisorCount;
9793     const VkVertexInputBindingDivisorDescriptionEXT*    pVertexBindingDivisors;
9794 } VkPipelineVertexInputDivisorStateCreateInfoEXT;
9795
9796 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
9797     VkStructureType    sType;
9798     void*              pNext;
9799     VkBool32           vertexAttributeInstanceRateDivisor;
9800     VkBool32           vertexAttributeInstanceRateZeroDivisor;
9801 } VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
9802
9803
9804
9805 #define VK_EXT_pipeline_creation_feedback 1
9806 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
9807 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
9808
9809 typedef enum VkPipelineCreationFeedbackFlagBitsEXT {
9810     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = 0x00000001,
9811     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = 0x00000002,
9812     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = 0x00000004,
9813     VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
9814 } VkPipelineCreationFeedbackFlagBitsEXT;
9815 typedef VkFlags VkPipelineCreationFeedbackFlagsEXT;
9816 typedef struct VkPipelineCreationFeedbackEXT {
9817     VkPipelineCreationFeedbackFlagsEXT    flags;
9818     deUint64                              duration;
9819 } VkPipelineCreationFeedbackEXT;
9820
9821 typedef struct VkPipelineCreationFeedbackCreateInfoEXT {
9822     VkStructureType                   sType;
9823     const void*                       pNext;
9824     VkPipelineCreationFeedbackEXT*    pPipelineCreationFeedback;
9825     deUint32                          pipelineStageCreationFeedbackCount;
9826     VkPipelineCreationFeedbackEXT*    pPipelineStageCreationFeedbacks;
9827 } VkPipelineCreationFeedbackCreateInfoEXT;
9828
9829
9830
9831 #define VK_NV_shader_subgroup_partitioned 1
9832 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
9833 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
9834
9835
9836 #define VK_NV_compute_shader_derivatives 1
9837 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
9838 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
9839 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
9840     VkStructureType    sType;
9841     void*              pNext;
9842     VkBool32           computeDerivativeGroupQuads;
9843     VkBool32           computeDerivativeGroupLinear;
9844 } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
9845
9846
9847
9848 #define VK_NV_mesh_shader 1
9849 #define VK_NV_MESH_SHADER_SPEC_VERSION    1
9850 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
9851 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
9852     VkStructureType    sType;
9853     void*              pNext;
9854     VkBool32           taskShader;
9855     VkBool32           meshShader;
9856 } VkPhysicalDeviceMeshShaderFeaturesNV;
9857
9858 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
9859     VkStructureType    sType;
9860     void*              pNext;
9861     deUint32           maxDrawMeshTasksCount;
9862     deUint32           maxTaskWorkGroupInvocations;
9863     deUint32           maxTaskWorkGroupSize[3];
9864     deUint32           maxTaskTotalMemorySize;
9865     deUint32           maxTaskOutputCount;
9866     deUint32           maxMeshWorkGroupInvocations;
9867     deUint32           maxMeshWorkGroupSize[3];
9868     deUint32           maxMeshTotalMemorySize;
9869     deUint32           maxMeshOutputVertices;
9870     deUint32           maxMeshOutputPrimitives;
9871     deUint32           maxMeshMultiviewViewCount;
9872     deUint32           meshOutputPerVertexGranularity;
9873     deUint32           meshOutputPerPrimitiveGranularity;
9874 } VkPhysicalDeviceMeshShaderPropertiesNV;
9875
9876 typedef struct VkDrawMeshTasksIndirectCommandNV {
9877     deUint32    taskCount;
9878     deUint32    firstTask;
9879 } VkDrawMeshTasksIndirectCommandNV;
9880
9881 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, deUint32 taskCount, deUint32 firstTask);
9882 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride);
9883 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
9884
9885 #ifndef VK_NO_PROTOTYPES
9886 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
9887     VkCommandBuffer                             commandBuffer,
9888     deUint32                                    taskCount,
9889     deUint32                                    firstTask);
9890
9891 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
9892     VkCommandBuffer                             commandBuffer,
9893     VkBuffer                                    buffer,
9894     VkDeviceSize                                offset,
9895     deUint32                                    drawCount,
9896     deUint32                                    stride);
9897
9898 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
9899     VkCommandBuffer                             commandBuffer,
9900     VkBuffer                                    buffer,
9901     VkDeviceSize                                offset,
9902     VkBuffer                                    countBuffer,
9903     VkDeviceSize                                countBufferOffset,
9904     deUint32                                    maxDrawCount,
9905     deUint32                                    stride);
9906 #endif
9907
9908
9909 #define VK_NV_fragment_shader_barycentric 1
9910 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
9911 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
9912 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
9913     VkStructureType    sType;
9914     void*              pNext;
9915     VkBool32           fragmentShaderBarycentric;
9916 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
9917
9918
9919
9920 #define VK_NV_shader_image_footprint 1
9921 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
9922 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
9923 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
9924     VkStructureType    sType;
9925     void*              pNext;
9926     VkBool32           imageFootprint;
9927 } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
9928
9929
9930
9931 #define VK_NV_scissor_exclusive 1
9932 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
9933 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
9934 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
9935     VkStructureType    sType;
9936     const void*        pNext;
9937     deUint32           exclusiveScissorCount;
9938     const VkRect2D*    pExclusiveScissors;
9939 } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
9940
9941 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
9942     VkStructureType    sType;
9943     void*              pNext;
9944     VkBool32           exclusiveScissor;
9945 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
9946
9947 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, deUint32 firstExclusiveScissor, deUint32 exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
9948
9949 #ifndef VK_NO_PROTOTYPES
9950 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
9951     VkCommandBuffer                             commandBuffer,
9952     deUint32                                    firstExclusiveScissor,
9953     deUint32                                    exclusiveScissorCount,
9954     const VkRect2D*                             pExclusiveScissors);
9955 #endif
9956
9957
9958 #define VK_NV_device_diagnostic_checkpoints 1
9959 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
9960 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
9961 typedef struct VkQueueFamilyCheckpointPropertiesNV {
9962     VkStructureType         sType;
9963     void*                   pNext;
9964     VkPipelineStageFlags    checkpointExecutionStageMask;
9965 } VkQueueFamilyCheckpointPropertiesNV;
9966
9967 typedef struct VkCheckpointDataNV {
9968     VkStructureType            sType;
9969     void*                      pNext;
9970     VkPipelineStageFlagBits    stage;
9971     void*                      pCheckpointMarker;
9972 } VkCheckpointDataNV;
9973
9974 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
9975 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, deUint32* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
9976
9977 #ifndef VK_NO_PROTOTYPES
9978 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
9979     VkCommandBuffer                             commandBuffer,
9980     const void*                                 pCheckpointMarker);
9981
9982 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
9983     VkQueue                                     queue,
9984     deUint32*                                   pCheckpointDataCount,
9985     VkCheckpointDataNV*                         pCheckpointData);
9986 #endif
9987
9988
9989 #define VK_INTEL_shader_integer_functions2 1
9990 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
9991 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
9992 typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
9993     VkStructureType    sType;
9994     void*              pNext;
9995     VkBool32           shaderIntegerFunctions2;
9996 } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
9997
9998
9999
10000 #define VK_INTEL_performance_query 1
10001 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
10002 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 1
10003 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
10004
10005 typedef enum VkPerformanceConfigurationTypeINTEL {
10006     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
10007     VK_PERFORMANCE_CONFIGURATION_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL,
10008     VK_PERFORMANCE_CONFIGURATION_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL,
10009     VK_PERFORMANCE_CONFIGURATION_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL + 1),
10010     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
10011 } VkPerformanceConfigurationTypeINTEL;
10012
10013 typedef enum VkQueryPoolSamplingModeINTEL {
10014     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
10015     VK_QUERY_POOL_SAMPLING_MODE_BEGIN_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL,
10016     VK_QUERY_POOL_SAMPLING_MODE_END_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL,
10017     VK_QUERY_POOL_SAMPLING_MODE_RANGE_SIZE_INTEL = (VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL + 1),
10018     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
10019 } VkQueryPoolSamplingModeINTEL;
10020
10021 typedef enum VkPerformanceOverrideTypeINTEL {
10022     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
10023     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
10024     VK_PERFORMANCE_OVERRIDE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
10025     VK_PERFORMANCE_OVERRIDE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL,
10026     VK_PERFORMANCE_OVERRIDE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL + 1),
10027     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
10028 } VkPerformanceOverrideTypeINTEL;
10029
10030 typedef enum VkPerformanceParameterTypeINTEL {
10031     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
10032     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
10033     VK_PERFORMANCE_PARAMETER_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
10034     VK_PERFORMANCE_PARAMETER_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL,
10035     VK_PERFORMANCE_PARAMETER_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL + 1),
10036     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
10037 } VkPerformanceParameterTypeINTEL;
10038
10039 typedef enum VkPerformanceValueTypeINTEL {
10040     VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
10041     VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
10042     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
10043     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
10044     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
10045     VK_PERFORMANCE_VALUE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
10046     VK_PERFORMANCE_VALUE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL,
10047     VK_PERFORMANCE_VALUE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL + 1),
10048     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
10049 } VkPerformanceValueTypeINTEL;
10050 typedef union VkPerformanceValueDataINTEL {
10051     deUint32       value32;
10052     deUint64       value64;
10053     float          valueFloat;
10054     VkBool32       valueBool;
10055     const char*    valueString;
10056 } VkPerformanceValueDataINTEL;
10057
10058 typedef struct VkPerformanceValueINTEL {
10059     VkPerformanceValueTypeINTEL    type;
10060     VkPerformanceValueDataINTEL    data;
10061 } VkPerformanceValueINTEL;
10062
10063 typedef struct VkInitializePerformanceApiInfoINTEL {
10064     VkStructureType    sType;
10065     const void*        pNext;
10066     void*              pUserData;
10067 } VkInitializePerformanceApiInfoINTEL;
10068
10069 typedef struct VkQueryPoolCreateInfoINTEL {
10070     VkStructureType                 sType;
10071     const void*                     pNext;
10072     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
10073 } VkQueryPoolCreateInfoINTEL;
10074
10075 typedef struct VkPerformanceMarkerInfoINTEL {
10076     VkStructureType    sType;
10077     const void*        pNext;
10078     deUint64           marker;
10079 } VkPerformanceMarkerInfoINTEL;
10080
10081 typedef struct VkPerformanceStreamMarkerInfoINTEL {
10082     VkStructureType    sType;
10083     const void*        pNext;
10084     deUint32           marker;
10085 } VkPerformanceStreamMarkerInfoINTEL;
10086
10087 typedef struct VkPerformanceOverrideInfoINTEL {
10088     VkStructureType                   sType;
10089     const void*                       pNext;
10090     VkPerformanceOverrideTypeINTEL    type;
10091     VkBool32                          enable;
10092     deUint64                          parameter;
10093 } VkPerformanceOverrideInfoINTEL;
10094
10095 typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
10096     VkStructureType                        sType;
10097     const void*                            pNext;
10098     VkPerformanceConfigurationTypeINTEL    type;
10099 } VkPerformanceConfigurationAcquireInfoINTEL;
10100
10101 typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
10102 typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
10103 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
10104 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
10105 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
10106 typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
10107 typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
10108 typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
10109 typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
10110
10111 #ifndef VK_NO_PROTOTYPES
10112 VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
10113     VkDevice                                    device,
10114     const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo);
10115
10116 VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
10117     VkDevice                                    device);
10118
10119 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
10120     VkCommandBuffer                             commandBuffer,
10121     const VkPerformanceMarkerInfoINTEL*         pMarkerInfo);
10122
10123 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
10124     VkCommandBuffer                             commandBuffer,
10125     const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo);
10126
10127 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
10128     VkCommandBuffer                             commandBuffer,
10129     const VkPerformanceOverrideInfoINTEL*       pOverrideInfo);
10130
10131 VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
10132     VkDevice                                    device,
10133     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
10134     VkPerformanceConfigurationINTEL*            pConfiguration);
10135
10136 VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
10137     VkDevice                                    device,
10138     VkPerformanceConfigurationINTEL             configuration);
10139
10140 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
10141     VkQueue                                     queue,
10142     VkPerformanceConfigurationINTEL             configuration);
10143
10144 VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
10145     VkDevice                                    device,
10146     VkPerformanceParameterTypeINTEL             parameter,
10147     VkPerformanceValueINTEL*                    pValue);
10148 #endif
10149
10150
10151 #define VK_EXT_pci_bus_info 1
10152 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  2
10153 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
10154 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
10155     VkStructureType    sType;
10156     void*              pNext;
10157     deUint32           pciDomain;
10158     deUint32           pciBus;
10159     deUint32           pciDevice;
10160     deUint32           pciFunction;
10161 } VkPhysicalDevicePCIBusInfoPropertiesEXT;
10162
10163
10164
10165 #define VK_AMD_display_native_hdr 1
10166 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
10167 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
10168 typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
10169     VkStructureType    sType;
10170     void*              pNext;
10171     VkBool32           localDimmingSupport;
10172 } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
10173
10174 typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
10175     VkStructureType    sType;
10176     const void*        pNext;
10177     VkBool32           localDimmingEnable;
10178 } VkSwapchainDisplayNativeHdrCreateInfoAMD;
10179
10180 typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
10181
10182 #ifndef VK_NO_PROTOTYPES
10183 VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
10184     VkDevice                                    device,
10185     VkSwapchainKHR                              swapChain,
10186     VkBool32                                    localDimmingEnable);
10187 #endif
10188
10189
10190 #define VK_EXT_fragment_density_map 1
10191 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1
10192 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
10193 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
10194     VkStructureType    sType;
10195     void*              pNext;
10196     VkBool32           fragmentDensityMap;
10197     VkBool32           fragmentDensityMapDynamic;
10198     VkBool32           fragmentDensityMapNonSubsampledImages;
10199 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
10200
10201 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
10202     VkStructureType    sType;
10203     void*              pNext;
10204     VkExtent2D         minFragmentDensityTexelSize;
10205     VkExtent2D         maxFragmentDensityTexelSize;
10206     VkBool32           fragmentDensityInvocations;
10207 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
10208
10209 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
10210     VkStructureType          sType;
10211     const void*              pNext;
10212     VkAttachmentReference    fragmentDensityMapAttachment;
10213 } VkRenderPassFragmentDensityMapCreateInfoEXT;
10214
10215
10216
10217 #define VK_EXT_scalar_block_layout 1
10218 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
10219 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
10220 typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
10221
10222
10223
10224 #define VK_GOOGLE_hlsl_functionality1 1
10225 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1
10226 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
10227
10228
10229 #define VK_GOOGLE_decorate_string 1
10230 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
10231 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
10232
10233
10234 #define VK_EXT_subgroup_size_control 1
10235 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
10236 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
10237 typedef struct VkPhysicalDeviceSubgroupSizeControlFeaturesEXT {
10238     VkStructureType    sType;
10239     void*              pNext;
10240     VkBool32           subgroupSizeControl;
10241     VkBool32           computeFullSubgroups;
10242 } VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
10243
10244 typedef struct VkPhysicalDeviceSubgroupSizeControlPropertiesEXT {
10245     VkStructureType       sType;
10246     void*                 pNext;
10247     deUint32              minSubgroupSize;
10248     deUint32              maxSubgroupSize;
10249     deUint32              maxComputeWorkgroupSubgroups;
10250     VkShaderStageFlags    requiredSubgroupSizeStages;
10251 } VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
10252
10253 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT {
10254     VkStructureType    sType;
10255     void*              pNext;
10256     deUint32           requiredSubgroupSize;
10257 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
10258
10259
10260
10261 #define VK_AMD_shader_core_properties2 1
10262 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
10263 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
10264
10265 typedef enum VkShaderCorePropertiesFlagBitsAMD {
10266     VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
10267 } VkShaderCorePropertiesFlagBitsAMD;
10268 typedef VkFlags VkShaderCorePropertiesFlagsAMD;
10269 typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
10270     VkStructureType                   sType;
10271     void*                             pNext;
10272     VkShaderCorePropertiesFlagsAMD    shaderCoreFeatures;
10273     deUint32                          activeComputeUnitCount;
10274 } VkPhysicalDeviceShaderCoreProperties2AMD;
10275
10276
10277
10278 #define VK_AMD_device_coherent_memory 1
10279 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
10280 #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
10281 typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
10282     VkStructureType    sType;
10283     void*              pNext;
10284     VkBool32           deviceCoherentMemory;
10285 } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
10286
10287
10288
10289 #define VK_EXT_memory_budget 1
10290 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
10291 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
10292 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
10293     VkStructureType    sType;
10294     void*              pNext;
10295     VkDeviceSize       heapBudget[VK_MAX_MEMORY_HEAPS];
10296     VkDeviceSize       heapUsage[VK_MAX_MEMORY_HEAPS];
10297 } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
10298
10299
10300
10301 #define VK_EXT_memory_priority 1
10302 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
10303 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
10304 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
10305     VkStructureType    sType;
10306     void*              pNext;
10307     VkBool32           memoryPriority;
10308 } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
10309
10310 typedef struct VkMemoryPriorityAllocateInfoEXT {
10311     VkStructureType    sType;
10312     const void*        pNext;
10313     float              priority;
10314 } VkMemoryPriorityAllocateInfoEXT;
10315
10316
10317
10318 #define VK_NV_dedicated_allocation_image_aliasing 1
10319 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
10320 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
10321 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
10322     VkStructureType    sType;
10323     void*              pNext;
10324     VkBool32           dedicatedAllocationImageAliasing;
10325 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
10326
10327
10328
10329 #define VK_EXT_buffer_device_address 1
10330 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
10331 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
10332 typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
10333     VkStructureType    sType;
10334     void*              pNext;
10335     VkBool32           bufferDeviceAddress;
10336     VkBool32           bufferDeviceAddressCaptureReplay;
10337     VkBool32           bufferDeviceAddressMultiDevice;
10338 } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
10339
10340 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
10341
10342 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
10343
10344 typedef struct VkBufferDeviceAddressCreateInfoEXT {
10345     VkStructureType    sType;
10346     const void*        pNext;
10347     VkDeviceAddress    deviceAddress;
10348 } VkBufferDeviceAddressCreateInfoEXT;
10349
10350 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
10351
10352 #ifndef VK_NO_PROTOTYPES
10353 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
10354     VkDevice                                    device,
10355     const VkBufferDeviceAddressInfo*            pInfo);
10356 #endif
10357
10358
10359 #define VK_EXT_separate_stencil_usage 1
10360 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
10361 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
10362 typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
10363
10364
10365
10366 #define VK_EXT_validation_features 1
10367 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 2
10368 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
10369
10370 typedef enum VkValidationFeatureEnableEXT {
10371     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
10372     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
10373     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
10374     VK_VALIDATION_FEATURE_ENABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
10375     VK_VALIDATION_FEATURE_ENABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
10376     VK_VALIDATION_FEATURE_ENABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT + 1),
10377     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
10378 } VkValidationFeatureEnableEXT;
10379
10380 typedef enum VkValidationFeatureDisableEXT {
10381     VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
10382     VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
10383     VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
10384     VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
10385     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
10386     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
10387     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
10388     VK_VALIDATION_FEATURE_DISABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
10389     VK_VALIDATION_FEATURE_DISABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT,
10390     VK_VALIDATION_FEATURE_DISABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT + 1),
10391     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
10392 } VkValidationFeatureDisableEXT;
10393 typedef struct VkValidationFeaturesEXT {
10394     VkStructureType                         sType;
10395     const void*                             pNext;
10396     deUint32                                enabledValidationFeatureCount;
10397     const VkValidationFeatureEnableEXT*     pEnabledValidationFeatures;
10398     deUint32                                disabledValidationFeatureCount;
10399     const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
10400 } VkValidationFeaturesEXT;
10401
10402
10403
10404 #define VK_NV_cooperative_matrix 1
10405 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
10406 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
10407
10408 typedef enum VkComponentTypeNV {
10409     VK_COMPONENT_TYPE_FLOAT16_NV = 0,
10410     VK_COMPONENT_TYPE_FLOAT32_NV = 1,
10411     VK_COMPONENT_TYPE_FLOAT64_NV = 2,
10412     VK_COMPONENT_TYPE_SINT8_NV = 3,
10413     VK_COMPONENT_TYPE_SINT16_NV = 4,
10414     VK_COMPONENT_TYPE_SINT32_NV = 5,
10415     VK_COMPONENT_TYPE_SINT64_NV = 6,
10416     VK_COMPONENT_TYPE_UINT8_NV = 7,
10417     VK_COMPONENT_TYPE_UINT16_NV = 8,
10418     VK_COMPONENT_TYPE_UINT32_NV = 9,
10419     VK_COMPONENT_TYPE_UINT64_NV = 10,
10420     VK_COMPONENT_TYPE_BEGIN_RANGE_NV = VK_COMPONENT_TYPE_FLOAT16_NV,
10421     VK_COMPONENT_TYPE_END_RANGE_NV = VK_COMPONENT_TYPE_UINT64_NV,
10422     VK_COMPONENT_TYPE_RANGE_SIZE_NV = (VK_COMPONENT_TYPE_UINT64_NV - VK_COMPONENT_TYPE_FLOAT16_NV + 1),
10423     VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
10424 } VkComponentTypeNV;
10425
10426 typedef enum VkScopeNV {
10427     VK_SCOPE_DEVICE_NV = 1,
10428     VK_SCOPE_WORKGROUP_NV = 2,
10429     VK_SCOPE_SUBGROUP_NV = 3,
10430     VK_SCOPE_QUEUE_FAMILY_NV = 5,
10431     VK_SCOPE_BEGIN_RANGE_NV = VK_SCOPE_DEVICE_NV,
10432     VK_SCOPE_END_RANGE_NV = VK_SCOPE_QUEUE_FAMILY_NV,
10433     VK_SCOPE_RANGE_SIZE_NV = (VK_SCOPE_QUEUE_FAMILY_NV - VK_SCOPE_DEVICE_NV + 1),
10434     VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF
10435 } VkScopeNV;
10436 typedef struct VkCooperativeMatrixPropertiesNV {
10437     VkStructureType      sType;
10438     void*                pNext;
10439     deUint32             MSize;
10440     deUint32             NSize;
10441     deUint32             KSize;
10442     VkComponentTypeNV    AType;
10443     VkComponentTypeNV    BType;
10444     VkComponentTypeNV    CType;
10445     VkComponentTypeNV    DType;
10446     VkScopeNV            scope;
10447 } VkCooperativeMatrixPropertiesNV;
10448
10449 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
10450     VkStructureType    sType;
10451     void*              pNext;
10452     VkBool32           cooperativeMatrix;
10453     VkBool32           cooperativeMatrixRobustBufferAccess;
10454 } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
10455
10456 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
10457     VkStructureType       sType;
10458     void*                 pNext;
10459     VkShaderStageFlags    cooperativeMatrixSupportedStages;
10460 } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
10461
10462 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
10463
10464 #ifndef VK_NO_PROTOTYPES
10465 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
10466     VkPhysicalDevice                            physicalDevice,
10467     deUint32*                                   pPropertyCount,
10468     VkCooperativeMatrixPropertiesNV*            pProperties);
10469 #endif
10470
10471
10472 #define VK_NV_coverage_reduction_mode 1
10473 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
10474 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
10475
10476 typedef enum VkCoverageReductionModeNV {
10477     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
10478     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
10479     VK_COVERAGE_REDUCTION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
10480     VK_COVERAGE_REDUCTION_MODE_END_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV,
10481     VK_COVERAGE_REDUCTION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV - VK_COVERAGE_REDUCTION_MODE_MERGE_NV + 1),
10482     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
10483 } VkCoverageReductionModeNV;
10484 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
10485 typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
10486     VkStructureType    sType;
10487     void*              pNext;
10488     VkBool32           coverageReductionMode;
10489 } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
10490
10491 typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
10492     VkStructureType                                  sType;
10493     const void*                                      pNext;
10494     VkPipelineCoverageReductionStateCreateFlagsNV    flags;
10495     VkCoverageReductionModeNV                        coverageReductionMode;
10496 } VkPipelineCoverageReductionStateCreateInfoNV;
10497
10498 typedef struct VkFramebufferMixedSamplesCombinationNV {
10499     VkStructureType              sType;
10500     void*                        pNext;
10501     VkCoverageReductionModeNV    coverageReductionMode;
10502     VkSampleCountFlagBits        rasterizationSamples;
10503     VkSampleCountFlags           depthStencilSamples;
10504     VkSampleCountFlags           colorSamples;
10505 } VkFramebufferMixedSamplesCombinationNV;
10506
10507 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, deUint32* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
10508
10509 #ifndef VK_NO_PROTOTYPES
10510 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
10511     VkPhysicalDevice                            physicalDevice,
10512     deUint32*                                   pCombinationCount,
10513     VkFramebufferMixedSamplesCombinationNV*     pCombinations);
10514 #endif
10515
10516
10517 #define VK_EXT_fragment_shader_interlock 1
10518 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
10519 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
10520 typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
10521     VkStructureType    sType;
10522     void*              pNext;
10523     VkBool32           fragmentShaderSampleInterlock;
10524     VkBool32           fragmentShaderPixelInterlock;
10525     VkBool32           fragmentShaderShadingRateInterlock;
10526 } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
10527
10528
10529
10530 #define VK_EXT_ycbcr_image_arrays 1
10531 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
10532 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
10533 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
10534     VkStructureType    sType;
10535     void*              pNext;
10536     VkBool32           ycbcrImageArrays;
10537 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
10538
10539
10540
10541 #define VK_EXT_headless_surface 1
10542 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
10543 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
10544 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
10545 typedef struct VkHeadlessSurfaceCreateInfoEXT {
10546     VkStructureType                    sType;
10547     const void*                        pNext;
10548     VkHeadlessSurfaceCreateFlagsEXT    flags;
10549 } VkHeadlessSurfaceCreateInfoEXT;
10550
10551 typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
10552
10553 #ifndef VK_NO_PROTOTYPES
10554 VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
10555     VkInstance                                  instance,
10556     const VkHeadlessSurfaceCreateInfoEXT*       pCreateInfo,
10557     const VkAllocationCallbacks*                pAllocator,
10558     VkSurfaceKHR*                               pSurface);
10559 #endif
10560
10561
10562 #define VK_EXT_line_rasterization 1
10563 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
10564 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
10565
10566 typedef enum VkLineRasterizationModeEXT {
10567     VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0,
10568     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1,
10569     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2,
10570     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3,
10571     VK_LINE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
10572     VK_LINE_RASTERIZATION_MODE_END_RANGE_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT,
10573     VK_LINE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT + 1),
10574     VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
10575 } VkLineRasterizationModeEXT;
10576 typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT {
10577     VkStructureType    sType;
10578     void*              pNext;
10579     VkBool32           rectangularLines;
10580     VkBool32           bresenhamLines;
10581     VkBool32           smoothLines;
10582     VkBool32           stippledRectangularLines;
10583     VkBool32           stippledBresenhamLines;
10584     VkBool32           stippledSmoothLines;
10585 } VkPhysicalDeviceLineRasterizationFeaturesEXT;
10586
10587 typedef struct VkPhysicalDeviceLineRasterizationPropertiesEXT {
10588     VkStructureType    sType;
10589     void*              pNext;
10590     deUint32           lineSubPixelPrecisionBits;
10591 } VkPhysicalDeviceLineRasterizationPropertiesEXT;
10592
10593 typedef struct VkPipelineRasterizationLineStateCreateInfoEXT {
10594     VkStructureType               sType;
10595     const void*                   pNext;
10596     VkLineRasterizationModeEXT    lineRasterizationMode;
10597     VkBool32                      stippledLineEnable;
10598     deUint32                      lineStippleFactor;
10599     deUint16                      lineStipplePattern;
10600 } VkPipelineRasterizationLineStateCreateInfoEXT;
10601
10602 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, deUint32 lineStippleFactor, deUint16 lineStipplePattern);
10603
10604 #ifndef VK_NO_PROTOTYPES
10605 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
10606     VkCommandBuffer                             commandBuffer,
10607     deUint32                                    lineStippleFactor,
10608     deUint16                                    lineStipplePattern);
10609 #endif
10610
10611
10612 #define VK_EXT_host_query_reset 1
10613 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
10614 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
10615 typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
10616
10617 typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount);
10618
10619 #ifndef VK_NO_PROTOTYPES
10620 VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
10621     VkDevice                                    device,
10622     VkQueryPool                                 queryPool,
10623     deUint32                                    firstQuery,
10624     deUint32                                    queryCount);
10625 #endif
10626
10627
10628 #define VK_EXT_index_type_uint8 1
10629 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
10630 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
10631 typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT {
10632     VkStructureType    sType;
10633     void*              pNext;
10634     VkBool32           indexTypeUint8;
10635 } VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
10636
10637
10638
10639 #define VK_EXT_shader_demote_to_helper_invocation 1
10640 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
10641 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
10642 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT {
10643     VkStructureType    sType;
10644     void*              pNext;
10645     VkBool32           shaderDemoteToHelperInvocation;
10646 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
10647
10648
10649
10650 #define VK_EXT_texel_buffer_alignment 1
10651 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
10652 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
10653 typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
10654     VkStructureType    sType;
10655     void*              pNext;
10656     VkBool32           texelBufferAlignment;
10657 } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
10658
10659 typedef struct VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT {
10660     VkStructureType    sType;
10661     void*              pNext;
10662     VkDeviceSize       storageTexelBufferOffsetAlignmentBytes;
10663     VkBool32           storageTexelBufferOffsetSingleTexelAlignment;
10664     VkDeviceSize       uniformTexelBufferOffsetAlignmentBytes;
10665     VkBool32           uniformTexelBufferOffsetSingleTexelAlignment;
10666 } VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
10667
10668
10669
10670 #define VK_GOOGLE_user_type 1
10671 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
10672 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
10673
10674 #ifdef __cplusplus
10675 }
10676 #endif
10677
10678 #endif
10679