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