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